]> gcc.gnu.org Git - gcc.git/blame - gcc/ada/ChangeLog
expr.c (do_store_flag): Remove last argument.
[gcc.git] / gcc / ada / ChangeLog
CommitLineData
d5859bf4
EB
12009-04-07 Eric Botcazou <ebotcazou@adacore.com>
2
3 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Test the
4 underlying type.
5 * gcc-interface/trans.c (lvalue_required_p): Likewise.
6
c86f07f6
EB
72009-04-07 Eric Botcazou <ebotcazou@adacore.com>
8
9 * gcc-interface/trans.c (Attribute_to_gnu) <Max_Size_In_Storage_Elmts>:
10 Do not convert the result. Remove obsolete comment.
11
2d5be6c1
EB
122009-04-07 Eric Botcazou <ebotcazou@adacore.com>
13
14 * gcc-interface/trans.c (establish_gnat_vms_condition_handler): Clear
15 DECL_CONTEXT.
16 (Subprogram_Body_to_gnu): Fix pasto.
17
10069d53
EB
182009-04-07 Eric Botcazou <ebotcazou@adacore.com>
19
20 * gcc-interface/gigi.h (standard_datatypes): Remove ADT_void_type_decl.
21 (void_type_decl_node): Remove.
22 (init_gigi_decls): Likewise.
23 (gnat_install_builtins): Declare.
24 (record_builtin_type): Likewise.
25 (create_type_stub_decl): Likewise.
26 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Void>: Use void_type.
27 (gnat_to_gnu_entity) <E_Array_Type>: Make fat and thin pointer types
28 artificial.
29 <E_Array_Subtype>: Use the index types, not only their name, in the
30 record giving the names of the bounds, if any.
31 For a packed array type, make it artificial only if the base type
32 was artificial as well. Remove redundant statement.
33 (gnat_to_gnu_entity) <E_Incomplete_Type>: Do not create TYPE_DECL for
34 dummy types.
35 Use create_type_stub_decl to build the TYPE_STUB_DECL of types.
36 (rest_of_type_decl_compilation_no_defer): Likewise.
37 * gcc-interface/misc.c (gnat_printable_name): Add missing guard.
38 * gcc-interface/utils.c (make_dummy_type): Always create TYPE_STUB_DECL
39 and use create_type_stub_decl to build it.
40 (gnat_pushdecl): Rewrite condition.
41 (gnat_install_builtins): Remove bogus declaration.
42 (record_builtin_type): New function.
43 (finish_record_type): Use create_type_stub_decl to build TYPE_STUB_DECL
44 of types.
45 (create_type_stub_decl): New function.
46 (create_type_decl): Assert that the type is not dummy. If the type
47 hasn't been named yet, equate the TYPE_STUB_DECL to the created node.
48 (build_vms_descriptor32): Do not create TYPE_DECL for the descriptor.
49 (build_vms_descriptor): Likewise.
50 (init_gigi_decls): Delete and move bulk of code to...
51 * gcc-interface/trans.c (gigi): ...here. Use record_builtin_type.
52 (emit_range_check): Add gnat_node parameter.
53 (emit_index_check): Likewise.
54 (emit_check): Likewise.
55 (build_unary_op_trapv): Likewise.
56 (build_binary_op_trapv): Likewise.
57 (convert_with_check): Likewise.
58 (Attribute_to_gnu): Adjust calls for above changes.
59 (call_to_gnu): Likewise.
60 (gnat_to_gnu): Likewise.
61 (assoc_to_constructor): Likewise.
62 (pos_to_constructor): Likewise.
63 (Sloc_to_locus): Set BUILTINS_LOCATION for Standard_Location nodes.
64 (process_type): Do not create TYPE_DECL for dummy types.
65
229077b0
EB
662009-04-07 Eric Botcazou <ebotcazou@adacore.com>
67
1e17ef87
EB
68 * gcc-interface/decl.c (gnat_to_gnu_entity): Reorder local variables.
69 * gcc-interface/trans.c: Fix formatting throughout. Fix comments.
70 * gcc-interface/utils.c: Fix comments.
71
722009-04-07 Eric Botcazou <ebotcazou@adacore.com>
73
74 * gcc-interface/decl.c (compile_time_known_address_p): Rewrite and
75 move around.
229077b0
EB
76 (gnat_to_gnu_type): Move around.
77 (get_unpadded_type): Likewise.
1e17ef87
EB
78 * gcc-interface/utils.c (update_pointer_to): Use synthetic macro.
79 Tidy comments.
229077b0 80
aa1aa786
EB
812009-04-07 Eric Botcazou <ebotcazou@adacore.com>
82
83 * gcc-interface/trans.c (check_for_eliminated_entity): New function.
84 (Attribute_to_gnu): Invoke it for Access- and Address-like attributes.
85 (call_to_gnu): Invoke it instead of manually checking.
86
63787194
EB
872009-04-04 Eric Botcazou <ebotcazou@adacore.com>
88
89 * gcc-interface/utils.c (finish_record_type): Force structural equality
90 checks if the record type is discriminated.
91
d236ace7
EB
922009-03-31 Eric Botcazou <ebotcazou@adacore.com>
93
94 * system-linux-alpha.ads (Functions_Return_By_DSP): Remove.
95 * system-linux-mips.ads (Functions_Return_By_DSP): Likewise.
96 * system-linux-mipsel.ads (Functions_Return_By_DSP): Likewise.
97 * system-linux-s390.ads (Functions_Return_By_DSP): Likewise.
98 * system-linux-s390x.ads (Functions_Return_By_DSP): Likewise.
99 * system-linux-sparc.ads (Functions_Return_By_DSP): Likewise.
100 * system-linux-sparcv9.ads (Functions_Return_By_DSP): Likewise.
101
bd9f68e0
PB
1022009-03-30 Paolo Bonzini <bonzini@gnu.org>
103
d7be99f1
EB
104 * gcc-interface/decl.c (maybe_pad_type): Use TREE_OVERFLOW instead
105 of TREE_CONSTANT_OVERFLOW.
bd9f68e0 106
8ce94e44
JM
1072009-03-30 Joseph Myers <joseph@codesourcery.com>
108
109 PR rtl-optimization/323
110 * gcc-interface/misc.c (gnat_post_options): Set
111 flag_excess_precision_cmdline. Give an error for
112 -fexcess-precision=standard for processors where the option is
113 significant.
114
d9223014
L
1152009-03-27 H.J. Lu <hongjiu.lu@intel.com>
116
117 PR c/39323
118 * gcc-interface/utils.c (create_field_decl): Use "unsigned int"
119 on bit_align.
120
76761bbd
OH
1212009-03-11 Olivier Hainque <hainque@adacore.com>
122
123 * gcc-interface/trans.c (gnat_to_gnu) <case N_Slice>: In range
124 checks processing, remove unintended TREE_TYPE walk on index type.
125
39ae51e0
EB
1262009-03-01 Eric Botcazou <ebotcazou@adacore.com>
127
128 PR ada/39264
129 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do no
130 call make_packable_type on fat pointer types.
131 <E_Array_Subtype>: Likewise.
132 <E_Record_Subtype>: Call make_packable_type on all record types
133 except for fat pointer types.
134 (make_packable_type): Likewise.
135 (gnat_to_gnu_field): Likewise.
136
7d01864f
EB
1372009-02-28 Eric Botcazou <ebotcazou@adacore.com>
138
139 * gcc-interface/Makefile.in (cygwin/mingw): Revert accidental
67901d32 140 EH_MECHANISM change made on 2007-12-06.
7d01864f 141
a760c977
AS
1422009-02-26 Andreas Schwab <schwab@suse.de>
143
4c354194 144 PR ada/39172
a760c977 145 * Makefile.in (srcdir): Set to @top_srcdir@ instead of @srcdir@.
a760c977
AS
146 * gcc-interface/Makefile.in: Change all uses of $(srcdir),
147 $(fsrcdir) and $(fsrcpfx) to add ada subdir.
148 (AWK): Substitute.
149 (target_cpu_default): Substitute.
150
054efbba
LG
1512009-02-25 Laurent GUERBY <laurent@guerby.net>
152
975a4fd6 153 PR ada/39221
a760c977
AS
154 * a-teioed.adb (Expand): Fix Result overflow.
155
2692d7f5
LG
1562009-02-25 Laurent GUERBY <laurent@guerby.net>
157
a760c977
AS
158 * gcc-interface/Makefile.in: Fix multilib handling for
159 sparc64-linux.
160
ea675ec3
RO
1612009-02-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
162
163 * s-oscons-tmplt.c [__osf__ && !_SS_MAXSIZE]: Undef AF_UNIX6.
164
e98c0739
L
1652009-02-18 H.J. Lu <hongjiu.lu@intel.com>
166
167 * gcc-interface/misc.c (gnat_post_options): Turn off warn_psabi.
168
70f5fc7c
EB
1692009-02-16 Eric Botcazou <ebotcazou@adacore.com>
170
171 * gcc-interface/deftarg.c: Remove.
172
794511d2 1732009-02-10 Olivier Hainque <hainque@adacore.com>
e98c0739 174 Eric Botcazou <ebotcazou@adacore.com>
794511d2
EB
175
176 * gcc-interface/decl.c (enum alias_set_op): New enumeration.
177 (copy_alias_set): Rename into...
178 (relate_alias_sets): ...this. Add third parameter OP. Retrieve the
179 underlying array of unconstrained arrays for the new type as well.
180 If the old and new alias sets don't conflict, make one a subset of
181 the other as per the OP parameter.
182 (gnat_to_gnu_entity): Adjust calls to copy_alias_set.
183 <E_Record_Type>: Do not copy the alias set for derived types.
184 For all types, make the alias set of derived types a superset of
185 that of their parent type.
186 (make_aligning_type): Adjust calls to copy_alias_set.
187 (make_packable_type): Likewise.
188 * gcc-interface/trans.c (gnat_to_gnu)<N_Validate_Unchecked_Conversion>:
189 Check for alias set conflict instead of strict equality to issue the
190 warning.
191
c3734896
EB
1922009-02-09 Eric Botcazou <ebotcazou@adacore.com>
193
194 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
195 Set TYPE_NONALIASED_COMPONENT on the array type only if appropriate.
196 (copy_alias_set): Assert that arrays have the same aliasing settings.
197 (substitute_in_type) <ARRAY_TYPE>: Copy TYPE_NONALIASED_COMPONENT.
198
9a58d4d2
EB
1992009-02-08 Eric Botcazou <ebotcazou@adacore.com>
200
201 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
202 Set TYPE_NONALIASED_COMPONENT on the array type.
203
d0ec4c99
LG
2042009-01-31 Laurent GUERBY <laurent@guerby.net>
205
206 * gcc-interface/Makefile.in: Fix mipsel linux handling.
a760c977 207
4dcb8fd1
JJ
2082009-01-16 Jakub Jelinek <jakub@redhat.com>
209
210 * gcc-interface/Makefile.in: Fix multilib handling for
211 powerpc64-linux.
212
3b9c1abd
EB
2132009-01-12 Eric Botcazou <ebotcazou@adacore.com>
214
215 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Really strip
216 only useless conversions around renamed objects.
217
13318d2f
EB
2182009-01-11 Eric Botcazou <ebotcazou@adacore.com>
219
220 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Put
221 the _Tag field before any discriminants in the field list.
222 (components_to_record): Remove obsolete comment.
223
6f9f0ce3
JJ
2242008-12-09 Jakub Jelinek <jakub@redhat.com>
225
226 PR ada/38450
227 * gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE.
228 * gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type):
229 Likewise.
230
9ff4a9da 2312008-12-05 Sebastian Pop <sebastian.pop@amd.com>
250d2fb5
JJ
232
233 PR bootstrap/38262
234 * gcc-interface/Make-lang.in (gnat1): Add BACKENDLIBS, remove GMPLIBS.
235
f9805f52
EB
2362008-11-29 Eric Botcazou <ebotcazou@adacore.com>
237
238 PR ada/30827
239 * g-comver.adb (Ver_Len_Max): Fix inconsistency.
240
2ddc34ba
EB
2412008-11-27 Eric Botcazou <ebotcazou@adacore.com>
242
243 * gcc-interface/decl.c: Fix various nits.
244
58612565
EB
2452008-11-20 Eric Botcazou <ebotcazou@adacore.com>
246
247 * gcc-interface/utils.c (init_gigi_decls): Fix type mismatch.
248
e66e5d9e
EB
2492008-11-16 Eric Botcazou <ebotcazou@adacore.com>
250
251 PR ada/38127
d74b4b00
EB
252 * gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Do not
253 special-case boolean types. Propagate the name.
e66e5d9e
EB
254 * gcc-interface/targtyps.c: Tweak comment.
255
7348f18c
GB
2562008-11-15 Geert Bosch <bosch@adacore.com>
257
258 * gcc-interface/trans.c (emit_check): Put back a final save_expr
259 to prevent exponential expansion during gimplification.
260
708bceb7
EB
2612008-11-15 Eric Botcazou <ebotcazou@adacore.com>
262
263 * gcc-interface/lang-specs.h: Expand -coverage and reorder switches.
264
a5b8aacd
EB
2652008-11-15 Eric Botcazou <ebotcazou@adacore.com>
266
267 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force constants
268 initialized to a static constant to be statically allocated even if
269 they are of a padding type, provided the original type also has
270 constant size.
271
4364e851
LG
2722008-11-15 Laurent Guerby <laurent@guerby.net>
273
274 PR ada/37993
275 * gcc-interface/Makefile.in: Add multilib handling for x86_64
276 on darwin.
277 * system-darwin-x86_64.ads: New file.
278
255e5b04
OH
2792008-11-13 Olivier Hainque <hainque@adacore.com>
280
281 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>:
282 Turn Ada Pure on subprograms back into GCC CONST when eh constructs
283 are explicit to the middle-end. Tidy.
284
82d3b03a
EB
2852008-11-09 Eric Botcazou <ebotcazou@adacore.com>
286
287 * gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
288 (MINUS_NOMOD_EXPR): Likewise.
289 * gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make
290 unreachable.
291 <PLUS_NOMOD_EXPR>: New case.
292 <MINUS_NOMOD_EXPR>: Likewise.
293 * gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and-
294 assignment statement instead of using an increment operator.
295
f5026442
RO
2962008-11-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
297
298 * system-irix-n64.ads: New file.
299 * gcc-interface/Makefile.in (mips-sgi-irix6*): Support O32 and N64
300 multilibs.
301
3022008-11-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
303
304 PR ada/37681
305 * system-solaris-x86_64.ads: New file.
306 * gcc-interface/Makefile.in (*86-solaris2*): Support x86_64 multilib.
307
7fee6a39 3082008-11-07 Bechir Zalila <bechir.zalila@gmail.com>
e98c0739 309 Eric Botcazou <ebotcazou@adacore.com>
7fee6a39
BZ
310
311 PR ada/34289
312 * lib.ads: (Enable_Switch_Storing): Declare.
313 * lib.adb: (Enable_Switch_Storing): New procedure.
314 * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea.
315 * make.adb: (Compile_Sources.Compile): Add -gnatea as first option.
316 (Display): Never display -gnatea
317 * gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez.
318
9ed0e483
TQ
3192008-11-07 Thomas Quinot <quinot@adacore.com>
320
321 * gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check
322 for empty range in original base type, not converted result type.
323
58e94443
GB
3242008-11-07 Geert Bosch <bosch@adacore.com>
325
326 * gcc-interface/trans.c (build_binary_op_trapv): Convert arguments
327 and result for call to __gnat_mulv64.
328
a7c43bbc
EB
3292008-11-07 Eric Botcazou <ebotcazou@adacore.com>
330
331 * gcc-interface/trans.c: Fix formatting nits.
332
2575024c
GB
3332008-11-07 Geert Bosch <bosch@adacore.com>
334
335 * gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting
336 overflow check for constant result.
337
4ae39383
GB
3382008-11-07 Geert Bosch <bosch@adacore.com>
339
340 * gcc-interface/trans.c (build_binary_op_trapv): Use more efficient
341 overflow check for addition/subtraction if neither operand is constant.
342
6818f0fc
EB
3432008-11-06 Eric Botcazou <ebotcazou@adacore.com>
344
345 * gcc-interface/Makefile.in (SPARC/Solaris): Use a common set of
346 files for the target-dependent part of the runtime.
347 (SPARC/Linux): Likewise.
348
8d3323de
EB
3492008-11-06 Eric Botcazou <ebotcazou@adacore.com>
350
351 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: If not
352 optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging
353 purposes.
354
baf6e6a8
EB
3552008-11-06 Eric Botcazou <ebotcazou@adacore.com>
356
357 * gcc-interface/misc.c (gnat_printable_name): Always return a copy
358 in GC memory.
359
8b659f79
EB
3602008-11-06 Eric Botcazou <ebotcazou@adacore.com>
361
362 PR ada/19419
363 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>:
364 Generate a call to memmove for an assignment between overlapping
365 array slices.
366
358ef7fb
AK
3672008-11-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
368
369 PR target/37977
370 * gcc-interface/Makefile.in: Add multilib handling for
371 s390-linux and s390x-linux.
372
7134e605
JJ
3732008-10-24 Jakub Jelinek <jakub@redhat.com>
374
375 * gcc-interface/Make-lang.in (check-ada-subtargets): Depend on
376 check-acats-subtargets and check-gnat-subtargets.
377 (check_acats_targets): New variable.
378 (check-acats-subtargets, check-acats%): New targets.
379 (check-acats): If -j is used and CHAPTERS is empty, run the testing
380 in multiple make goals, possibly parallel, and afterwards run
381 dg-extract-results.sh to merge the sum and log files.
382
82f7c45f
GB
3832008-10-17 Geert Bosch <bosch@adacore.com>
384
385 * gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion
386 to use only a single check instead of three, and avoid unnecessary
387 COMPOUND_EXPR.
388 (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
389 creating more opportunities for optimizations.
390
0adef32b
JJ
3912008-10-13 Jakub Jelinek <jakub@redhat.com>
392
393 PR middle-end/37601
394 * gcc-interface/utils.c (gnat_types_compatible_p): Handle
395 NULL TYPE_DOMAIN.
396
9cf18af8
EB
3972008-10-07 Eric Botcazou <ebotcazou@adacore.com>
398
399 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
400 dealing with volatileness to after code dealing with renaming.
401
e84319a3
EB
4022008-10-06 Eric Botcazou <ebotcazou@adacore.com>
403
404 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks.
405 * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
406
afcea859
EB
4072008-10-06 Eric Botcazou <ebotcazou@adacore.com>
408
409 * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
410 (unchecked_convert): Use it to disable problematic folding with
411 VIEW_CONVERT_EXPR in the general case. Always disable it for the
412 special VIEW_CONVERT_EXPR built for integral types and cope with
413 its addressability issues by preserving the first conversion.
414
9e81dbc7
AS
4152008-10-01 Andreas Schwab <schwab@suse.de>
416
417 * system-linux-ppc64.ads: New file.
418 * gcc-interface/Makefile.in: Add multilib handling for
419 powerpc-linux.
420
bb3da4f2
EB
4212008-09-26 Eric Botcazou <ebotcazou@adacore.com>
422
423 * decl.c (gnat_to_gnu_entity) <object>: Cap the alignment promotion
424 to that of ptr_mode instead of word_mode.
425
8f5730b9
EB
4262008-09-26 Eric Botcazou <ebotcazou@adacore.com>
427
428 PR ada/5911
429 * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support.
430
3ca37eb7
ST
4312008-09-25 Samuel Tardieu <sam@rfc1149.net>
432
433 PR ada/37641
434 * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA
435 instead of deprecated FILE_WRITE_PROPERTIES.
436
22868cbf
OH
4372008-09-22 Olivier Hainque <hainque@adacore.com>
438
439 * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they
440 are never assigned, volatile entities are not constant for code
441 generation purposes.
442
7193e639
LG
4432008-09-21 Laurent Guerby <laurent@guerby.net>
444
9e81dbc7 445 PR ada/5911
7193e639
LG
446 * gcc-interface/Makefile.in: Add multilib handling for x86_64
447 and sparc.
448 * system-linux-sparcv9.ads: New file.
9e81dbc7 449
7fda1596
EB
4502008-09-20 Eric Botcazou <ebotcazou@adacore.com>
451
452 * exp_dbug.ads: Document new convention for the XVZ variable.
453 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate
454 debug info if necessary for the type padding the component type.
455 <E_Array_Subtype>: Likewise.
456 (maybe_pad_type): Emit the XVZ variable in units.
457 * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
458 (Subprogram_Body_to_gnu): Set the source line of the subprogram's node
459 on statements generated to initialize the parameter attributes cache.
460 Set the source line of the end label of the body on the special return
461 statement built for a procedure with copy-in copy-out parameters.
462
d84b344a
EB
4632008-09-20 Eric Botcazou <ebotcazou@adacore.com>
464
465 PR ada/37585
466 * gcc-interface/utils.c (create_subprog_decl): Disable inlining for
467 inlined external functions if they contain a nested function not
468 declared inline.
469
4db26d6c
JH
4702008-09-18 Jan Hubicka <jh@suse.cz>
471
472 * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
473 (end_subprog_body): Do not set DECL_INLINE.
474
03e74118
PR
4752008-09-17 Pascal Rigaux <pixel@mandriva.com>
476
477 PR ada/21327
478 * gnat_ugn.texi: Use proper format in direntry.
479
6a7a3f31
EB
4802008-09-15 Eric Botcazou <ebotcazou@adacore.com>
481
482 * gcc-interface/trans.c (gigi): Declare the name of the compilation
483 unit as the first global name.
484
f67894ed
JH
4852008-09-14 Jan Hubicka <jh@suse.cz>
486
6a7a3f31 487 * gcc-interface/Make-lang.in (gnat1): Add CFLAGS.
f67894ed 488
16b05213
RW
4892008-09-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
490
491 * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads,
492 bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb,
493 exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
494 exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
495 exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads,
496 g-diopit.adb, g-socket.ads, gcc-interface/decl.c,
497 gcc-interface/gigi.h, gcc-interface/trans.c,
498 lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads,
499 opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads,
500 s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads,
501 s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
502 sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
503 sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
504 sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads,
505 sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in
506 comments.
507 * gnathtml.pl: Fix typos.
508
1011d8a2
JS
5092008-09-10 Joel Sherrill <joel.sherrill@oarcorp.com>
510
511 * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb.
512 * s-osinte-rtems.ads: Add shared hardware interrupt adapter
513 layer. RTEMS binds to OS provided adapter routines so there are
514 no modifications to s-osinte-rtems.adb.
515
e5c73177
AC
5162008-09-09 Arnaud Charlet <charlet@adacore.com>
517 Joel Sherrill <joel.sherrill@oarcorp.com>
518
519 * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb.
520
521 * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb
522
523 * s-interr-hwint.adb: New file.
524
525 * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions
526 needed by s-interr-hwint.adb.
527
528 * s-osinte-vxworks-kernel.adb: New file.
529
56cc5928
JS
5302008-09-05 Joel Sherrill <joel.sherrill@oarcorp.com>
531
532 * s-stchop-rtems.adb: Add file missed in early commit. Already
533 referenced in gcc-interface/Makefile.in.
534
21bacb7e
TQ
5352008-08-30 Thomas Quinot <quinot@adacore.com>
536
537 * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
538 be built even without a separate libada directory.
539
5b2da948
AC
5402008-08-22 Arnaud Charlet <charlet@adacore.com>
541
542 * lib-xref.ads: Fix typo in subprogram reference definition.
543
5442008-08-22 Robert Dewar <dewar@adacore.com>
545
c9f1fdfe
RD
546 * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix
547 to avoid warning.
5b2da948 548
c9f1fdfe 549 * g-trasym.adb: Ditto
5b2da948
AC
550
551 * s-utf_32.adb (Get_Category): Fix obvious typo
552
553 * s-wwdcha.adb: Minor code reorganization
554 Remove dead code
555
4351c21b
AC
5562008-08-22 Robert Dewar <dewar@adacore.com>
557
558 * checks.adb (Determine_Range): Deal with values that might be invalid
559
e5c73177
AC
560 * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New
561 configuration switches.
4351c21b
AC
562
563 * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values
564
565 * sem_prag.adb: Implement pragma Assume_No_Default_Values
566
567 * snames.adb, snames.ads, snames.h:
568 Add entries for pragma Assume_No_Invalid_Values
569
570 * switch-c.adb: Add processing for -gnatB switch
571
572 * usage.adb: Add entry for flag -gnatB (no bad invalid values)
573
5742008-08-22 Javier Miranda <miranda@adacore.com>
575
576 * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the
577 init procedure all the expanded code associated with the spec of
578 task types and protected types.
579
2743d81d
AC
5802008-08-22 Gary Dismukes <dismukes@adacore.com>
581
582 * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the
583 component expression copies rather than directly setting Etype and
584 Is_Static_Expression.
585
5862008-08-22 Gary Dismukes <dismukes@adacore.com>
587
588 * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of
589 private types to allow for types derived from a private type with
590 preelaborable initialization, but return False for a private extension
591 (unless it has the pragma).
592
5932008-08-22 Robert Dewar <dewar@adacore.com>
594
595 * opt.ads: Minor code reorganization (put entries in alpha order)
596
a5ad3248
AC
5972008-08-22 Pascal Obry <obry@adacore.com>
598
599 * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking
600 spawn.
601
6eca32ba
GB
6022008-08-22 Geert Bosch <bosch@adacore.com>
603
604 * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
605 (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0
606
1c7717c3
AC
6072008-08-22 Doug Rupp <rupp@adacore.com>
608
609 * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call
610 __gnat_set_features.
611
612 * init.c
613 (__gnat_set_features): New function.
614 (__gnat_features_set): New tracking variable.
615 (__gl_no_malloc_64): New feature global variable
616
6172008-08-22 Ed Schonberg <schonberg@adacore.com>
618
619 * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant
620 use_type_clause in an instance.
621
6222008-08-22 Bob Duff <duff@adacore.com>
623
624 * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds.
625
6262008-08-22 Robert Dewar <dewar@adacore.com>
627
628 * exp_ch6.adb: Minor reformatting
629
630 * exp_ch7.adb: Minor reformatting
631
632 * exp_ch7.ads: Put routines in proper alpha order
633
634 * exp_dist.adb: Minor reformatting
635
6362008-08-22 Vincent Celier <celier@adacore.com>
637
638 * prj.ads: Minor comment update
639
6402008-08-22 Robert Dewar <dewar@adacore.com>
641
642 * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack
643
6442008-08-22 Ed Schonberg <schonberg@adacore.com>
645
646 * exp_tss.adb:
647 (Base_Init_Proc): For a protected subtype, use the base type of the
648 corresponding record to locate the propoer initialization procedure.
649
6502008-08-22 Robert Dewar <dewar@adacore.com>
651
652 * checks.adb:
653 (In_Subrange_Of): New calling sequence
654 (Determine_Range): Prepare for new processing using base type
655
656 * exp_ch4.adb:
657 (Compile_Time_Compare): Use new calling sequence
658
659 * exp_ch5.adb:
660 (Compile_Time_Compare): Use new calling sequence
661
662 * sem_eval.adb:
663 (Compile_Time_Compare): New calling sequence allows dealing with
664 invalid values.
665 (In_Subrange_Of): Ditto
666
667 * sem_eval.ads:
668 (Compile_Time_Compare): New calling sequence allows dealing with
669 invalid values.
670 (In_Subrange_Of): Ditto
671
6722008-08-22 Pascal Obry <obry@adacore.com>
673
674 * adaint.c: Fix possible race condition on win32_wait().
675
048e5cef
BD
6762008-08-22 Bob Duff <duff@adacore.com>
677
678 * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb,
679 exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
680 exp_intr.adb, exp_ch3.adb: Rename:
681 Exp_Ch7.Controlled_Type => Needs_Finalization
682 Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part
683 Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type =>
684 Has_Controlled_Parts
685 (Has_Some_Controlled_Component): Fix bug in array case.
686
da2f5d14
AC
6872008-08-22 Robert Dewar <dewar@adacore.com>
688
689 * sem_ch8.adb: Minor reformatting
690
6912008-08-22 Kevin Pouget <pouget@adacore.com>
692
693 * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and
694 Shared_Var_Close procedure specifications from package spec to package body.
695
696 * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen,
697 RE_Shared_Var_WOpen entries.
698
699 * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in
700 Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures.
701
7022008-08-22 Eric Botcazou <ebotcazou@adacore.com>
703
704 * init.c: adjust EH support code on Alpha/Tru64 as well.
705
706 * raise-gcc.c: Add back a couple of comments.
707
7082008-08-22 Ed Schonberg <schonberg@adacore.com>
709
710 * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is
711 involved and the return type is class-wide, use the type of the expression
712 for the generated access type. Suppress useless discriminant checks on the
713 allocator.
714
7152008-08-22 Bob Duff <duff@adacore.com>
716
717 * exp_ch7.adb: Minor comment fix
718
719 * exp_ch6.ads: Minor comment fix
720
1dcdbfab
AC
7212008-08-22 Thomas Quinot <quinot@adacore.com>
722
723 * sem_ch8.adb: Minor reformatting
724 Minor code reorganization (introduce subprogram to factor duplicated
725 code).
726
7272008-08-22 Sergey Rybin <rybin@adacore.com>
728
729 * gnat_ugn.texi: Change the description of gnatcheck default rule
730 settings.
731
7322008-08-22 Eric Botcazou <ebotcazou@adacore.com>
733
734 * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX,
735 Solaris, FreeBSD, VxWorks and PowerPC/Linux. For x86{-64}/Linux,
736 do not adjust the PC anymore.
737 (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise
738 on AIX, HP-UX, Solaris, FreeBSD and VxWorks.
739
740 * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo
741 instead of _Unwind_GetIP.
742
7432008-08-22 Gary Dismukes <dismukes@adacore.com>
744
745 * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate
746 with a range is transformed into a positional aggregate, any copied
747 component literals should be marked Is_Static_Expression.
748
749 * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as
750 not being known at at compile time when Configurable_Run_Time_Mode is
751 true.
752
7532008-08-22 Robert Dewar <dewar@adacore.com>
754
755 * exp_attr.adb:
756 (Expand_N_Attribute_Reference): No validity checking on OUT parameter of
757 Read or Input attribute.
758
0d4aed99
AC
7592008-08-22 Ed Schonberg <schonberg@adacore.com>
760
761 * sem_ch8.adb (Use_One_Type): when checking which of two use_type
762 clauses in related units is redundant, if one of the units is a package
763 instantiation, use its instance_spec to determine which unit is the
764 ancestor of the other.
765
7662008-08-22 Javier Miranda <miranda@adacore.com>
767
768 * exp_attr.adb (Expand_N_Attribute_Reference): In case of access
769 attributes add missing support to handle designated types that come
770 from the limited view.
771
772 * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion.
773
7742008-08-22 Sergey Rybin <rybin@adacore.com>
775
776 * vms_data.ads: Add entry for new gnatcheck -mNNN option
777
778 * gnat_ugn.texi: Add description for gnatcheck option '-m'
779
5d41bf55
AC
7802008-08-22 Sergey Rybin <rybin@adacore.com>
781
782 * gnat_ugn.texi: Update the gnatcheck subsection for metric rules
783 acoording to the latest changes in the metric rule interface
784
7852008-08-22 Vincent Celier <celier@adacore.com>
786
787 * make.adb (Check.File_Not_A_Source_Of): New Boolean function
788 (Check): Check if the file names registered in the ALI file for the
789 spec, the body and each of the subunits are the ones expected.
790
7912008-08-22 Robert Dewar <dewar@adacore.com>
792
793 * g-catiio.adb: Code cleanup.
794
9299a27c
AC
7952008-08-20 Vincent Celier <celier@adacore.com>
796
797 * make.adb (Gnatmake): Remove extra space in version line
798
799 * ali.adb:
800 (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit,
801 as the name may already have been entered in the table by the Project
802 Manager.
803
8042008-08-20 Jose Ruiz <ruiz@adacore.com>
805
806 * errno.c (__get_errno, __set_errno for MaRTE): Transform then into
807 weak symbols so we use the version provided by MaRTE when available.
808
8092008-08-20 Emmanuel Briot <briot@adacore.com>
810
811 * g-catiio.ads, g-catiio.adb:
812 (Value): Avoid an unnecessary system call to Clock in most cases.
813 This call is only needed when only the time is provided in the string,
814 and ignored in all other cases. This is more efficient.
815
8162008-08-20 Eric Botcazou <ebotcazou@adacore.com>
817
818 * raise-gcc.c: Fix formatting nits.
819
5e5dc75a
RD
8202008-08-20 Robert Dewar <dewar@adacore.com>
821
822 * sem_ch13.adb:
823 (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
824 non-existing component clause.
825
826 * exp_ch5.adb: Minor reformatting
827
828 * g-comlin.adb: Minor reformatting
829
830 * make.adb: Minor reformatting
831
832 * prj-proc.adb: Minor reformatting
833
834 * stylesw.ads: Minor reformatting
835
235f4375
AC
8362008-08-20 Vincent Celier <celier@adacore.com>
837
838 * make.adb (Gnatmake_Switch_Found): New Boolean global variable
839 (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable
840 (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler
841 defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False
842 and a switch is not recognized by gnatmake.
843 (Gnatmake): Implement new scheme for gnatmake switches and global
844 compilation switches.
845 (Switches_Of): Try successively Switches (<file name>),
846 Switches ("Ada"), Switches (others) and Default_Switches ("Ada").
847
8482008-08-20 Ed Schonberg <schonberg@adacore.com>
849
850 * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to
851 implement style check that overriding operations are explicitly marked
852 at such.
853
854 * style.ads (Missing_Overriding): new procedure that provides interface
855 to previous one.
856
857 * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check
858 that the declaration or body of overriding operations carries an
859 explicit overriding indicator.
860
861 * sem_ch8.adb
862 (Analyze_Subprogram_Renaming): if operation is overriding, check whether
863 explicit indicator should be present.
864
865 * sem_ch6.adb (Verify_Overriding_Indicator,
866 Check_Overriding_Indicator): If operation is overriding, check whether
867 declaration and/or body of subprogram should be present
868
7486d8e0
AC
8692008-08-20 Vincent Celier <celier@adacore.com>
870
871 * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for
872 gprbuild when casing is MixedCase, whatever the casing of the letters
873 in the file name.
874
8752008-08-20 Gary Dismukes <dismukes@adacore.com>
876
877 * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to
878 creating dummy init proc.
879 (Requires_Init_Proc): Return False in the case No_Default_Initialization
880 is in force and the type does not have associated default
881 initialization. Move test of Is_Public (with tests of restrictions
882 No_Initialize_Scalars and No_Default_Initialization) to end, past tests
883 for default initialization.
884
8852008-08-20 Jerome Lambourg <lambourg@adacore.com>
886
887 * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part
888 of any alias or prefix but having attached parameters (as \"-O2\").
889
fe5dbc2c
AC
8902008-08-20 Robert Dewar <dewar@adacore.com>
891
892 * s-fileio.adb: Minor reformatting
893
8942008-08-20 Thomas Quinot <quinot@adacore.com>
895
896 * exp_strm.adb (Build_Elementary_Input_Call,
897 Build_Elementary_Write_Call): Fix incorrect condition in circuitry that
898 selects the stream attribute routines for long float types.
899
9002008-08-20 Vincent Celier <celier@adacore.com>
901
902 * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data
903
904 * prj.ads (Array_Data): Add a component Location
905
9062008-08-20 Ed Schonberg <schonberg@adacore.com>
907
908 * sem_prag.adb:
909 (Analyze_Pragma, case Obsolescent): Add entity information on the pragma
910 argument for ASIS and navigation use.
911
9122008-08-20 Ed Schonberg <schonberg@adacore.com>
913
914 * einfo.ads: Add comment.
915
9162008-08-20 Bob Duff <duff@adacore.com>
917
918 * sem_eval.ads: Minor comment fix.
919
9202008-08-20 Bob Duff <duff@adacore.com>
921
922 * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant
923 folding. We were folding things like "False and then ...", but not
924 "X and then ..." where X is a constant whose value is known at compile
925 time.
926
9272008-08-20 Hristian Kirtchev <kirtchev@adacore.com>
928
929 * exp_ch5.adb (Controlled_Type): New routine.
930 (Expand_N_Extended_Return_Statement): When generating a move of the
931 final list in extended return statements, check the type of the
932 function and in the case of double expanded return statements, the type
933 of the returned object.
934 (Expand_Simple_Function_Return): Perform an interface conversion when
935 the type of the returned object is an interface and the context is an
936 extended return statement.
937
9382008-08-20 Ed Schonberg <schonberg@adacore.com>
939
940 * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type
941 and the full view is visible, set flag on full view as well.
942
9432008-08-20 Thomas Quinot <quinot@adacore.com>
944
945 * g-comlin.adb: Minor reformatting
946 Minor code reorganization.
947
948 * freeze.adb: Minor reformatting
949
9502008-08-20 Vincent Celier <celier@adacore.com>
951
952 * prj-nmsc.adb (Check_File): An excluded Ada source file may be a
953 source of another project.
954
9552008-08-20 Pascal Obry <obry@adacore.com>
956
957 * s-os_lib.ads: Minor reformatting.
958
c4075a15
AC
9592008-08-20 Arnaud Charlet <charlet@adacore.com>
960
961 * gnatvsn.ads: Minor reformatting.
962
0dd8a0b1
AC
9632008-08-20 Arnaud Charlet <charlet@adacore.com>
964
965 * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads,
966 system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb,
967 g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads,
968 mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb,
969 exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads,
970 g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb,
971 s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb,
972 sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb,
973 s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads,
974 g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb,
975 g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb,
976 g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads,
977 live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb,
978 g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads,
979 s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb,
980 g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads,
981 s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads,
982 g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb,
983 osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb,
984 system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads,
985 i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads,
986 s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads,
987 a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads,
988 s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb,
989 a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads,
990 g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb,
991 a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c,
992 a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb,
993 lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads,
994 s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads,
995 par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads,
996 a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb,
997 system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads,
998 s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads,
999 a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb,
1000 mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb,
1001 s-poosiz.adb, link.c: Fix copyright notice.
1002
f4857d6e
AC
10032008-08-20 Arnaud Charlet <charlet@adacore.com>
1004
1005 * g-comlin.ads: Update comments.
1006
8b4261b3
AC
10072008-08-20 Ed Schonberg <schonberg@adacore.com>
1008
1009 * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag.
1010
10112008-08-20 Gary Dismukes <dismukes@adacore.com>
1012
1013 * exp_ch11.adb:
1014 (Expand_Exception_Handlers): Call Make_Exception_Handler instead of
1015 Make_Implicit_Exception_Handler when rewriting an exception handler with
1016 a choice parameter, and pass the handler's Sloc instead of that of the
1017 handled sequence of statements. Make_Implicit_Exception_Handler sets the
1018 Sloc to No_Location (unless debugging generated code), which we don't
1019 want for the case of a user handler.
1020
c6084ae0
AC
10212008-08-20 Robert Dewar <dewar@adacore.com>
1022
1023 * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field
9e81dbc7 1024
c6084ae0
AC
1025 * sem_ch13.adb:
1026 (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are
1027 now labeled as info msgs, not warnings.
1028
1029 * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler
1030
1031 * usage.adb: Minor change to avoid overlong line for -gnatwz/Z
1032
1033 * a-textio.adb: Remove redundant test.
1034
1035 * a-witeio.adb: Minor code reorganization
1036 Remove redundant test found working on another issue
1037
1038 * a-ztexio.adb: Minor code reorganization
1039 Remove redundant test found working on another issue
1040
10412008-08-20 Thomas Quinot <quinot@adacore.com>
1042
1043 * s-fileio.adb (Open) Use C helper function to determine whether a
1044 given errno value corresponds to a "file not found" error.
1045
1046 * sysdep.c (__gnat_is_file_not_found_error): New C helper function.
1047
10482008-08-20 Jose Ruiz <ruiz@adacore.com>
1049
1050 * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno
1051 to get access to the per-task errno variable.
1052 (__set_errno for MaRTE): Do not redefine this function here since it is
1053 already defined in MaRTE.
1054
10552008-08-20 Tristan Gingold <gingold@adacore.com>
1056
1057 * gnat_ugn.texi: Gcov is not supported on static library on AIX.
1058
6e7f835f
AC
10592008-08-20 Robert Dewar <dewar@adacore.com>
1060
1061 * freeze.adb: Minor reformatting
1062
1063 * g-comlin.adb: Minor reformatting
1064
1065 * g-socket.adb: Minor reformatting
1066
1067 * g-socthi-mingw.adb: Minor reformatting
1068
1069 * g-stheme.adb: Minor reformatting
1070
2af92e28
ES
10712008-08-20 Ed Schonberg <schonberg@adacore.com>
1072
1073 * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads,
1074 exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
1075 confusion between partial and full views of an ancestor of the context
1076 type when the parent is a private extension declared in a parent unit,
1077 and full views are available for the context type.
1078
79a14178 10792008-08-18 Samuel Tardieu <sam@rfc1149.net>
9e81dbc7 1080 Robert Dewar <dewar@adacore.com>
79a14178
ST
1081
1082 PR ada/30827
1083 * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the
1084 version string.
1085 Move comment in the right place.
1086 * g-comver.adb (Version): Look for a zero-termination in
1087 addition to a closing parenthesis.
1088
b9b2405f
ST
10892008-08-18 Samuel Tardieu <sam@rfc1149.net>
1090
1091 * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb,
1092 * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
1093 * sem_prag.adb, sem_util.adb, sem_warn.adb: Use
1094 Is_Package_Or_Generic_Package instead of hand-crafted tests.
1095
51c16e29
ST
10962008-08-18 Samuel Tardieu <sam@rfc1149.net>
1097
1098 PR ada/15808
1099 * sem_ch6.adb (Check_Private_Overriding): Check for generic packages
1100 as well.
1101
c8bbc9ef
AL
11022008-08-17 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1103
1104 * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.
1105
e650b83a
EB
11062008-08-16 Eric Botcazou <ebotcazou@adacore.com>
1107
1108 * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
1109 for back-copy statements in lieu of that of the actual.
1110
b38f3813
EB
11112008-08-16 Eric Botcazou <ebotcazou@adacore.com>
1112
1113 PR ada/20548
1114 * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
12f89f6c 1115 setjmp test consistently. Adjust for new behavior of flag_stack_check.
b38f3813 1116 * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
12f89f6c 1117 test of flag_stack_check. Adjust for new behavior of flag_stack_check.
b38f3813 1118
2d14501c
ST
11192008-08-13 Samuel Tardieu <sam@rfc1149.net>
1120
1121 PR ada/36777
1122 * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New.
1123 * sem_attr.adb (Check_Type): The current instance of a protected
1124 object is not a type name.
1125 (Analyze_Access_Attribute): Accept instances of protected objects.
1126 (Analyze_Attribute, Attribute_Address clause): Ditto.
1127 * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite
1128 the prefix as being the current instance if needed.
1129
62641193
DS
11302008-08-12 Danny Smith <danyssmith@users.sourceforge.net>
1131
0490fbb8
EB
1132 * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]:
1133 Remove duplicate s-win32.o. Add s-winext.o.
62641193 1134
2a04ce75
DS
11352008-08-12 Danny Smith <danyssmith@users.sourceforge.net>
1136
1137 * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM
1138 with SOSC.SOCK__STREAM.
1139 * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with
1140 SOSC.MSG_OOB.
1141
269b85b7
JS
11422008-08-11 Joel Sherrill <joel.sherrill@oarcorp.com>
1143
1144 * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it.
1145 * gsocket.h, socket.c: Update to support RTEMS.
1146 * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross.
1147
abcbd24c 11482008-08-10 Samuel Tardieu <sam@rfc1149.net>
9e81dbc7 1149 Robert Dewar <dewar@adacore.com>
abcbd24c
ST
1150
1151 * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of
1152 left argument even when right argument is 0.
1153 (Expand_N_Op_Mod): Ditto when right argument is 1.
1154 (Expand_N_Op_Multiply): Ditto when any argument is 0.
1155 (Expand_N_Op_Rem): Ditto when right argument is 1.
1156
98e48a7f
MLI
11572008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1158
1159 * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
1160 by warn_unused.
9e81dbc7 1161
70d904ca
ES
11622008-08-08 Ed Schonberg <schonberg@adacore.com>
1163
1164 * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
1165 from Freeze_Entity. Used to generate cross-reference information for
1166 types declared in generic packages.
1167
cfb53555
TQ
11682008-08-08 Thomas Quinot <quinot@adacore.com>
1169
1170 * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a
1171 compatibility shim.
1172
a3ea9137
AC
11732008-08-08 Thomas Quinot <quinot@adacore.com>
1174
1175 * gsocket.h:
1176 On Windows, include <errno.h> and redefine only selected errno values
1177 from their <winsock2.h> definitions.
1178
1179 * s-osinte-freebsd.ads: Minor reformatting
1180
1181 * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting
1182
1183 * g-soccon.ads: New file.
1184
1185 * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
1186 g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
1187 g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
1188 g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
1189 unit, to allow building software that depends on this internal unit
1190 with both older and newer compilers.
1191
11922008-08-08 Robert Dewar <dewar@adacore.com>
1193
1194 * s-strxdr.adb: Minor reformatting
1195
11962008-08-08 Bob Duff <duff@adacore.com>
1197
1198 * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
1199 checking for integer operations (including division by zero)", which
1200 is wrong -- divide by zero is not part of overflow checking.
1201 Also added misc clarification about what check-suppression means.
1202
1203 * gnat_rm.texi: Clarify the meaning of pragma Suppress.
1204
12052008-08-08 Jerome Lambourg <lambourg@adacore.com>
1206
1207 * g-comlin.adb (Add_Switch): Handle addition of switches at the
1208 begining of the command line.
1209 (Append, Add): Renaming of Append to Add as this now allows addition
1210 at the begining of the list.
9e81dbc7 1211
a3ea9137
AC
1212 * g-comlin.ads (Add_Switch): Handle addition of switches at the
1213 begining of the command line.
1214
12152008-08-08 Thomas Quinot <quinot@adacore.com>
1216
1217 * g-sercom.ads:
1218 (Name): Document application scope (only legacy PC serial ports on
1219 Linux and Windows).
1220
15d2e2d4
TQ
12212008-08-08 Thomas Quinot <quinot@adacore.com>
1222
1223 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
1224 previous change, not needed after all.
1225
51e4c4b9
AC
12262008-08-08 Ed Schonberg <schonberg@adacore.com>
1227
1228 * exp_ch4.adb (Expand_Allocator_Expression): add check if null
1229 exclusion indicator is present
1230
12312008-08-08 Robert Dewar <dewar@adacore.com>
1232
1233 * g-comlin.adb: Minor code reorganization
1234 Minor reformatting
1235
1236 * g-comlin.ads: Minor reformatting
1237
1238 * s-fileio.adb: Minor reformatting
1239
1240 * sem_attr.adb: Minor code reorganization (use Nkind_In)
1241 Minor reformatting
1242
6f371a2e
ST
12432008-08-06 Samuel Tardieu <sam@rfc1149.net>
1244
1245 * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
1246 with s-oscons-tmplt.i.
1247
6a69bcf4
ST
12482008-08-06 Samuel Tardieu <sam@rfc1149.net>
1249
1250 * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.
1251
ef9e1eff
AC
12522008-08-06 Ed Schonberg <schonberg@adacore.com>
1253
1254 * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
1255 of incomplete type.
1256
1257 * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
1258 of a formal parameter of an incomplete type. Improve error message for
1259 other improper uses of incomplete types.
1260
12612008-08-06 Robert Dewar <dewar@adacore.com>
1262
1263 * gnat_ugn.texi: Clarify -gnato documentation
1264
12652008-08-06 Thomas Quinot <quinot@adacore.com>
1266
1267 * gcc-interface/Makefile.in,
1268 g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
1269 g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
1270 g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
1271 g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
1272 g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
1273 g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
1274 g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
1275 g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
1276 g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
1277 Remove GNAT.Sockets.Constants. This internal package is replaced by
1278 System.OS_Constants.
1279
e93d146b
TQ
12802008-08-06 Thomas Quinot <quinot@adacore.com>
1281
1282 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
1283 Remove obsolete targets referencing gen-soccon
1284 When generating s-oscons.ads, use a file name that includes the
1285 THREAD_KIND, to ensure that the (potentially different) version from a
1286 previous build with a different threads flavour does not get reused.
1287
c6aecf3b
AC
12882008-08-06 Thomas Quinot <quinot@adacore.com>
1289
1290 * sem_res.adb: Minor reformatting
1291
1292 * s-fileio.adb (Open): When file open operation fails, raise Name_Error
1293 only when the operating system reports a non-existing file or directory
1294 (ENOENT), otherwise raise Name_Error.
1295
1296 * exp_ch11.adb: Minor reformatting
1297
12982008-08-06 Ed Schonberg <schonberg@adacore.com>
1299
1300 * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
1301 incomplete, add the access_to_subprogram type to the list of private
1302 dependents only if the incomplete type will be completed in the current
1303 scope.
1304 (Build_Discriminant_Constraints): If the type of the discriminant is
1305 access_to_variable, reject a constraint that is access_to_constant.
1306
6594c0f3
AC
13072008-08-06 Thomas Quinot <quinot@adacore.com>
1308
1309 * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
1310 g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
1311 g-sttsne-dummy.ads: New files.
1312
1313 * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
1314 with pragma Unimplemented_Unit for sockets packages on Nucleus.
1315
13162008-08-06 Pascal Obry <obry@adacore.com>
1317
1318 * adaint.c: Another fix for ACL support on Windows.
1319
13202008-08-06 Javier Miranda <miranda@adacore.com>
1321
1322 * exp_disp (Expand_Interface_Actuals): Adds missing support for
1323 expansion of calls to subprograms using selected components.
1324
13252008-08-06 Ed Schonberg <schonberg@adacore.com>
1326
1327 * sem_res.adb (Resolve_Call): Use base type to determine whether a
1328 dereference is needed because a subtype of an access_to_subprogram is
1329 simply an access-subtype
1330
13312008-08-06 Jerome Lambourg <lambourg@adacore.com>
1332
1333 * g-comlin.adb (Set_Command_Line): Now that aliases can contain
1334 parameters, always specify the expected separator.
1335
f9325b03
AC
13362008-08-06 Thomas Quinot <quinot@adacore.com>
1337
1338 * xnmake.adb: Use new XUtil package for platform independent text
1339 output.
1340
13412008-08-06 Vincent Celier <celier@adacore.com>
1342
1343 * gnat_ugn.texi: Document compiler switch -gnateG
1344
13452008-08-06 Quentin Ochem <ochem@adacore.com>
1346
1347 * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
1348 in the case of an empty pattern size.
1349 (Compute_Result): Do not do any computation in the case of an empty
1350 pattern size.
1351 (Report_Result): Fixed computation of the overflow guard.
1352
13532008-08-06 Ed Schonberg <schonberg@adacore.com>
1354
1355 * g-awk.adb (Finalize): Do not use directly objects of the type in the
1356 finalization routine to prevent elaboration order anomalies in new
1357 finalization scheme.
1358
13592008-08-06 Ed Schonberg <schonberg@adacore.com>
1360
1361 * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
1362 declaration for the same type.
1363
13642008-08-06 Thomas Quinot <quinot@adacore.com>
1365
1366 * sem.adb: Minor rewording (comment)
1367
13682008-08-06 Jerome Lambourg <lambourg@adacore.com>
1369
1370 * g-comlin.adb (Define_Switch, Get_Switches): New.
1371 (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
1372 ungrouping switches.
1373 (For_Each_Simple_Switch): Allow more control over parameters handling.
1374 This generic method now allows ungrouping of switches with parameters
1375 and switches with more than one letter after the prefix.
1376 (Set_Command_Line): Take care of switches that are prefixed with a
1377 switch handling parameters without delimiter (-gnatya and -gnaty3 for
1378 example).
1379 (Add_Switch, Remove_Switch): Handle parameters possibly present inside
1380 a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
1381 the operation.
1382 (Start, Alias_Switches, Group_Switches): Take care of parameters
1383 possibly present inside a group.
1384
1385 * g-comlin.ads (Define_Switch): New method used to define a list of
1386 expected switches, that are necessary for correctly ungrouping switches
1387 with more that one character after the prefix.
1388 (Get_Switches): Method that builds a getopt string from the list of
1389 switches as set previously by Define_Switch.
1390 (Add_Switch, Remove_Switch): New versions of the methods, reporting the
1391 status of the operation. Also allow the removal of switches with
1392 parameters only.
1393 (Command_Line_Configuration_Record): Maintain a list of expected
1394 switches.
1395
f0a631aa
DR
13962008-08-06 Doug Rupp <rupp@adacore.com>
1397
1398 * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
1399 TARGET_MALLOC64 clear.
1400
1401 * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
1402 if TARGET_MALLOC64 clear.
1403
1404 * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
1405 (TARGET_MALLC64): New macro. Default to clear.
1406
31fcb30f
DR
14072008-08-06 Doug Rupp <rupp@adacore.com>
1408
1409 * gcc-interface/utils2.c (snames.h) Include
1410 (TARGET_ABI_OPEN_VMS): Initialize.
1411 (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
1412 for Convention C.
1413
ea08fcdc
AC
14142008-08-06 Ed Schonberg <schonberg@adacore.com>
1415
1416 * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
1417 null exclusion in a discriminant declaration
1418
1419 * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
1420 indicators when type is not an access type.
1421
1422 * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
1423 indicators when type is not an access type.
1424
14252008-08-06 Javier Miranda <miranda@adacore.com>
1426
1427 * exp_disp (Expand_Interface_Conversion): Freeze the entity associated
1428 with the target interface before expanding the code of the interface
1429 conversion.
1430
aecf0203
AC
14312008-08-05 Ed Schonberg <schonberg@adacore.com>
1432
1433 * freeze.adb:
1434 (Freeze_Entity): A deferred constant does not violate the restriction
9e81dbc7 1435 No_Default_Initialization,
aecf0203
AC
1436
1437 * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
1438 can carry a null exclusion indicator, and on which an error may be
1439 posted if the indicator is redundant.
1440
1441 * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
1442 does not apply to a subtype mark that already excludes null.
1443
1444 * sem_ch12.adb (Formal_Object_Declaration): Verify that a null
1445 exclusion does not apply to a subtype mark that already excludes null.
1446
14472008-08-05 Thomas Quinot <quinot@adacore.com>
1448
1449 * Makefile.rtl: Compile s-oscons.ads as part of the runtime library.
1450
14512008-08-05 Doug Rupp <rupp@adacore.com>
1452
1453 * vms_data.ads: Translation for /POINTER_SIZE qualifier.
1454
434d3cf1
AC
14552008-08-05 Thomas Quinot <quinot@adacore.com>
1456
1457 * gsocket.h: Make this file includable in a Nucleus environment, which
1458 does not support sockets.
1459
1460 * socket.c: Remove Nucleus-specific hack.
1461
14622008-08-05 Pascal Obry <obry@adacore.com>
1463
1464 * adaint.c: Remove support for readable attribute on vxworks and nucleus
1465
14662008-08-05 Ed Schonberg <schonberg@adacore.com>
1467
1468 * sem_attr.adb:
1469 (Analyze_Attribute, case 'Result): handle properly the case where some
1470 operand of the expression in a post-condition generates a transient
1471 block.
1472
1473 * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
1474 right-hand side when it is an anonymous access_to_subprogram, to force
1475 static accessibility check when needed.
1476
49331b42
AC
14772008-08-05 Sergey Rybin <rybin@adacore.com>
1478
1479 * gnat_ugn.texi: Changing the description of the gnatcheck metrics
1480 rule according to the change in the rule option.
1481 Add documentation for -gnatw.b/-gnatw.B
1482
14832008-08-05 Robert Dewar <dewar@adacore.com>
1484
1485 * ug_words: Add entries for -gnatw.b/-gnatw.B
1486
1487 * vms_data.ads: Add entries for -gnatw.b/-gnatw.B
1488
21f560ba
VC
14892008-08-05 Vincent Celier <celier@adacore.com>
1490
1491 * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
1492 (File).
9e81dbc7 1493
21f560ba
VC
1494 * a-ztdeio.adb: Ditto.
1495
43540ec6
AC
14962008-08-05 Pascal Obry <obry@adacore.com>
1497
1498 * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
1499 readable attribute.
1500
15012008-08-05 Vincent Celier <celier@adacore.com>
1502
1503 * s-wchwts.adb:
1504 (Wide_String_To_String): Returns a String with the same 'First as its
1505 parameter S.
1506 (Wide_Wide_String_To_String): Ditto
9e81dbc7 1507
43540ec6
AC
1508 * s-wchwts.ads:
1509 (Wide_String_To_String): Document that the lowest index of the returned
1510 String is equal to S'First.
1511
2d4d7e29
TQ
15122008-08-05 Thomas Quinot <quinot@adacore.com>
1513
1514 * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.
1515
1516 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
1517 s-oscons.ads
1518
4ae23b62
AC
15192008-08-05 Robert Dewar <dewar@adacore.com>
1520
1521 * opt.ads (Warn_On_Biased_Representation): New flag
9e81dbc7 1522
4ae23b62
AC
1523 * sem_ch13.adb:
1524 (Analyze_Attribute_Definition_Clause): Issue warning when biased
1525 representation is required.
1526 (Minimum_Size): Don't allow biasing if enum rep clause case
9e81dbc7 1527
4ae23b62
AC
1528 * sem_warn.adb:
1529 (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
1530 (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
9e81dbc7 1531
4ae23b62
AC
1532 * usage.adb: Add lines for -gnatw.b/B switches
1533
15342008-08-05 Pascal Obry <obry@adacore.com>
1535
1536 * a-coinve.adb: Reorder the code to avoid uninitialized warning.
1537
1538 * adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
1539
15402008-08-05 Thomas Quinot <quinot@adacore.com>
1541
1542 * socket.c: Minor reformatting.
1543
ba3fa650
AC
15442008-08-05 Robert Dewar <dewar@adacore.com>
1545
1546 * sem_ch3.adb: Minor reformatting
1547
1548 * prj-nmsc.adb: Minor reformatting
1549
15502008-08-05 Ed Schonberg <schonberg@adacore.com>
1551
1552 * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
1553 visibility check on the component type if the simple test fails.
1554
c775e4a1
AC
15552008-08-05 Jose Ruiz <ruiz@adacore.com>
1556
1557 * init.c (__gnat_install_handler for linux): If we are building the
1558 Xenomai run time then we need to do two additional things: avoid
1559 memory swapping and transform the Linux environment task into a native
1560 Xenomai task.
1561
1562 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
1563 time): Use interface to Xenomai native skin and avoid linux-specific
1564 way of setting CPU affinity.
1565 (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
1566
15672008-08-05 Bob Duff <duff@adacore.com>
1568
1569 * checks.ads: Minor comment fix
1570
15712008-08-05 Thomas Quinot <quinot@adacore.com>
1572
1573 * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
1574 g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
1575 CS8.
1576
15772008-08-05 Robert Dewar <dewar@adacore.com>
1578
1579 * mlib.adb: Minor code reorganization
1580 Minor reformatting
1581
1582 * make.adb: Minor reformatting
1583
1584 * prj-attr.ads: Minor reformatting
1585
1586 * s-os_lib.adb: Minor reformatting
1587
1588 * s-fileio.adb: Minor code reorganization
1589 Minor reformatting
1590
1591 * prj.ads: Minor reformatting
1592
15932008-08-05 Bob Duff <duff@adacore.com>
1594
1595 * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
1596 unresolved initial value of "null", because it causes implicitly
1597 generated "=" operators to be ambiguous, and because this type should
1598 not be passed to gigi.
1599
0df218a9
AC
16002008-08-05 Vincent Celier <celier@adacore.com>
1601
1602 * mlib.adb: Update comments.
1603
1604 * make.adb (Switches_Of): Check for Switches (others), before checking
1605 for Default_Switches ("Ada").
1606 (Gnatmake): Use Builder'Switches (others) in preference to
1607 Builder'Default_Switches ("Ada") if there are several mains.
1608
1609 * prj-attr-pm.adb:
1610 (Add_Attribute): Add component Others_Allowed in Attribute_Record
1611 aggregate.
1612
1613 * prj-attr.adb:
1614 Add markers to indicates that attributes Switches allow others as index
1615 (Others_Allowed_For): New Boolean function, returning True for
1616 attributes with the mark.
1617 (Initialize): Recognize optional letter 'O' as the marker for
1618 associative array attributes where others is allowed as the index.
1619
1620 * prj-attr.ads:
1621 (Others_Allowed_For): New Boolean function
1622 (Attribute_Record): New Boolean component Others_Allowed
9e81dbc7 1623
0df218a9
AC
1624 * prj-dect.adb:
1625 (Parse_Attribute_Declaration): For associative array attribute where
1626 others is allowed as the index, allow others as an index.
1627
1628 * prj-nmsc.adb:
1629 (Process_Binder): Skip associative array attributes with index others
1630 (Process_Compiler): Ditto
1631
1632 * prj-util.adb:
1633 (Value_Of (Index, In_Array)): Make no attempt to put in lower case when
1634 index is All_Other_Names.
1635
1636 * prj.ads:
1637 (All_Other_Names): New constant
1638
1639 * prj-proc.adb:
1640 (Process_Declarative_Items): Skip associative array attribute when index
1641 is reserved word "others".
1642
16432008-08-05 Vasiliy Fofanov <fofanov@adacore.com>
1644
1645 * gen-oscons.c: Adapt for VMS where termios.h is not available.
1646
c7d920ad
TQ
16472008-08-05 Thomas Quinot <quinot@adacore.com>
1648
1649 * a-rttiev.adb: Minor reformatting (comments)
1650
1651 * gen-soccon.c: Rename to gen-oscons.c
1652
1653 * gen-oscons.c: New file. Now generate System.OS_Constants instead of
1654 GNAT.Sockets.Constants.
1655 Add new constants for GNAT.Serial_Communications and System.File_IO.
1656
8b79ad42
AC
16572008-08-05 Javier Miranda <miranda@adacore.com>
1658
1659 * sem_util.adb (Collect_Interfaces_Info): Minor reformating.
1660 * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
1661 implementation of this routine has been simplified.
1662
16632008-08-05 Pascal Obry <obry@adacore.com>
1664
1665 * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
1666 Set_Read_Only Win32 implementation.
1667
99e81db6
TQ
16682008-08-05 Thomas Quinot <quinot@adacore.com>
1669
1670 * exp_strm.adb: Minor reformatting (comments)
1671
1672 * sem_ch12.adb: Minor reformatting.
1673
dce86910
AC
16742008-08-05 Robert Dewar <dewar@adacore.com>
1675
1676 * sem_ch3.adb: Minor reformatting
1677
1678 * checks.adb: Minor reformatting
1679
16802008-08-05 Thomas Quinot <quinot@adacore.com>
1681
1682 * tbuild.ads (New_External_Name): Update spec to reflect relaxed
1683 restriction on Prefix.
1684
16852008-08-05 Jerome Lambourg <lambourg@adacore.com>
1686
1687 * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
1688 methods needed to handle switch sections when building a command line.
1689 (Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
1690 Current_Section): New public methods or methods modified to handle
1691 building command lines with sections.
1692 (Set_Command_Line): Take into account sections when analysing a switch
1693 string.
1694 (Start): Sort the switches by sections before iterating the command line
1695 elements.
9e81dbc7 1696
dce86910
AC
1697 * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
1698 Is_New_Section, Current_Section): New methods or methods modified to
1699 handle building command lines with sections.
1700
17012008-08-05 Ed Schonberg <schonberg@adacore.com>
1702
1703 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
1704 discriminants, indicate that the corresponding object declaration has
1705 no initialization, to prevent spurious warnings when the access type is
1706 null-excluding.
1707
17082008-08-05 Ed Schonberg <schonberg@adacore.com>
1709
1710 * sem_res.adb (Resolve_Call): If this is a call to the predefined
1711 Abort_Task, warn if the call appears within a protected operation.
1712
52fb73c2
AC
17132008-08-04 Robert Dewar <dewar@adacore.com>
1714
1715 * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
1716
17172008-08-04 Ed Schonberg <schonberg@adacore.com>
1718
1719 * sem_ch3.adb:
1720 (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
1721 anonymous access to protected subprogram that is the return type of the
1722 specification of a subprogram body.
1723
1724 * sem_ch6.adb:
1725 (Analyze_Subprogram_Body): if the return type is an anonymous access to
1726 subprogram, freeze it now to prevent access anomalies in the back-end.
1727
1728 * exp_ch9.adb: Minor code cleanup.
1729 Make sure that new declarations are inserted into the tree before
1730 analysis (from code reading).
1731
17322008-08-04 Robert Dewar <dewar@adacore.com>
1733
1734 * exp_ch5.adb:
1735 (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
1736 at point of return.
1737
367a9e66
AC
17382008-08-04 Thomas Quinot <quinot@adacore.com>
1739
1740 * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
1741
17422008-08-04 Vasiliy Fofanov <fofanov@adacore.com>
1743
1744 * g-soccon-mingw.ads: Fix value for MSG_WAITALL
1745
17462008-08-04 Javier Miranda <miranda@adacore.com>
1747
1748 * sem_prag.adb (Process_Convention): Add missing support for
1749 N_Private_Extension_Declaration nodes.
1750
17512008-08-04 Robert Dewar <dewar@adacore.com>
1752
1753 * exp_ch4.adb: Minor reformatting
1754
a07c3593
AC
17552008-08-04 Pascal Obry <obry@adacore.com>
1756
1757 * adaint.h: Add missing prototype.
1758
1759 * adaint.c: Refine support for Windows file attributes.
1760
17612008-08-04 Robert Dewar <dewar@adacore.com>
1762
1763 * sem_res.adb:
1764 (Valid_Conversion): Catch case of designated types having different
1765 sizes, even though they statically match.
1766
17672008-08-04 Javier Miranda <miranda@adacore.com>
1768
1769 * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
1770 added in previous patch to handle access to subprograms.
1771
17722008-08-04 Robert Dewar <dewar@adacore.com>
1773
1774 * freeze.adb:
1775 (Freeze_Entity): Only check No_Default_Initialization restriction for
1776 constructs that come from source
1777
17782008-08-04 Thomas Quinot <quinot@adacore.com>
1779
1780 * exp_ch6.adb: Minor comment fix.
1781
1782 * sem_ch4.adb: Minor reformatting.
1783
d559d5c6
AC
17842008-08-04 Robert Dewar <dewar@adacore.com>
1785
1786 * sem_res.adb: (Large_Storage_Type): Improve previous change.
1787
17882008-08-04 Pascal Obry <obry@adacore.com>
1789
1790 * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
1791 file attributes.
1792
b1c11e0e
JM
17932008-08-04 Javier Miranda <miranda@adacore.com>
1794
1795 * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
1796 for N_Formal_Object_Declaration nodes. Adding kludge required by
1797 First_Formal to provide its functionality with access to functions.
1798 (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
1799 for anonymous access types returned by functions.
1800
1801 * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
1802 conversion of null-excluding access types (required only once to force
1803 the generation of the required runtime check).
1804
1805 * sem_type.adb (Covers): minor reformating
1806
1807 * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
1808 with internally generated nodes. Avoid generating the error inside init
1809 procs.
1810
1811 * sem_res.adb (Resolve_Membership_Test): Minor reformating.
1812 (Resolve_Null): Generate the null-excluding check in case of assignment
1813 to a null-excluding object.
1814 (Valid_Conversion): Add missing support for anonymous access to
1815 subprograms.
1816
1817 * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
1818 anonymous access types whose designated type is an itype. This case
1819 occurs with anonymous access to protected subprograms types.
1820 (Analyze_Return_Type): Add missing support for anonymous access to
1821 protected subprogram.
1822
1823 * sem_eval.adb (Subtypes_Statically_Match): In case of access to
1824 subprograms addition of missing check on matching convention. Required
1825 to properly handle access to protected subprogram types.
1826
1827 * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
1828 null excluding access types.
1829
b282ab37
AC
18302008-08-04 Ed Schonberg <schonberg@adacore.com>
1831
1832 * sem_ch12.adb: Add comments
1833
1834 * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
1835 access type and the allocator is not initialized, warn rather than
1836 reporting an error.
1837
18382008-08-04 Robert Dewar <dewar@adacore.com>
1839
1840 * exp_ch4.adb: Minor reformatting
1841
1842 * exp_dist.adb: Minor reformatting
1843
1844 * g-comlin.adb: Minor reformatting
1845
18462008-08-04 Gary Dismukes <dismukes@adacore.com>
1847
1848 * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
1849 target to the type of the aggregate in the case where the target object
1850 is class-wide.
1851
1852 * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
1853 result type is class-wide and inherently limited, and the expression
1854 has a specific type, create a return object of the specific type, for
1855 more efficient handling of returns of build-in-place aggregates (avoids
1856 conversions of the class-wide return object to the specific type on
1857 component assignments).
1858
1859 * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
1860 about a type mismatch for a class-wide function with a return object
1861 having a specific type when the object declaration doesn't come from
1862 source. Such an object can result from the expansion of a simple return.
1863
18642008-08-04 Vasiliy Fofanov <fofanov@adacore.com>
1865
1866 * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
1867
1868 * gcc-interface/Makefile.in: Use 64bit-specific system files when
1869 compiling for 64bit windows.
1870
54838d1f
AC
18712008-08-04 Jerome Lambourg <lambourg@adacore.com>
1872
1873 * g-comlin.adb (Group_Switches): Preserve the switch order when
1874 grouping and allow switch grouping of switches with more than one
1875 character extension (e.g. gnatw.x).
1876 (Args_From_Expanded): Remove this now obsolete method.
1877
18782008-08-04 Ed Schonberg <schonberg@adacore.com>
1879
1880 * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
1881 chain at once, to ensure that type is properly decorated for back-end,
1882 when allocator appears within a loop.
1883
18842008-08-04 Kevin Pouget <pouget@adacore.com>
1885
1886 * snames.h, snames.adb, snames.ads:
1887 Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
1888
1889 * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
1890 Build_To_Any_Call and Build_TypeCode_Call procedures.
1891
1892 * exp_attr.adb, sem_attr.adb: Add corresponding cases.
1893
1894 * rtsfind.ads: Add corresponding names.
1895
1896 * tbuild.adb: Update prefix restrictions to allow '_' character.
1897
819fad69
AC
18982008-08-04 Doug Rupp <rupp@adacore.com>
1899
1900 * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
1901 * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
1902 * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
1903 use it. Calculate pointer range overflow using 64bit types.
1904
19052008-08-04 Ed Schonberg <schonberg@adacore.com>
1906
1907 * sem_ch3.adb (Access_Definition): A formal object declaration is a
1908 legal context for an anonymous access to subprogram.
1909
1910 * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
1911 indirect call, report success to the caller to include possible
1912 interpretation.
1913
1914 * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
1915 check when the type
1916 of the extended return is an anonymous access_to_subprogram type.
1917
1918 * sem_res.adb:
1919 (Resolve_Call): Insert a dereference if the type of the subprogram is an
1920 access_to_subprogram and the context requires its return type, and a
1921 dereference has not been introduced previously.
1922
19232008-08-04 Arnaud Charlet <charlet@adacore.com>
1924
1925 * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
1926 gnatcheck support in GPS.
1927
19282008-08-04 Vincent Celier <celier@adacore.com>
1929
1930 * mlib.adb (Create_Sym_Links): Create relative symbolic links when
1931 requested
1932
a037f912
VC
19332008-08-04 Vincent Celier <celier@adacore.com>
1934
1935 * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
1936 variable, but don't check the resulting value as it has no impact on
1937 the processing.
9e81dbc7 1938
a037f912
VC
1939 * opt.ads:
1940 (Generate_Processed_File): New Boolean flag, set to True in the compiler
1941 when switch -gnateG is used.
9e81dbc7 1942
a037f912
VC
1943 * prep.adb:
1944 (Preprocess): new Boolean out parameter Source_Modified. Set it to True
1945 when the source is modified by the preprocessor and there is no
1946 preprocessing errors.
9e81dbc7 1947
a037f912 1948 * prep.ads (Preprocess): new Boolean out parameter Source_Modified
9e81dbc7 1949
a037f912
VC
1950 * sinput-l.adb:
1951 (Load_File): Output the result of preprocessing if the source text was
1952 modified.
9e81dbc7 1953
a037f912 1954 * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
9e81dbc7 1955
a037f912 1956 * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
9e81dbc7 1957
a037f912 1958 * ug_words: Add VMS equivalent for -gnateG
9e81dbc7 1959
a037f912
VC
1960 * vms_data.ads:
1961 Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
1962
bdc33a55
AC
19632008-08-04 Doug Rupp <rupp@adacore.com>
1964
1965 * gcc-interface/utils2.c:
1966 (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
1967 in 32bit descriptor.
1968
19692008-08-04 Robert Dewar <dewar@adacore.com>
1970
1971 * par-ch10.adb: Minor reformatting
1972
1973 * i-cobol.adb: Minor reformatting.
1974
19752008-08-04 Ed Schonberg <schonberg@adacore.com>
1976
1977 * sem_ch3.adb (Access_Definition): Create an itype reference for an
1978 anonymous access return type of a regular function that is not a
1979 compilation unit.
1980
19812008-08-04 Vincent Celier <celier@adacore.com>
1982
1983 * prj-attr.adb: New Builder attribute Global_Compilation_Switches
9e81dbc7 1984
bdc33a55 1985 * snames.adb: New standard name Global_Compilation_Switches
9e81dbc7 1986
bdc33a55
AC
1987 * snames.ads: New standard name Global_Compilation_Switches
1988
1989 * make.adb: Correct spelling error in comment
1990
19912008-08-04 Arnaud Charlet <charlet@adacore.com>
1992
1993 * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
1994 target.
1995
19962008-08-04 Thomas Quinot <quinot@adacore.com>
1997
1998 * sem_ch10.adb: Minor comment fix.
1999
fc1b906a
AC
20002008-08-04 Robert Dewar <dewar@adacore.com>
2001
2002 * restrict.adb: Improved messages for restriction warnings
2003
2004 * restrict.ads: Improved messages for restriction messages
2005
2006 * s-rident.ads (Profile_Name): Add No_Profile
2007
20082008-08-04 Robert Dewar <dewar@adacore.com>
2009
2010 * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
2011
20122008-08-04 Robert Dewar <dewar@adacore.com>
2013
2014 * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
2015
20162008-08-04 Vincent Celier <celier@adacore.com>
2017
2018 * prj-proc.adb:
2019 (Copy_Package_Declarations): When inheriting package Naming from a
2020 project being extended, do not inherit source exception names.
2021
20222008-08-04 Ed Schonberg <schonberg@adacore.com>
2023
2024 * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
2025 list of declaration to find previous subprogram, do not go to the
2026 original node of a generic unit.
2027
d2143736
EB
20282008-08-02 Eric Botcazou <ebotcazou@adacore.com>
2029
2030 * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
2031 New case. Convert BOOLEAN_TYPE operation to the default integer type.
2032
a981c964
EB
20332008-08-01 Eric Botcazou <ebotcazou@adacore.com>
2034
2035 * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
2036 * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
2037 and adjust for above renaming.
2038 * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
2039 gnu_expr_alt_type parameter. Convert the expression to it instead
2040 of changing its type in place.
2041 (build_function_stub): Adjust call to above function.
2042
8df2e902
EB
20432008-08-01 Eric Botcazou <ebotcazou@adacore.com>
2044
2045 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
2046 code. Do not get full definition of deferred constants with address
2047 clause for a use. Do not ignore deferred constant definitions with
2048 address clause. Ignore constant definitions already marked with the
2049 error node.
2050 <object>: Remove obsolete comment. For a deferred constant with
2051 address clause, get the initializer from the full view.
2052 * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
2053 Rework and remove obsolete comment.
2054 <N_Object_Declaration>: For a deferred constant with address clause,
2055 mark the full view with the error node.
2056 * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
2057 formatting nits.
2058
585df50b
AC
20592008-08-01 Hristian Kirtchev <kirtchev@adacore.com>
2060
2061 * rtsfind.ads: Add block IO versions of stream routines for Strings.
9e81dbc7 2062
585df50b
AC
2063 * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
2064 sem_prag.adb, snames.adb, snames.ads, snames.h,
2065 par-prag.adb: Undo previous stream related changes.
9e81dbc7 2066
585df50b 2067 * s-rident.ads: Add new restriction No_Stream_Optimizations.
9e81dbc7 2068
585df50b
AC
2069 * s-ststop.ads, s-ststop.adb: Comment reformatting.
2070 Define enumeration type to designate different IO mechanisms.
2071 Enchance generic package Stream_Ops_Internal to include an
2072 implementation of Input and Output.
2073
2074 * exp_attr.adb (Find_Stream_Subprogram): If restriction
2075 No_Stream_Optimization is active, choose the default byte IO
2076 implementations of stream attributes for Strings.
2077 Otherwise use the corresponding block IO version.
2078
2eee5152 20792008-08-01 Olivier Hainque <hainque@adacore.com>
9e81dbc7 2080
585df50b
AC
2081 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
2082 turn Ada Pure into GCC const, now implicitely implying nothrow as well.
2083
20842008-08-01 Robert Dewar <dewar@adacore.com>
2085
2086 * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
2087 convert plain identifier into defining identifier.
2eee5152 2088
2b747305
AC
20892008-08-01 Robert Dewar <dewar@adacore.com>
2090
2091 * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
2092 warnings
2093
2094 * lib-xref.adb: Add error defense.
2095
20962008-08-01 Bob Duff <duff@adacore.com>
2097
2098 * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
2099
0c246603
AC
21002008-08-01 Gary Dismukes <dismukes@adacore.com>
2101
2102 * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
2103 correct accessibility levels. In the "when others" case, retrieve the
2104 access level of the Etype of Prev rather than Prev_Orig, because the
2105 original exression has not always been analyzed.
2106
21072008-08-01 Robert Dewar <dewar@adacore.com>
2108
2109 * prj-nmsc.adb: Minor reformatting
2110
2111 * sem_ch4.adb: Minor reformatting
2112 Minor code reorganization
2113
2114 * prj.ads: Minor reformatting
2115
2116 * s-os_lib.adb: Minor reformatting
2117
2118 * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
2119 half encodings
2120
2121 * scans.ads: Minor reformatting.
2122
2123 * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
2124 (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
2125
2126 * sem_res.adb:
2127 (Resolve_Call): Check violation of No_Specific_Termination_Handlers
2128
2129 * sem_ch12.adb: Minor comment reformatting
2130
2131 * par-ch3.adb (P_Type_Declaration): Properly handle missing type
2132 keyword
2133
1cb17b78
AC
21342008-08-01 Robert Dewar <dewar@adacore.com>
2135
2136 * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
2137 generating code
2138
21392008-08-01 Ed Schonberg <schonberg@adacore.com>
2140
2141 * checks.adb (Apply_Float_Conversion_Check): If the expression to be
2142 converted is a real literal and the target type has static bounds,
2143 perform the conversion exactly to prevent floating-point anomalies on
2144 some targets.
2145
21462008-08-01 Vincent Celier <celier@adacore.com>
2147
2148 * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
9e81dbc7 2149
1cb17b78 2150 * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
9e81dbc7 2151
1cb17b78
AC
2152 * prj.adb (Object_Exist_For): Use Object_Generated, not
2153 Objects_Generated that is removed and was never modified anyway.
2154
2155 * prj.ads:
2156 (Path_Syntax_Kind): New enumeration type
2157 (Language_Config): New component Path_Syntax, defaulted to Host.
2158 Components PIC_Option and Objects_Generated removed, as they are not
2159 used.
2160
2161 * snames.adb: New standard name Path_Syntax
9e81dbc7 2162
1cb17b78
AC
2163 * snames.ads: New standard name Path_Syntax
2164
21652008-08-01 Vincent Celier <celier@adacore.com>
2166
2167 * mlib-utl.adb:
2168 (Adalib_Path): New variable to store the path of the adalib directory
2169 when procedure Specify_Adalib_Dir is called.
2170 (Lib_Directory): If Adalib_Path is not null, return its value
2171 (Specify_Adalib_Dir): New procedure
9e81dbc7 2172
1cb17b78
AC
2173 * mlib-utl.ads (Specify_Adalib_Dir): New procedure
2174
21752008-08-01 Ed Schonberg <schonberg@adacore.com>
2176
2177 * sem_prag.adb:
2178 (Check_Precondition_Postcondition): If not generating code, analyze the
2179 expression in a postcondition that appears in a subprogram body, so that
2180 it is properly decorated for ASIS use.
2181
21822008-08-01 Gary Dismukes <dismukes@adacore.com>
2183
2184 * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
2185 Orig_Prev to Prev in the case where the actual is N_Function_Call or
2186 N_Identifier. This was interfering with other cases that are rewritten
2187 as N_Identifier, such as allocators, resulting in passing of the wrong
2188 accessibility level, and based on testing this code is apparently no
2189 longer needed at all.
2190
21912008-08-01 Ed Schonberg <schonberg@adacore.com>
2192
2193 * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
2194 procedure call whose prefix
2195 is a parameterless function call that returns an access_to_procedure.
2196
d1b4f87d
AC
21972008-08-01 Jose Ruiz <ruiz@adacore.com>
2198
2199 * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
2200 for RTX. Adding a suffix that is incremented at each iteration.
2201
22022008-08-01 Robert Dewar <dewar@adacore.com>
2203
2204 * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
2205 Raise_Exception
2206
22072008-08-01 Jerome Lambourg <lambourg@adacore.com>
2208
2209 * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
2210 paths, which are authorized by Windows but can lead to errors when used
2211 elsewhere.
2212
cfb02ad1
AC
22132008-08-01 Ed Schonberg <schonberg@adacore.com>
2214
2215 * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
2216 a pending instantiation for the body of a subprogram that is to be
2217 inlined.
2218
2219 * sem_ch12.adb:
2220 (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
2221
2222 * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
2223 create a pending instance for its body, so that calls to the subprogram
2224 can be inlined by the back-end.
2225
22262008-08-01 Jose Ruiz <ruiz@adacore.com>
2227
2228 * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
2229 rts-rtx-w32).
2230
e1bb4e71
AC
22312008-08-01 Robert Dewar <dewar@adacore.com>
2232
2233 * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
2234
22352008-08-01 Doug Rupp <rupp@adacore.com>
2236
2237 * gnat_rm.texi: Document new mechanism Short_Descriptor.
9e81dbc7 2238
e1bb4e71
AC
2239 * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
2240 mechanism values.
2241
2242 * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2243 mechanism and Short_Descriptor mechanism values.
2244
2245 * snames.adb (preset_names): Add short_descriptor entry.
2246
2247 * snames.ads: Add Name_Short_Descriptor.
2248
2249 * types.h: Add new By_Short_Descriptor mechanism values.
2250
2251 * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2252 mechanism and Short_Descriptor mechanism values.
2253
2254 * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
2255 values.
2256 (Descriptor_Codes): Modify range for new mechanism values.
2257
2258 * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
2259 mechanism values.
2260
2261 * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
2262 (gnat_to_gnu_param): Handle By_Short_Descriptor.
2263
2264 * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
2265 (build_vms_descriptor32): New prototype.
2266 (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
2267
2268 * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
2269 argument in call fill_vms_descriptor.
2270
2271 * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
2272 build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
9e81dbc7 2273 (build_vms_descriptor): Renamed from build_vms_descriptor64.
e1bb4e71
AC
2274 (convert_vms_descriptor32): New function.
2275 (convert_vms_descriptor64): New function.
2276 (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
2277 descriptors.
2278
2279 * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
2280 no longer needed.
2281
22822008-08-01 Jose Ruiz <ruiz@adacore.com>
2283
2284 * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
2285 nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
2286 name.
2287
bca3ab79
AC
22882008-08-01 Jose Ruiz <ruiz@adacore.com>
2289
2290 * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
2291 current directory so only fully qualified names are allowed.
2292
22932008-08-01 Robert Dewar <dewar@adacore.com>
2294
2295 * gnat_ugn.texi:
2296 Minor editing, remove uncomfortable use of semicolon
2297
2298 * s-ststop.adb: Add some ??? comments
2299
2300 * sem_ch10.adb: Minor reformatting
2301
2302 * snames.ads:
2303 Minor comment fixes, some pragmas were not properly
2304 categorized in the comments, documentation change only
2305
2306 * xref_lib.adb: Minor reformatting
2307
2308 * sinput.adb: Minor reformatting
2309
2310 * gnatchop.adb: Minor reformatting
2311
2312 * sem_util.ads: Minor reformatting.
2313
2314 * opt.ads: Minor documentation fix
2315
2316 * scng.adb: Minor reformatting
2317
2318 * prj-part.adb: Update comments
2319
23202008-08-01 Ed Schonberg <schonberg@adacore.com>
2321
2322 * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
2323 tagged synchronized type, use corresponding record type.
2324
23252008-08-01 Doug Rupp <rupp@adacore.com>
2326
2327 * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
2328 dummy transfer address for debugging.
9e81dbc7 2329
bca3ab79
AC
2330 * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
2331
2332 * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
2333
4c5a0615
EB
23342008-07-31 Eric Botcazou <ebotcazou@adacore.com>
2335
2336 * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
2337 * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
2338
964771d9
AC
23392008-07-31 Pascal Obry <obry@adacore.com>
2340
2341 * prj-nmsc.adb: Keep Object and Exec directory casing.
2342
23432008-07-31 Jose Ruiz <ruiz@adacore.com>
2344
2345 * system-rtx-rtss.ads
2346 Change the default stack size. It is important to set the commit part.
9e81dbc7 2347
964771d9
AC
2348 * s-taprop-rtx.adb
2349 (Initialize): Get the clock resolution.
2350 (RT_Resolution): Return the clock resolution that is indicated by the
2351 system.
2352
2353 * s-parame-vxworks.adb
2354 Document that this body is used for RTX in RTSS (kernel) mode.
2355
2356 * gcc-interface/Makefile.in
2357 (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
2358 s-parame-vxworks.adb body in order to have reasonable stack sizes in
2359 RTX RTSS kernel mode. Virtual memory is not used in that case, so we
2360 cannot ask for too big values.
2361
23622008-07-31 Robert Dewar <dewar@adacore.com>
2363
2364 * exp_aggr.adb: Minor reformatting
2365
2366 * makeutl.adb: Minor reformatting
2367
2368 * prj-env.adb: Minor reformatting
2369
1e0f7ffb
AC
23702008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2371
2372 * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
2373 tagged type is completed by a concurrent type.
2374
23752008-07-31 Gary Dismukes <dismukes@adacore.com>
2376
2377 * sem_aggr.adb:
2378 (Resolve_Record_Aggregate): Bypass error that a type without
2379 components must have a "null record" aggregate when compiling for Ada
2380 2005, since it's legal to give an aggregate of form (others => <>)
2381 for such a type.
2382
fa4bc5ab
AC
23832008-07-31 Javier Miranda <miranda@adacore.com>
2384
2385 * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
2386 handle synchronized types. Required to handle well the object.operation
2387 notation applied to synchronized types.
2388
23892008-07-31 Quentin Ochem <ochem@adacore.com>
2390
2391 * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
2392 anymore - just used internally.
2393 Added handling of very small tasks - when the theoretical size is
2394 already full at the point of the call.
2395 (Report_Result): Fixed result computation, Stack_Used_When_Filling does
2396 not need to be added to the result.
2397
23982008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2399
2400 * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
2401 corresponding spec is a primitive wrapper. Update comment.
2402
24032008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2404
2405 * bindgen.adb Comment reformatting. Update the list of run-time globals.
2406 (Gen_Adainit_Ada): Add the declaration, import and value set for
2407 configuration flag Canonical_Streams.
2408 (Gen_Adainit_C): Add the declaration and initial value of external
2409 symbol __gl_canonical_streams.
9e81dbc7 2410
fa4bc5ab 2411 * init.c: Update the list of global values computed by the binder.
9e81dbc7 2412
fa4bc5ab 2413 * opt.ads: Add flag Canonical_Streams.
9e81dbc7 2414
fa4bc5ab
AC
2415 * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
2416 semantically handled pragmas.
9e81dbc7 2417
fa4bc5ab
AC
2418 * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
2419 (Analyze_Pragma): Add case for pragma Canonical_Streams.
9e81dbc7 2420
fa4bc5ab 2421 * snames.adb: Add character value for name Canonical_Streams.
9e81dbc7 2422
fa4bc5ab
AC
2423 * snames.ads:
2424 Add Name_Canonical_Streams to the list of configuration pragmas.
2425 Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
9e81dbc7 2426
fa4bc5ab 2427 * snames.h: Add a definition for Pragma_Canonical_Streams.
9e81dbc7 2428
fa4bc5ab
AC
2429 * s-ststop.adb:
2430 Add a flag and import to seize the value of external symbol
2431 __gl_canonical_streams. Update comment and initial value of constant
2432 Use_Block_IO.
9e81dbc7 2433
fa4bc5ab 2434 * gnat_rm.texi: Add section of pragma Canonical_Streams.
9e81dbc7 2435
fa4bc5ab
AC
2436 * gnat_ugn.texi:
2437 Add pragma Canonical_Streams to the list of configuration pragmas.
2438
24392008-07-31 Ed Schonberg <schonberg@adacore.com>
2440
2441 * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
2442 has the form A.B.C and B is a unit renaming, analyze its compilation
2443 unit and add a with_clause on A.b to the context.
2444
f32b9cd1
AC
24452008-07-31 Vincent Celier <celier@adacore.com>
2446
2447 * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
2448 return the empty string, instead of raising Constraint_Error.
2449
24502008-07-31 Gary Dismukes <dismukes@adacore.com>
2451
2452 * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
9e81dbc7 2453
f32b9cd1
AC
2454 * checks.adb (Apply_Accessibility_Check): Insert the check on
2455 Insert_Node.
9e81dbc7 2456
f32b9cd1
AC
2457 * exp_attr.adb:
2458 (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
2459 to new parameter Insert_Node on call to Apply_Accessibility_Check.
2460 Necessary to distinguish the insertion node because the dereferenced
2461 formal may come from a rename, but the check must be inserted in
2462 front of the attribute.
9e81dbc7 2463
f32b9cd1
AC
2464 * exp_ch4.adb:
2465 (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
2466 call to Apply_Accessibility_Check.
2467 (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
2468 on call to Apply_Accessibility_Check.
2469 Minor reformatting
2470
24712008-07-31 Javier Miranda <miranda@adacore.com>
2472
2473 * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
2474 types when the candidate type is a synchronized type.
9e81dbc7 2475
f32b9cd1
AC
2476 * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
2477 types, and complete management of synchronized types adding missing
2478 code to handle formal that is a synchronized type.
9e81dbc7 2479
f32b9cd1
AC
2480 * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
2481 are not available and cause the compiler to blowup. Found compiling
2482 test with switch -gnatc
9e81dbc7 2483
f32b9cd1
AC
2484 * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
2485 Has_Correct_Formal_Mode plus code cleanup.
2486
e92c92b2
AC
24872008-07-31 Bob Duff <duff@adacore.com>
2488
2489 * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
2490 recognized as two end-of-lines, but it should be just one.
2491
24922008-07-31 Thomas Quinot <quinot@adacore.com>
2493
2494 * exp_ch9.adb: Minor reformatting
2495
2496 * tbuild.ads: Fix several occurrences of incorrectly referring to
2497 Name_Find as Find_Name.
2498
24992008-07-31 Ed Schonberg <schonberg@adacore.com>
2500
2501 * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
2502 and the context is an object declaration with non-static bounds, treat
2503 the aggregate as non-static.
2504
25052008-07-31 Vincent Celier <celier@adacore.com>
2506
2507 * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
2508 Move back spec of Parse_Single_Project to body, as it is not called
2509 outside of package Prj.Part.
2510 (Project_Data): Remove components Linker_Name, Linker_Path and
2511 Minimum_Linker_Options as they are no longer set.
2512 Remove function There_Are_Ada_Sources from package Prj and move code
2513 in the only place it was used, in Prj.Env.Set_Ada_Paths.
2514
ee5d7272
AC
25152008-07-31 Arnaud Charlet <charlet@adacore.com>
2516
2517 * mlib-utl.ads: Fix typo.
2518
25192008-07-31 Robert Dewar <dewar@adacore.com>
2520
2521 * sem_ch12.adb: Minor reformatting
2522
25232008-07-31 Sergey Rybin <rybin@adacore.com>
2524
2525 * gnat_ugn.texi: Change the description of the
2526 Overly_Nested_Control_Structures: now the rule always requires a
2527 positive parameter for '+R' option
2528
25292008-07-31 Thomas Quinot <quinot@adacore.com>
2530
2531 * g-pehage.adb: Minor reformatting
2532
25332008-07-31 Pascal Obry <obry@adacore.com>
2534
2535 * s-finimp.ads: Minor reformatting.
2536
25372008-07-31 Vincent Celier <celier@adacore.com>
2538
2539 * s-regexp.ads: Minor comment fix
2540
25412008-07-31 Arnaud Charlet <charlet@adacore.com>
2542
2543 * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
2544 so that we can compile this file successfully with -gnatc.
2545
25462008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2547
2548 * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
2549 of the type when looking for stream subprograms for type String,
2550 Wide_String and Wide_Wide_String.
9e81dbc7 2551
ee5d7272
AC
2552 * s-ststop.adb: Change the initialization expression of constant
2553 Use_Block_IO.
2554
25552008-07-31 Geert Bosch <bosch@adacore.com>
2556
2557 * arit64.c:
2558 New file implementing __gnat_mulv64 signed integer multiplication with
2559 overflow checking
2560
2561 * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
2562
2563 * gcc-interface/gigi.h:
2564 (standard_types): Add ADT_mulv64_decl
2565 (mulv64_decl): Define subprogram declaration for __gnat_mulv64
2566
2567 * gcc-interface/utils.c:
2568 (init_gigi_decls): Add initialization of mulv64_decl
2569
2570 * gcc-interface/trans.c:
2571 (build_unary_op_trapv): New function
2572 (build_binary_op_trapv): New function
2573 (gnat_to_gnu): Use the above functions instead of
2574 build_{unary,binary}_op
2575
2576 * gcc-interface/Makefile.in
2577 (LIBGNAT_SRCS): Add arit64.c
2578 (LIBGNAT_OBJS): Add arit64.o
2579
25802008-07-31 Vincent Celier <celier@adacore.com>
2581
2582 * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
2583 Linker'Default_Switches are declared. Warn if they are declared.
2584
25852008-07-31 Ed Schonberg <schonberg@adacore.com>
2586
2587 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
2588 Insert_Actions to place the pointer declaration in the code, rather
2589 than Insert_Before_And_Analyze, so that insertions of temporaries are
2590 kept in the proper order when transient scopes are present.
2591
2592
b38c3c9e
AC
25932008-07-31 Robert Dewar <dewar@adacore.com>
2594
2595 * einfo.adb (Spec_PPC): Now defined for generic subprograms
9e81dbc7 2596
b38c3c9e 2597 * einfo.ads (Spec_PPC): Now defined for generic subprograms
9e81dbc7 2598
b38c3c9e
AC
2599 * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
2600 subprogram case
2601
26022008-07-31 Vincent Celier <celier@adacore.com>
2603
2604 * s-os_lib.adb: Minor comment fix
2605
26062008-07-31 Ed Schonberg <schonberg@adacore.com>
2607
2608 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
2609 transfer pre/postconditions from generic copy to original tree, so that
2610 they will appear in each instance.
2611 (Process_PPCs): Do not transform postconditions into a procedure in a
2612 generic context, to prevent double expansion of check pragmas.
9e81dbc7 2613
b38c3c9e
AC
2614 * sem_attr.adb: In an instance, the prefix of the 'result attribute
2615 can be the renaming of the
2616 current instance, so check validity of the name accordingly.
2617
024238a2
AC
26182008-07-31 Robert Dewar <dewar@adacore.com>
2619
2620 * mlib-utl.ads: Minor reformatting
2621
26222008-07-31 Ed Schonberg <schonberg@adacore.com>
2623
2624 sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
2625 from context. This attribute must be usable in Ada95 mode.
2626 The attribute can appear in the body of a function marked
2627 Inline_Always, but in this case the postocondition is not enforced.
9e81dbc7 2628
024238a2
AC
2629 sem_prag.adb (Check_Precondition_Postcondition): within the expansion
2630 of an inlined call pre- and postconditions are legal
2631
26322008-07-31 Vincent Celier <celier@adacore.com>
2633
2634 * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
2635 were for gprmake only
2636
26372008-07-31 Robert Dewar <dewar@adacore.com>
2638
2639 * gnat_ugn.texi: Update -gnatN documentation.
2640
2641 * gnat_rm.texi: Add note about pre/postcondition
2642 pragmas not checked in conjunction with front-end inlining.
2643
035b2a77
AC
26442008-07-31 Robert Dewar <dewar@adacore.com>
2645
2646 * g-pehage.adb, g-pehage.ads: Minor reformatting
2647
26482008-07-31 Arnaud Charlet <charlet@adacore.com>
2649
2650 * mlib-utl.ads, prj-makr.ads: Add comments.
2651
636b71b9
AL
26522008-07-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2653
9e81dbc7 2654 * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS)
636b71b9
AL
2655 [WINDOWS]: Add s-winext.o.
2656
01ddebf2
EB
26572008-07-30 Eric Botcazou <ebotcazou@adacore.com>
2658
2659 PR ada/36554
2660 * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
2661 * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
2662 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
2663 Set precision to 1 for subtype of BOOLEAN_TYPE.
2664 (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
2665 (make_type_from_size): Deal with BOOLEAN_TYPE.
2666 * gcc-interface/misc.c (gnat_print_type): Likewise.
2667 * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
2668 Set boolean_type_node as its translation in the table, as well
2669 as boolean_false_node for False and boolean_true_node for True.
2670 * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
2671 8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
2672 (create_param_decl): Deal with BOOLEAN_TYPE.
2673 (build_vms_descriptor): Likewise.
2674 (build_vms_descriptor64): Likewise.
2675 (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
2676
2a9cc4de
AC
26772008-07-30 Robert Dewar <dewar@adacore.com>
2678
2679 * exp_ch9.adb: Minor reformatting
2680
2681 * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
2682 if no primitive operation is found.
2683
2684 * exp_util.adb: (Find_Prim_Op): Add comments for previous change
2685
2686 * sem_ch8.adb: Minor reformatting
2687
26882008-07-30 Laurent Pautet <pautet@adacore.com>
2689
2690 * g-pehage.adb:
2691 Remove a limitation on the length of the words handled by the minimal
2692 perfect hash function generator.
2693
2694 * g-pehage.ads:
2695 Detail the use of subprograms Insert, Initialize, Compute and Finalize.
2696 Fix some typos.
2697
5cc6fa41
AC
26982008-07-30 Robert Dewar <dewar@adacore.com>
2699
2700 * gnatlink.adb: Minor reformatting
2701
27022008-07-30 Thomas Quinot <quinot@adacore.com>
2703
2704 * rtsfind.adb (Check_RPC): Check version consistency even when not
2705 generating RCI stubs. Provide more detailed error message in case of
2706 mismatch.
2707
27082008-07-30 Ed Schonberg <schonberg@adacore.com>
2709
2710 * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
2711 as a actual in an instance, check for a missing attribute to prevent
2712 program_error on an illegal program.
9e81dbc7 2713
5cc6fa41
AC
2714 * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
2715 error if primitive is not found, so that exception can be handled
2716 elsewhere on illegal programs.
2717
27182008-07-30 Robert Dewar <dewar@adacore.com>
2719
2720 * uintp.adb (UI_GCD): Fix potential overflow
2721
27222008-07-30 Hristian Kirtchev <kirtchev@adacore.com>
2723
2724 * einfo.adb: Flag245 is now used.
2725 (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
2726 check to include functions.
2727 (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2728 (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
2729 include functions.
2730 (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
2731 to the list of displayed flags.
2732
2733 * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
2734 Wrapped_Entity. These two flags are now present in functions.
2735 New flag Is_Private_Primitive.
2736 (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2737
2738 * exp_ch9.adb:
2739 (Build_Wrapper_Bodies): New subprogram.
2740 (Build_Wrapper_Body): The spec and body have been moved to in
2741 Build_Wrapper_ Bodies. Code cleanup.
2742 (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
2743 Wrappers are now generated for primitives declared between the private
2744 and full view of a concurrent type that implements an interface.
2745 (Build_Wrapper_Specs): New subprogram.
2746 (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
2747 creation mechanism with a call to Build_Wrapper_Bodies.
2748 (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
2749 wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
2750 (Expand_N_Task_Body): Replace the wrapper body creation
2751 mechanism with a call to Build_Wrapper_Bodies.
2752 (Expand_N_Task_Type_Declaration): Replace the wrapper spec
2753 creation mechanism with a call to Build_Wrapper_Specs.
2754 (Is_Private_Primitive_Subprogram): New subprogram.
2755 (Overriding_Possible): Code cleanup.
2756 (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
2757
2758 * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
2759
2760 * sem_ch3.adb: Add with and use clause for Exp_Ch9.
2761 (Process_Full_View): Build wrapper specs for all primitives
2762 that belong to a private view completed by a concurrent type
2763 implementing an interface.
9e81dbc7 2764
5cc6fa41
AC
2765 * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
2766 is a primitive of a
2767 concurrent type with a private view that implements an interface, try to
2768 find the proper spec.
2769 (Analyze_Subprogram_Declaration): Mark a subprogram as a private
2770 primitive if the type of its first parameter is a non-generic tagged
2771 private type.
2772 (Analyze_Subprogram_Specification): Code reformatting.
2773 (Disambiguate_Spec): New routine.
2774 (Find_Corresponding_Spec): Add a flag to controll the output of errors.
2775 (Is_Private_Concurrent_Primitive): New routine.
2776
2777 * sem_ch6.ads:
2778 (Find_Corresponding_Spec): Add a formal to control the output of errors.
2779
6ca2b0a0
DR
27802008-07-30 Doug Rupp <rupp@adacore.com>
2781
2782 * gigi.h (build_vms_descriptor64): New function prototype.
2783 (fill_vms_descriptor): Modified function prototype.
2784
2785 * utils.c (build_vms_descriptor64): New function.
2786
2787 * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
2788
2789 * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
2790 argument.
2791
2792 * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
2793 64bit and 32bit descriptor and save the 64bit version as an alternate
2794 TREE_TYPE in the parameter.
2795 (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
2796 thin pointer.
2797
2798 * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
2799
002b2ad6
AC
28002008-07-30 Robert Dewar <dewar@adacore.com>
2801
2802 * make.adb: Minor reformatting
2803
2804 * mlib-utl.adb: Minor reformatting
2805
2806 * osint.ads: Minor reformatting
2807
28082008-07-30 Jose Ruiz <ruiz@adacore.com>
2809
2810 * adaint.c
2811 (__gnat_file_exists): Do not use __gnat_stat for RTX.
2812 (__main for RTX in RTSS mode): Create this dummy procedure symbol to
2813 avoid the use of this symbol from libgcc.a in RTX kernel mode.
2814
2815 * cio.c
2816 (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
2817 the function RtPrintf for console output.
9e81dbc7 2818
002b2ad6 2819 * argv.c Do not use the environ variable for RTX.
9e81dbc7 2820
002b2ad6
AC
2821 * gnatlink.adb (gnatlink): The part that handles the --RTS option has
2822 been moved before the call to Osint.Add_Default_Search_Dirs in order
2823 to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
2824 from the appropriate run time.
9e81dbc7 2825
002b2ad6
AC
2826 * targparm.ads
2827 (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
2828 target is a RTSS module for RTX.
9e81dbc7 2829
002b2ad6
AC
2830 * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
2831 RTX_RTSS_Kernel_Module
2832 (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
2833
2834 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
2835 exception handling mechanism for Windows and RTX in Win32 mode, but
2836 not for RTX in kernel mode (RTSS).
2837 (LIBGNAT_SRCS): Remove ada.h
2838
00afcaa0
PB
28392008-07-30 Paolo Bonzini <bonzini@gnu.org>
2840
2841 * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
2842 T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2843 (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
2844 * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
2845 X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
2846 ALL_ADA_CFLAGS): Remove.
2847 (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
2848 replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2849 (GCC_CFLAGS): Remove X_CFLAGS.
2850 (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
2851 (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
2852 (ADA_CFLAGS): Substitute.
2853
a7dafa20
LG
28542008-07-30 Laurent Guerby <laurent@guerby.net>
2855
9e81dbc7
AS
2856 PR ada/5911
2857 * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
2858 Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
2859 Replace stamp-gnatlib* by stamp-gnatlib*-rts.
2860 * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
2861 by stamp-gnatlib2-rts.
2862
70b1e376
RW
28632008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2864
2865 PR documentation/15479
2866 * gnat-style.texi: Remove AdaCore copyright statement and GPL
2867 statement for GNAT. Add @copying stanza, use it. Update to
2868 GFDL 1.2. Do not list GFDL as Invariant Section, do not list
2869 title as Front-Cover Text.
2870 * gnat_rm.texi: Likewise.
2871 * gnat_ugn.texi: Likewise.
2872
343eba42
JH
28732008-07-29 Jan Hubicka <jh@suse.cz>
2874
2875 * trans.c (process_inlined_subprograms): Remove tree_really_inline
2876 check.
2877
ebf5ba04
AC
28782008-07-29 Arnaud Charlet <charlet@adacore.com>
2879
2880 * gcc-interface: New directory.
2881
2882 * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
2883 utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
2884 config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
2885 to gcc-interface subdirectory.
2886
46897370
AL
28872008-07-29 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2888
2889 * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
2890
e90acd93
JH
28912008-07-28 Jan Hubicka <jh@suse.cz>
2892
2893 * misc.c (gnat_post_options): Do not set flag_no_inline.
2894
726a989a
RB
28952008-07-28 Richard Guenther <rguenther@suse.de>
2896
2897 Merge from gimple-tuples-branch.
2898
2899 2008-07-22 Olivier Hainque <hainque@adacore.com>
2900
2901 * gigi.h (end_subprog_body): New ELAB_P argument, saying if
2902 this is called for an elab proc to be discarded if empty.
2903 * utils.c (end_subprog_body): Honor ELAB_P.
2904 (build_function_stub): Adjust call to end_subprog_body.
2905 * trans.c (Subprogram_Body_to_gnu): Likewise.
2906 (gigi): Reorganize processing of elab procs to prevent
2907 gimplifying twice, using the new end_subprog_body argument.
2908
2909 2008-07-19 Richard Guenther <rguenther@suse.de>
2910
2911 * Make-lang.in (trans.o): Add tree-iterator.h dependency.
2912 (utils.o): Likewise.
2913 * trans.c: Include tree-iterator.h.
2914 (gnat_gimplify_expr): Adjust prototype. Fix typo.
2915 (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
2916 (set_expr_location_from_node): Likewise.
2917 (gigi): Tuplify.
2918 * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
2919 of GENERIC_NEXT.
2920 * utils.c: Include tree-iterator.h.
2921 * gigi.h (gnat_gimplify_expr): Adjust prototype.
2922
2923 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
2924
2925 * trans.c: Include gimple.h instead of tree-gimple.h.
2926 * utils.c: Same.
2927
2928 2008-07-14 Aldy Hernandez <aldyh@redhat.com>
2929
2930 * trans.c (gnat_gimplify_expr): Use gimplify_assign.
2931
8ae3959e 29322008-07-25 Jan Hubicka <jh@suse.cz>
7e8b322a 2933
8ae3959e
EB
2934 * utils.c (end_subprog_body): Remove inline trees check.
2935 * misc.c (gnat_post_options): Do not set flag_inline_trees.
7e8b322a 2936
4a7bb85b
RO
29372008-07-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2938
2939 * raise-gcc.c: Move tsystem.h before tm.h.
2940
ec45d105
AC
29412008-07-20 Arnaud Charlet <charlet@adacore.com>
2942
2943 * gnathtml.pl: New file.
2944
95331614 29452008-07-19 Olivier Hainque <hainque@adacore.com>
8ae3959e 2946
95331614
OH
2947 * targtyps.c (get_target_default_allocator_alignment): Use
2948 MALLOC_ABI_ALIGNMENT.
2949
dd7ac716
OH
29502008-07-17 Olivier Hainque <hainque@adacore.com>
2951
2952 * adaint.c (__MINGW32__ section): Include ctype.h and define
2953 a fallback ISALPHA if IN_RTS.
9e81dbc7 2954 (__gnat_is_absolute_path): Use ISALPHA instead of isalpha.
dd7ac716 2955
a7a46bb2
OH
29562008-07-17 Olivier Hainque <hainque@adacore.com>
2957
2958 * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
2959 argument, to apply to references in addition to definitions. Prevent
2960 setting TREE_STATIC on externals.
2961 (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
2962
66bfd481
RW
29632008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2964
2965 PR documentation/15479
2966 * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
2967 Replace backets around optional parameters with @ovar
2968 where possible, use @r{[}, @r{]} otherwise.
2969 Replace some @r, @i, and @emph with @var where appropriate.
2970
7a803dd8
EB
29712008-07-02 Eric Botcazou <ebotcazou@adacore.com>
2972
2973 * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
2974
7d71283c
KG
29752008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2976
2977 * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
2978 -Wc++-compat warnings.
2979 * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
2980 __gnat_locate_exec_on_path): Likewise.
2981 * decl.c (annotate_value): Likewise.
2982 * misc.c (gnat_handle_option): Likewise.
2983 * trans.c (gnat_to_gnu, extract_encoding, decode_name,
2984 post_error_ne_tree): Likewise.
2985
d9338c67
EB
29862008-06-27 Eric Botcazou <ebotcazou@adacore.com>
2987
2988 * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
2989 version of its type, attempt to first convert its elements.
2990
b4b010ad
CP
29912008-06-26 Chris Proctor <chrisp_42@bigpond.com>
2992
2993 * Makefile.in: Fix *86 kfreebsd target specific pairs.
2994
0ee61065
ST
29952008-06-25 Samuel Tardieu <sam@rfc1149.net>
2996
2997 * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
2998
324ed5a6
EB
29992008-06-24 Eric Botcazou <ebotcazou@adacore.com>
3000
3001 * utils2.c (known_alignment): Derive the alignment from pointed-to
3002 types only if it is otherwise unknown.
3003 <INTEGER_CST>: Tidy.
3004 <MULT_EXPR>: Likewise.
3005 <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
3006 that of the base.
3007
2d31e498
JDA
30082008-06-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3009
3010 PR ada/36573
3011 * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
3012
6ccde948
RW
30132008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3014
3015 * gnat_rm.texi (Implementation Defined Characteristics)
3016 (Standard Library Routines): Use @smallexample for indented
3017 text. Drop Indentation outside examples.
3018 * gnat_ugn.texi: Likewise.
3019
d8612af2
OH
30202008-06-13 Olivier Hainque <hainque@adacore.com>
3021
3022 * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
3023 if undefined.
3024 (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
3025 realignment with force_align_arg_pointer attribute on foreign
3026 convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
9e81dbc7 3027
ca789c7f
OH
30282008-06-13 Olivier Hainque <hainque@adacore.com>
3029
3030 * utils.c (rest_of_record_type_compilation): When computing
3031 encodings for the components of a variable size type, early
3032 strip conversions on the current position expression to make
3033 sure it's shape is visible. Use remove_conversions for this
3034 purpose.
3035
1dd4a3e6
EB
30362008-06-12 Eric Botcazou <ebotcazou@adacore.com>
3037
3038 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
3039 constrained subtype of a discriminated type, discard the fields that
3040 are beyond its limits according to its size.
3041
12ae9b26
OH
30422008-06-10 Olivier Hainque <hainque@adacore.com>
3043
3044 * utils.c (create_subprog_decl): If this is for the 'main' entry
3045 point according to the asm name, redirect main_identifier_node.
3046
912cb442
EB
30472008-06-09 Eric Botcazou <ebotcazou@adacore.com>
3048
3049 * decl.c (components_to_record): Adjust the packedness for the
3050 qualified union as well.
3051
4a598c32
AC
30522008-06-09 Arnaud Charlet <charlet@adacore.com>
3053
3054 * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
3055 checks non fatal.
3056
4b92fd3c
ST
30572008-06-07 Samuel Tardieu <sam@rfc1149.net>
3058
3059 * sem_res.adb (Large_Storage_Type): A type is large if it
3060 requires as many bits as Positive to store its values and its
3061 bounds are known at compile time.
3062 * sem_ch13.adb (Minimum_Size): Note that this function returns
3063 0 if the size is not known at compile time.
3064
968c8001
OH
30652008-06-06 Nicolas Setton <setton@adacore.com>
3066 Olivier Hainque <hainque@adacore.com>
3067
3068 * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
3069 attribute, parallel descriptive type attached to another
3070 type for debug info generation purposes.
3071 * utils.c (add_parallel_type): New function, register
3072 parallel type to be attached to a type.
3073 (get_parallel_type): New function, fetch a registered
3074 parallel type, if any.
3075 (rest_of_record_type_compilation): Register the parallel
3076 type we make for variable size records.
3077 * gigi.h (add_parallel_type, get_parallel_type): Declare.
3078 * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
3079 parallel debug types we make.
3080 * trans.c (extract_encoding, decode_name): New functions.
3081 (gigi): If the DWARF attribute extensions are available, setup
3082 to use them.
3083 * lang.opt: Register language specific processing request
3084 for -gdwarf+.
3085 * misc.c (gnat_dwarf_extensions): New global variable. How much
3086 do we want of our DWARF extensions. 0 by default.
3087 (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
3088 (gnat_post_options): Map gnat_dwarf_extensions to the
3089 commonuse_gnu_debug_info_extensions for later processing.
9e81dbc7 3090
b30199b8
ST
30912008-06-04 Samuel Tardieu <sam@rfc1149.net>
3092
3093 * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
3094
30783513
RW
30952008-06-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3096
3097 * Makefile.in (common_tools): Fix typos in $(exeext) extension.
3098 * gnat_ugn.texi (Style Checking)
3099 (Adding the Results of Compiler Checks to gnatcheck Output)
3100 (Example of Binder Output File): Fix typos.
3101 * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
3102 exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
3103 s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
3104 s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
3105 sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
3106 sinfo.ads, utils.c: Fix typos in comments.
3107 * sem_ch6.adb, vms_data.ads: Fix typos in strings.
3108
fb8368fd
AC
31092008-05-29 Thomas Quinot <quinot@adacore.com>
3110
3111 * sem_eval.adb: Minor reformatting
3112
31132008-05-29 Ed Schonberg <schonberg@adacore.com>
3114
3115 * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
3116 is abstract, do not apply abstractness check on subprogram if this is
3117 a renaming declaration.
3118
31192008-05-29 Arnaud Charlet <charlet@adacore.com>
3120
3121 PR ada/864
3122 * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
3123 allow recognition of program suffix in addition to prefix.
9e81dbc7 3124
fb8368fd 3125 * gnatchop.adb (Locate_Executable): Add support for prefix.
9e81dbc7 3126
fb8368fd
AC
3127 * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
3128 mlib-utl.adb: Adjust calls to Program_Name.
3129
fff3f472
AC
31302008-05-29 Robert Dewar <dewar@adacore.com>
3131
3132 * sem_ch3.adb: Minor reformatting
3133 * sem_prag.adb: Minor reformatting
3134 * sem_res.adb: Minor reformatting
3135 * sinput-p.ads: Minor reformatting
3136
31372008-05-29 Javier Miranda <miranda@adacore.com>
3138
3139 * sem_util.adb:
3140 (Abstract_Interface_List): Add missing support for full type-declaration
3141 associated with synchronized types.
3142
31432008-05-29 Robert Dewar <dewar@adacore.com>
3144
3145 * sem_eval.adb (Is_Same_Value): Take care of several more cases
3146
acca98c0
AC
31472008-05-28 Ed Schonberg <schonberg@adacore.com>
3148
3149 * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
3150 access type, wrap the expression in a conversion to force an
3151 accessibility check.
3152
3153 * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
3154 accessibility checks even when expansion is disabled in order to
3155 generate messages in the presence of previous errors or in
3156 semantics-only mode.
3157
31582008-05-28 Eric Botcazou <ebotcazou@adacore.com>
3159
3160 * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
3161 * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
3162
31632008-05-28 Vincent Celier <celier@adacore.com>
3164
3165 PR ada/34446
3166 * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
3167 preprocessing expressions
3168
31692008-05-28 Vincent Celier <celier@adacore.com>
3170
3171 * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
3172 for preprocessing
9e81dbc7 3173
acca98c0
AC
3174 * sinput-p.ads: Minor comment update and reformatting
3175
31762008-05-28 Ed Schonberg <schonberg@adacore.com>
3177
3178 * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
3179 type has a deeper level than any master only when it is the type of an
3180 access parameter.
3181
8250171b
AC
31822008-05-28 Javier Miranda <miranda@adacore.com>
3183
3184 * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
3185
31862008-05-28 Javier Miranda <miranda@adacore.com>
3187
3188 * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
3189 * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
3190 * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
3191 Add code that was previously located in
3192 Find_Overridden_Synchronized_Primitive because it is only used here.
3193
31942008-05-28 Sergey Rybin <rybin@adacore.com>
3195
3196 * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
3197 Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
3198
00ea9517
RD
31992008-05-28 Robert Dewar <dewar@adacore.com>
3200
3201 * restrict.ads:
3202 Add missing restrictions, and properly label all GNAT defined ones
9e81dbc7 3203
00ea9517
RD
3204 * rtsfind.ads:
3205 Add entry for Ada_Real_Time.Timing_Events.Timing_Event
3206 Add entry for Ada.Task_Termination.Set_Specific_Handler
3207 Add entry for Ada.Task_Termination.Specific_Handler
9e81dbc7 3208
00ea9517
RD
3209 * s-rident.ads:
3210 Add missing restrictions and properly mark all gnat defined ones
9e81dbc7 3211
00ea9517
RD
3212 * sem_ch3.adb:
3213 (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
9e81dbc7 3214
00ea9517
RD
3215 * sem_res.adb:
3216 (Resolve_Call): Check violation of No_Specific_Termination_Handlers
3217
3218 * gnat_rm.texi: Add missing restrictions, and properly label all
3219 GNAT defined ones
3220
32212008-05-28 Robert Dewar <dewar@adacore.com>
3222
3223 * restrict.adb:
3224 (Check_Restriction): violation of restriction No_Finalization is
3225 treated as a serious error to stop expansion
3226
32272008-05-28 Robert Dewar <dewar@adacore.com>
3228
3229 * exp_util.adb: Minor reformatting
3230 * exp_util.ads: Minor reformatting.
3231
0b795892
AC
32322008-05-28 Arnaud Charlet <charlet@adacore.com>
3233
3234 * Make-lang.in: Remove gprmake.
3235
3236 * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
3237
5840819a
AC
32382008-05-28 Ed Schonberg <schonberg@adacore.com>
3239
3240 * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
3241 improper progenitor names, and avoid cascaded errors.
3242
32432008-05-28 Robert Dewar <dewar@adacore.com>
3244
3245 * gnat_rm.texi: Add note on Old giving warning when applied to constant
3246
3247 * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
3248 a constant
3249
32502008-05-28 Robert Dewar <dewar@adacore.com>
3251
3252 * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
3253 size
3254
32552008-05-28 Robert Dewar <dewar@adacore.com>
3256
3257 * exp_ch5.adb:
3258 (Expand_Simple_Function_Return): Copy unaligned result into temporary
3259
8c3dd7a8
JM
32602008-05-28 Javier Miranda <miranda@adacore.com>
3261
3262 * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
3263 for user-defined predefined primitives.
9e81dbc7 3264
8c3dd7a8
JM
3265 * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
3266 (Find_Overridden_Synchronized_Primitive): Ditto.
3267
3268 * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
3269
35b80405
AC
32702008-05-27 Arnaud Charlet <charlet@adacore.com>
3271
3272 * a-ststio.adb, s-direio.adb:
3273 Further code clean up of previous change.
3274 Update comments.
3275
32762008-05-27 Vincent Celier <celier@adacore.com>
3277
3278 * prj-nmsc.adb: Minor reformatting
3279
32802008-05-27 Bob Duff <duff@adacore.com>
3281
3282 * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
3283 untagged private type with a tagged full type, where the full type has
3284 a self reference, create the corresponding class-wide type early, in
3285 case the self reference is "access T'Class".
3286
32872008-05-27 Ed Schonberg <schonberg@adacore.com>
3288
3289 * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
3290 tasks and context is an object declaration. create master entity before
3291 expansion.
3292
32932008-05-27 Robert Dewar <dewar@adacore.com>
3294
3295 * mlib-prj.adb: Minor reformatting
3296
3297 * prj-part.adb: Minor reformatting
3298
3299 * prj.ads: Minor reformatting
3300
3301 * exp_ch3.adb: Minor reformatting.
3302
3303 * sem_ch3.ads: Minor reformatting
3304
3305 * sem_eval.adb: Minor reformatting
3306
d5c998a9
AC
33072008-05-27 Vincent Celier <celier@adacore.com>
3308
3309 * gnatcmd.adb:
3310 <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
3311
33122008-05-27 Ed Schonberg <schonberg@adacore.com>
3313
3314 * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
3315 tasks, create an activation chain now, before the expansion into
3316 assignments and build-in-place calls that require the presence of an
3317 activation chain.
3318 (Backend_Processing_Possible): If the component type is inherently
3319 limited, the aggregate must be expanded into individual built-in-place
3320 assignments.
3321
3322 * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
3323 determine whether an allocation extra parameter must be built, to
3324 handle case of a private type whose full type is a discriminated type
3325 with defaults.
3326
33272008-05-27 Bob Duff <duff@adacore.com>
3328
3329 * gnat_rm.texi:
3330 Document the new behavior regarding trampolines.
3331
33322008-05-27 Arnaud Charlet <charlet@adacore.com>
3333
3334 * a-direio.adb, a-sequio.adb: Replace address clause by
3335 unrestricted_access, simpler and compatible with .NET.
3336
33372008-05-27 Vincent Celier <celier@adacore.com>
3338
3339 * prj-part.adb:
3340 (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
3341 a project file, so that symbolic links are not resolved.
3342
33432008-05-27 Arnaud Charlet <charlet@adacore.com>
3344
3345 * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
3346 Replace heavy address clause by 'Unrestricted_Access, cleaner and more
3347 portable across GNAT targets, since this kind of address clause is not
3348 supported by VM back-ends (.NET/JGNAT).
3349
79d2a727
AC
33502008-05-27 Arnaud Charlet <charlet@adacore.com>
3351
3352 * bindgen.adb: Update comments.
9e81dbc7 3353
79d2a727
AC
3354 * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
3355
33562008-05-27 Vincent Celier <celier@adacore.com>
3357
3358 * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
3359 prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
3360 mlib-tgt.adb, prj-env.adb, prj-env.ads:
3361 (Path_Information): New record type
3362 Use component of type Path_Information when there are two paths, one in
3363 canonical format and one in display format.
3364 Update the project manager to these new components.
3365
0f99f391
AC
33662008-05-27 Robert Dewar <dewar@adacore.com>
3367
3368 * makeutl.adb: Minor reformatting
3369 * prj-nmsc.adb: Minor reformatting
3370 * s-stausa.adb: Minor reformatting
3371 * s-stausa.ads: Minor reformatting
3372 * sem_ch6.adb: Minor reformatting
3373
33742008-05-27 Thomas Quinot <quinot@adacore.com>
3375
3376 * sem_res.adb: Minor comment fixes
3377
d18af35f
AC
33782008-05-27 Thomas Quinot <quinot@adacore.com>
3379
3380 * makeutl.adb: Minor code reorganization
3381
3382 * exp_aggr.adb: Add ??? comment
3383 Fix typo
3384
3385 * exp_ch6.adb: Minor reformatting
3386
33872008-05-27 Quentin Ochem <ochem@adacore.com>
3388
3389 * s-stausa.adb (Initialize): Updated result initialization, and
3390 initialization of environment stack.
3391 (Fill_Stack): Improved computation of the pattern zone, taking into
3392 account already filled at the calling point.
3393 (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
3394 Measure and Overflow_Guard.
3395 (Report_Result): Fixed computation of the result using new fields of
3396 Stack_Analyzer.
9e81dbc7 3397
d18af35f
AC
3398 * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
3399 params by more explicit Stack_Size / Max_Pattern_Size params.
3400 (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
3401 Added Stack_Used_When_Filling field.
3402 (Task_Result): Replaced Measure / Overflow_Guard by more explicit
3403 Min_Measure and Max_Measure fields.
9e81dbc7 3404
d18af35f
AC
3405 * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
3406
34072008-05-27 Vincent Celier <celier@adacore.com>
3408
3409 * prj-nmsc.adb:
3410 (Check_File): Make sure that a unit that replaces the same unit in a
3411 project being extended is properly processed.
3412
34132008-05-27 Ed Schonberg <schonberg@adacore.com>
3414
3415 * sem_ch3.adb:
3416 (Get_Discr_Value): Remove obsolete code that failed to find the value
3417 of a discriminant for an inherited task component appearing in a type
3418 extension.
3419
34202008-05-27 Thomas Quinot <quinot@adacore.com>
3421
3422 (System.File_IO.{Close, Delete, Reset}):
3423 Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
9e81dbc7 3424
d18af35f
AC
3425 (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
3426 Pass File parameter by reference.
3427
aeff280b
AC
34282008-05-27 Vincent Celier <celier@adacore.com>
3429
3430 * prj-nmsc.adb:
3431 (Process_Sources_In_Multi_Language_Mode): Check that there are not two
3432 sources of the same project that have the same object file name.
3433 (Find_Explicit_Sources): Always remove a source exception that was not
3434 found.
3435
34362008-05-27 Thomas Quinot <quinot@adacore.com>
3437
3438 * sem_ch3.adb: Minor reformatting
3439
34402008-05-27 Ed Schonberg <schonberg@adacore.com>
3441
3442 * sem_ch6.adb:
3443 (Is_Interface_Conformant): Handle properly a primitive operation that
3444 overrides an interface function with a controlling access result.
3445 (Type_Conformance): If Skip_Controlling_Formals is true, when matching
3446 inherited and overriding operations, omit as well the conformance check
3447 on result types, to prevent spurious errors.
3448
34492008-05-27 Vincent Celier <celier@adacore.com>
3450
3451 * makeutl.ads, makeutl.adb:
3452 (Set_Location): New procedure
3453 (Get_Location): New function
3454 (Update_Main): New procedure
3455
7bf402c1
AC
34562008-05-27 Vincent Celier <celier@adacore.com>
3457
3458 * prj-nmsc.adb:
3459 (Check_Library): Allow standard project to be extended as a static
3460 library project.
3461 (Get_Mains): Do not inherit attribute Main in an extending library
3462 project.
3463
34642008-05-27 Eric Botcazou <ebotcazou@adacore.com>
3465
3466 * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
3467 * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
3468 * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
3469 * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
3470 * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
3471 * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
3472 * system-mingw.ads (Always_Compatible_Rep): Likewise.
3473 * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
3474 * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
3475 * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
9e81dbc7 3476
52268145
AC
34772008-05-27 Ed Schonberg <schonberg@adacore.com>
3478
3479 * sem_attr.adb: add guard to previous patch.
3480
34812008-05-27 Ed Schonberg <schonberg@adacore.com>
3482
3483 * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
3484 a synchronized tagged type, do not attempt to build dispatch table for
3485 full view. The table is built for the corresponding record type, which
3486 has its own declaration.
3487
34882008-05-27 Gary Dismukes <dismukes@adacore.com>
3489
3490 * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
3491 to the known type entity E, rather than setting it to Any_Type. Fixes
3492 possible blowup in function Base_Init_Proc, as called from Freeze_Entity
3493 for objects whose type had an illegal constraint.
3494
34952008-05-27 Vincent Celier <celier@adacore.com>
3496
3497 * gnat_ugn.texi:
3498 Add succinct documentation for attribute Excluded_Source_List_File
3499
35002008-05-27 Vincent Celier <celier@adacore.com>
3501
3502 * prj-attr.adb: Add new project level attribute Map_File_Option
9e81dbc7 3503
52268145 3504 * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
9e81dbc7 3505
52268145
AC
3506 * prj.ads: Minor reformatting and comment update
3507 (Project_Configuration): New component Map_File_Option
9e81dbc7 3508
52268145 3509 * snames.adb: New standard name Map_File_Option
9e81dbc7 3510
52268145
AC
3511 * snames.ads: New standard name Map_File_Option
3512
35132008-05-27 Vincent Celier <celier@adacore.com>
3514
3515 * xsnames.adb: Remove unused variable Oname
3516
35172008-05-27 Doug Rupp <rupp@adacore.com>
3518
3519 * exp_ch6.adb:
3520 (Expand_N_Function_Call): Fix comments. Minor reformatting.
3521
3522 * exp_vfpt.ads:
3523 (Expand_Vax_Foreign_Return): Fix comments.
3524
35252008-05-27 Thomas Quinot <quinot@adacore.com>
3526
3527 * exp_dist.adb: Minor reformating
3528
094d7cfa
AC
35292008-05-26 Gary Dismukes <dismukes@adacore.com>
3530
3531 * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
3532 No_Default_Initialization, which is now delayed until the freeze point
3533 of the object. Add a comment about deferral of the check.
9e81dbc7 3534
094d7cfa
AC
3535 * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
3536 on objects is moved here.
3537
35382008-05-26 Eric Botcazou <ebotcazou@adacore.com>
3539
3540 * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
3541 (Compare_Array_S16): Adjust for above change.
3542 * s-casi32.adb (Uword): Likewise.
3543 (Compare_Array_S32): Likewise.
3544 * s-casi64.adb (Uword): Likewise.
3545 (Compare_Array_S64): Likewise.
3546 * s-caun16.adb (Uhalf): Likewise.
3547 (Compare_Array_U16): Likewise.
3548 * s-caun32.adb (Uword): Likewise.
3549 (Compare_Array_U32): Likewise.
3550 * s-caun64.adb (Uword): Likewise.
3551 (Compare_Array_U64): Likewise.
9e81dbc7 3552
094d7cfa
AC
35532008-05-26 Robert Dewar <dewar@adacore.com>
3554
3555 * exp_ch6.adb: Add ??? comment for previous change
3556
3557 * exp_vfpt.adb: Minor reformatting
3558
3559 * exp_vfpt.ads: Add ??? comment for last change
3560
3561 * sem_attr.adb: Add some ??? comments for previous change
3562
3563 * s-vaflop.ads: Add comments for previous change
3564
35652008-05-26 Doug Rupp <rupp@adacore.com>
3566
3567 * s-vaflop-vms-alpha.adb:
3568 Remove System.IO use clause, to prevent spurious ambiguities when
3569 package is access through rtsfind.
3570
35712008-05-26 Sergey Rybin <rybin@adacore.com>
3572
3573 * tree_io.ads (ASIS_Version_Number): Update because of the changes
3574 made in front-end
3575
9019f3fc
AC
35762008-05-26 Ed Schonberg <schonberg@adacore.com>
3577
3578 * sem_attr.adb:
3579 (Resolve_Attribute, case 'address): S (A .. B)' address can be safely
3580 converted to S (A)'address only if A .. B is known to be a non-null
3581 range.
3582
35832008-05-26 Doug Rupp <rupp@adacore.com>
3584
3585 * s-vaflop.adb:
3586 (Return_D, Return_F, Return_G): New functions.
3587
3588 * s-vaflop.ads:
3589 (Return_D, Return_F, Return_G): New functions.
3590
3591 * exp_vfpt.adb:
3592 (Expand_Vax_Foreign_Return): New procedure
3593
3594 * exp_vfpt.ads:
3595 (Expand_Vax_Foreign_Return): New procedure
3596
3597 * rtsfind.ads:
3598 (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
3599 (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
3600
3601 * exp_ch6.adb:
3602 Import Exp_Vfpt
3603 (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
3604
3605 * s-vaflop-vms-alpha.adb:
3606 (Return_D, Return_F, Return_G): New functions.
3607
36082008-05-26 Gary Dismukes <dismukes@adacore.com>
3609
3610 * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
3611 init proc entity when there is actual default initialization associated
3612 with the component type, to avoid spurious errors on objects of scalar
3613 array types that are marked Is_Public when No_Default_Initialization
3614 applies.
3615
d693e39d
TQ
36162008-05-26 Thomas Quinot <quinot@adacore.com>
3617
3618 * rtsfind.ads, rtsfind.adb:
3619 (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
3620 (Check_RPC): Support per-PCS-kind API versioning.
9e81dbc7 3621
d693e39d
TQ
3622 exp_dist.ads, exp_dist.adb:
3623 (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
3624 (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
3625 library function Get_RACW.
3626 (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
3627 library function Get_Reference.
3628 (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
3629 through an intermediate Any.
3630 (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
3631 going through an intermediate Any.
9e81dbc7 3632
d693e39d
TQ
3633 * sem_dist.adb: Minor reformatting.
3634
ad89bc8d
AC
36352008-05-26 Javier Miranda <miranda@adacore.com>
3636
3637 * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
3638 (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3639 (Is_Internal): Adding documentation on internal entities that have
3640 attribute Interface_Alias (old attribute Abstract_Interface_Alias)
3641
3642 * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
3643 (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3644 Added assertion to force entities with this attribute to have
3645 attribute Is_Internal set to True.
3646 (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
3647
3648 * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
3649 renamed as Derive_Progenitor_Subprograms. In addition, its code is
3650 a new implementation.
3651 (Add_Interface_Tag_Components): Remove special management of
3652 synchronized interfaces.
3653 (Analyze_Interface_Declaration): Minor reformating
3654 (Build_Derived_Record_Type): Minor reformating
3655 (Check_Abstract_Overriding): Avoid reporting error in case of abstract
3656 predefined primitive inherited from interface type because the body of
3657 internally generated predefined primitives of tagged types are generated
3658 later by Freeze_Type
3659 (Derive_Subprogram): Avoid generating an internal name if the parent
3660 subprogram overrides an interface primitive.
3661 (Derive_Subprograms): New implementation that keeps separate the
3662 management of tagged types not implementing interfaces, from tagged
3663 types that implement interfaces.
3664 (Is_Progenitor): New implementation.
3665 (Process_Full_View): Add documentation
3666 (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
3667 by call to Derive_Progenitor_Subprograms.
3668
3669 * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
3670 (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3671 Skip_Controlling_Formals.
3672
3673 * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
3674 (Check_Conventions): New implementation. Remove local subprogram
3675 Skip_Check. Remove formal Search_From of routine Check_Convention.
3676 (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3677 Skip_Controlling_Formals.
3678 (New_Overloaded_Entity): Enable addition of predefined dispatching
3679 operations.
3680
3681 * sem_disp.ads
3682 (Find_Primitive_Covering_Interface): New subprogram.
3683
3684 * sem_disp.adb (Check_Dispatching_Operation): Disable registering
3685 the task body procedure as a primitive of the corresponding tagged
3686 type.
3687 (Check_Operation_From_Private_Type): Avoid adding twice an entity
3688 to the list of primitives.
3689 (Find_Primitive_Covering_Interface): New subprogram.
3690 (Override_Dispatching_Operation): Add documentation.
3691
3692 * sem_type.adb (Covers): Minor reformatings
3693
3694 * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
3695 Collect_Interfaces.
3696 Rename formal.
3697 (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
3698 (Implements_Interface): New subprogram.
3699 (Is_Parent): Removed.
3700 (Primitive_Names_Match): New subprogram.
3701 (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3702 (Ultimate_Alias): New subprogram.
3703
3704 * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
3705 Collect_Interfaces.
3706 Remove special management for synchronized types. Rename formal. Remove
3707 internal subprograms Interface_Present_In_Parent and Add_Interface.
3708 (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
3709 on non-record types by code to return false in such case.
3710 (Implements_Interface): New subprogram.
3711 (Is_Parent): Removed. No special management is now required for
3712 synchronized types covering interfaces.
3713 (Primitive_Names_Match): New subprogram.
3714 (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3715 (Ultimate_Alias): New subprogram.
3716
3717 * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
3718 Add internal entities associated with secondary dispatch tables to
3719 the list of tagged type primitives that are not interfaces.
3720 (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
3721 (Make_Predefined_Primitive_Specs): Code reorganization to improve
3722 the management of predefined equality operator. In addition, if
3723 the type has an equality function corresponding with a primitive
3724 defined in an interface type, the inherited equality is abstract
3725 as well, and no body can be created for it.
3726
3727 * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
3728 exp_util to exp_disp.
3729 (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
3730 an entity corresponds with one of the predefined primitives required
3731 to implement interfaces.
3732 Update copyright notice.
3733
3734 * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
3735 final check on abstract subprograms all the primitives associated with
3736 interface primitives because they must be visible in the public and
3737 private part.
3738 (Write_DT): Use Find_Dispatching_Type to locate the name of the
3739 interface type. This allows the use of this routine, for debugging
3740 purposes, when the tagged type is not fully decorated.
3741 (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
3742 Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
3743 (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
3744 entity corresponds with one of the predefined primitives required to
3745 implement interfaces.
3746
3747 * exp_util.adb (Find_Interface_ADT): New implementation
3748 (Find_Interface): Removed.
3749
3750 * sprint.adb (Sprint_Node_Actual): Generate missing output for the
3751 list of interfaces associated with nodes
3752 N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
3753
37542008-05-26 Thomas Quinot <quinot@adacore.com>
3755
3756 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
3757 condition for assignment to temporary.
3758
c878b2ef
AC
37592008-05-26 Ed Schonberg <schonberg@adacore.com>
3760
3761 * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
3762 checks on the upper bound if the index type is a modular type, to
3763 prevent wrap-around computations when size is close to upper bound of
3764 type.
3765
37662008-05-26 Robert Dewar <dewar@adacore.com>
3767
3768 * sem_ch3.adb: Minor reformatting
3769
39281edf
AC
37702008-05-26 Ed Schonberg <schonberg@adacore.com>
3771
3772 * sem_ch12.adb (Remove_Parent): Use specification of instance
3773 to retrieve generic parent,
3774 to handle properly the case where the instance is a child unit.
3775 Add guard to handle properly wrapper packages.
3776 Minor reformatting
3777
37782008-05-26 Thomas Quinot <quinot@adacore.com>
3779
3780 * sinfo.ads: Minor reformatting
3781
37822008-05-26 Hristian Kirtchev <kirtchev@adacore.com>
3783
3784 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
3785 Generate a tag check when the result subtype of a function, defined by
3786 an access definition, designates a specific tagged type.
3787 (Make_Tag_Check): New routine.
3788
d6ca724c
AC
37892008-05-26 Arnaud Charlet <charlet@adacore.com>
3790
3791 * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
3792
c654b659
EB
37932008-05-26 Eric Botcazou <ebotcazou@adacore.com>
3794
3795 * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
3796 (builtin_decl_for): Likewise.
3797 * trans.c (gigi): Likewise.
3798 * utils.c (def_builtin_1): Fix formatting.
3799
1c331d2d
AC
38002008-05-26 Hristian Kirtchev <kirtchev@adacore.com>
3801
3802 * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
3803 Create the statements which map a string name to protected or task
3804 entry indix.
3805
3806 * exp_ch9.adb: Add with and use clause for Stringt.
3807 Minor code reformatting.
3808 (Build_Entry_Names): New routine.
3809 (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
3810 for flag Build_Entry_Names which controls the allocation of the data
3811 structure for the string names of entries.
3812
3813 * exp_ch9.ads (Build_Entry_Names): New subprogram.
3814
3815 * exp_util.adb (Entry_Names_OK): New function.
3816
3817 * exp_util.ads (Entry_Names_OK): New function.
3818
3819 * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
3820 enumerations RE_Id and RE_Unit_Table.
3821
3822 * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
3823 (Free_Entry_Names_Array): New routine.
3824
3825 * s-taskin.ads: Comment reformatting.
3826 Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
3827 Add component Entry_Names to record Ada_Task_Control_Block.
3828 (Free_Entry_Names_Array): New routine.
3829
3830 * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
3831 dynamically allocate an array
3832 of string pointers. This structure holds string entry names.
3833 (Free_Entry_Names): New routine.
3834 (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
3835 (Set_Entry_Names): New routine.
3836
3837 * s-tassta.ads:
3838 (Create_Task): Add formal Build_Entry_Names. The flag is used to
3839 control the allocation of the data structure which stores entry names.
3840 (Set_Entry_Name): New routine.
3841
3842 * s-tpoben.adb:
3843 Add with and use clause for Ada.Unchecked_Conversion.
3844 (Finalize): Deallocate the entry names array.
3845 (Free_Entry_Names): New routine.
3846 (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
3847 create an array of string pointers to hold the entry names.
3848 (Set_Entry_Name): New routine.
3849
3850 * s-tpoben.ads:
3851 Add field Entry_Names to record Protection_Entries.
3852 (Initialize_Protection_Entries): Add formal Build_Entry_Names.
3853 (Set_Entry_Name): New routine.
3854
38552008-05-26 Vincent Celier <celier@adacore.com>
3856
3857 * prj-nmsc.adb:
3858 (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
3859
3860 * prj.ads:
3861 (Project_Configuration): New component Shared_Lib_Driver
3862
38632008-05-26 Ed Schonberg <schonberg@adacore.com>
3864
3865 * inline.adb:
3866 (Cleanup_Scopes): For a protected operation, transfer finalization list
3867 to protected body subprogram, to force cleanup actions when needed.
3868
38692008-05-26 Robert Dewar <dewar@adacore.com>
3870
3871 * sem_cat.adb: Minor reformatting
3872
3873 * gnatname.adb: Minor reformatting
3874
3875 * osint.ads: Minor reformatting
3876
3877 * s-carun8.ads: Minor reformatting
3878
3879 * g-heasor.ads: Minor comment fix (unit is now pure)
3880
38812008-05-26 Robert Dewar <dewar@adacore.com>
3882
3883 * exp_ch2.adb:
3884 (Expand_Current_Value): Properly type generated integer literal
3885
38862008-05-26 Sergey Rybin <rybin@adacore.com>
3887
3888 * gnat_ugn.texi: Add description for the new gnatcheck rule -
3889 Separate_Numeric_Error_Handlers.
3890
38912008-05-26 Pascal Obry <obry@adacore.com>
3892
3893 * sem_aggr.adb: Minor reformatting.
3894
38952008-05-26 Jose Ruiz <ruiz@adacore.com>
3896
3897 * s-osinte-aix.adb:
3898 (To_Target_Priority): Setting the time slice value to 0 or greater sets
3899 the scheduling policy to FIFO within priorities or round-robin
3900 respectively.
3901 Hence, the priority must be set in this case to the one selected by the
3902 user.
9e81dbc7 3903
1c331d2d
AC
39042008-05-26 Ed Schonberg <schonberg@adacore.com>
3905
3906 * sem_ch12.adb:
3907 (Remove_Parent): If the enclosing scope is an instance whose generic
3908 parent is declared within some parent scope of the just completed
3909 instance, make full views of the entities in that parent visible, when
3910 applicable.
9e81dbc7 3911
a28e8f45
KT
39122008-05-26 Kai Tietz <kai.tietz@onevision.com>
3913
3914 * mingw32.h (STD_MINGW): Set to true for target w64.
3915
3651f7ad
EB
39162008-05-25 Eric Botcazou <ebotcazou@adacore.com>
3917
3918 * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
3919 instead of TREE_STATIC on the ADDR_EXPR.
3920
58272d79
EB
39212008-05-24 Eric Botcazou <ebotcazou@adacore.com>
3922
3923 * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
3924 (Sloc_to_locus): Do not overwrite known GCC locations when translating
3925 GNAT standard locations.
3926
4c8125f4
EB
39272008-05-23 Eric Botcazou <ebotcazou@adacore.com>
3928
3929 * gigi.h (mark_visited): Declare.
3930 * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
3931 only the topmost node of expressions.
b86c6d94 3932 (elaborate_expression_1): Look deeper for read-only variables.
4c8125f4
EB
3933 * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
3934 (mark_visited): Move logic to mark_visited_r. Invoke walk_tree.
3935 (mark_visited_r): New function.
3936
d1ba4e42
AC
39372008-05-23 Vincent Celier <celier@adacore.com>
3938
b86c6d94 3939 * snames.adb: New standard name Excluded_Source_List_File.
d1ba4e42 3940
b86c6d94 3941 * snames.ads: New standard name Excluded_Source_List_File.
d1ba4e42 3942
b86c6d94 3943 * prj-attr.adb: New project level attribute Excluded_Source_List_File.
d1ba4e42 3944
b86c6d94 3945 * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
d1ba4e42
AC
3946 Get excluded sources from
3947 file indicated by attribute Excluded_Source_List_File, when present and
3948 neither Excluded_Source_Files nor Locally_Removed_Files are declared.
3949
39502008-05-23 Robert Dewar <dewar@adacore.com>
3951
3952 * exp_dist.adb: Minor reformatting
3953
39542008-05-23 Ed Schonberg <schonberg@adacore.com>
3955
3956 * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
3957 slice, convert it to an indexed component, which is equivalent, more
3958 efficient, and usable even if the slice itself is not addressable.
3959
39602008-05-23 Olivier Hainque <hainque@adacore.com>
3961
3962 * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
3963 convention also allows access to named compiler built-in subprograms
3964 such as the GCC __builtin family.
3965
ffd0dd6c
AC
39662008-05-23 Vincent Celier <celier@adacore.com>
3967
3968 * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
3969 sep. If there are several possibilities, choose the one with the
3970 longer prefix.
3971
39722008-05-23 Vincent Celier <celier@adacore.com>
3973
3974 * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
3975 back end switches when executable specified with --GCC= is same as
3976 default, even if there are additional options.
3977
3978 * gnat_ugn.texi:
3979 Document when the back end switches from the ALI file are taken into
3980 account when gnatlink is invoked with --GCC=
3981
39822008-05-23 Thomas Quinot <quinot@adacore.com>
3983
3984 * s-os_lib.adb:
3985 (copy_File): Do not open destination file if source file is unreadable.
3986
3fda3252
EB
39872008-05-23 Eric Botcazou <ebotcazou@adacore.com>
3988
3989 * utils.c (handle_type_generic_attribute): Adjust to accept
3990 fixed arguments before an elipsis.
3991
92c708d2
TQ
39922008-05-21 Thomas Quinot <quinot@adacore.com>
3993
3994 * g-sothco.ads, g-sothco.adb: New files.
3995
93a7c573
AC
39962008-05-20 Thomas Quinot <quinot@adacore.com>
3997
3998 * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
3999
4000 * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
4001 Add missing "with" of Ada.Unchecked_Conversion
4002
9e81dbc7
AS
4003 * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
4004 g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
4005 g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
4006 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
4007 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
4008 g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
93a7c573
AC
4009 Move common code out of GNAT.Sockets.Thin implementations and into
4010 Thin_Common.
4011 New constant SIZEOF_fd_set
4012 New flag Has_Sockaddr_Len
4013 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4014
4015 * g-stsifd-sockets.adb
4016 (Create): Remove call to Set_Length; use Set_Family to set the family
4017 and (on appropriate platforms) length fields in struct sockaddr.
4018
9e81dbc7
AS
4019 * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
4020 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
93a7c573
AC
4021 g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
4022 Move common code out of GNAT.Sockets.Thin implementations and into
4023 Thin_Common.
4024
9e81dbc7 4025 * g-socket.ads, g-socket.adb:
93a7c573
AC
4026 Move common code out of GNAT.Sockets.Thin implementations and into
4027 Thin_Common.
4028 (Connect_Socket, Accept_Socket): Provide new versions of these two
4029 routines that operate with a user specified timeout.
4030 (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
4031 this is now handled automatically by Set_Family on platforms that
4032 require it.
4033
9e81dbc7 4034 * gen-soccon.c:
93a7c573
AC
4035 Move common code out of GNAT.Sockets.Thin implementations and into
4036 Thin_Common.
4037 (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
4038 this constant to 0 (not -1) because we use it to initialize an
4039 unsigned_char value.
4040 Align values for numeric constants only.
4041 Handle the case of systems that do not support AF_INET6.
4042 New constant SIZEOF_fd_set
4043 New flag Has_Sockaddr_Len
4044 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4045
4046 * gsocket.h: New flag Has_Sockaddr_Len
4047 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4048
40492008-05-20 Santiago Uruena <uruena@adacore.com>
4050
4051 * i-cobol.ads: Interfaces.COBOL should be preelaborate.
4052
40532008-05-20 Arnaud Charlet <charlet@adacore.com>
4054
4055 * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
4056 the underlying issue with malloc/free has been fixed. Remove associated
4057 comments.
4058 Minor reformatting.
4059 Related to PR ada/24533
4060
40612008-05-20 Robert Dewar <dewar@adacore.com>
4062
4063 * ali.adb: Correct casing of ASCII.NUL
4064
4065 * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
4066 properly.
4067
40682008-05-20 Robert Dewar <dewar@adacore.com>
4069 Gary Dismukes <dismukes@adacore.com>
4070
4071 * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
4072 overflow if result converted to wider integer type.
4073 (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
4074 discriminated types when discriminant checks are suppressed.
4075
40762008-05-20 Vincent Celier <celier@adacore.com>
4077
4078 * cstand.adb (Print_Standard): Issue the correct Size clause for type
4079 Wide_Wide_Character.
4080
40812008-05-20 Tristan Gingold <gingold@adacore.com>
4082
4083 * decl.c: Do not emit a variable for a object that has an address
4084 representation clause whose value is known at compile time.
4085 When a variable has an address clause whose value is known at compile
4086 time, refer to this variable by using directly the address instead of
4087 dereferencing a pointer.
4088
40892008-05-20 Robert Dewar <dewar@adacore.com>
4090
4091 PR ada/30740
4092 * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
4093 subtypes, always False for non-modular types.
4094 Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
4095 entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
4096 for Shared_Storage package.
4097 (Is_RACW_Stub_Type): New entity flag.
4098
4099 * exp_ch4.adb
4100 (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
4101 case where we have a modular type with a non-binary modules.
4102 Comments reformattings.
4103
4104 * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
4105 all types.
4106
41072008-05-20 Javier Miranda <miranda@adacore.com>
4108
4109 * exp_aggr.adb
4110 (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
4111 tests did not covered the case in which the type of the aggregate has
4112 no progenitors but some its parents has progenitors.
4113
41142008-05-20 Gary Dismukes <dismukes@adacore.com>
4115 Hristian Kirtchev <kirtchev@adacore.com>
4116
4117 * exp_ch3.adb
4118 (Expand_N_Object_Declaration): Correct the condition which triggers the
4119 generation of a call to Displace when initializing a class-wide object.
4120 (Build_Dcheck_Functions): Build discriminant-checking for null variants
4121 when Frontend_Layout_On_Target is true to ensure that they're available
4122 for calling when a record variant size function is built in Layout.
4123
41242008-05-20 Ed Schonberg <schonberg@adacore.com>
4125
4126 * exp_ch5.adb (Expand_Assign_Record): Within an initialization
4127 procedure for a derived type retrieve the discriminant values from the
4128 parent using the corresponding discriminant.
4129 (Expand_N_Assignment_Statement): Skip generation of implicit
4130 if-statement associated with controlled types if we are
4131 compiling with restriction No_Finalization.
4132
41332008-05-20 Vincent Celier <celier@adacore.com>
4134
4135 * prj.adb (Hash (Project_Id)): New function
4136 (Project_Empty): Add new component Interfaces_Defined
4137
4138 * prj.ads (Source_Data): New component Object_Linked
4139 (Language_Config): New components Object_Generated and Objects_Linked
4140 (Hash (Project_Id)): New function
4141 (Source_Data): New Boolean components In_Interfaces and
4142 Declared_In_Interfaces.
4143 (Project_Data): New Boolean component Interfaces_Defined
4144
9e81dbc7 4145 * prj-attr.adb:
93a7c573
AC
4146 New project level attribute Object_Generated and Objects_Linked
4147 Add new project level attribute Interfaces
4148
4149 * prj-dect.adb: Use functions Present and No throughout
4150 (Parse_Variable_Declaration): If a string type is specified as a simple
4151 name and is not found in the current project, look for it also in the
4152 ancestors of the project.
4153
9e81dbc7 4154 * prj-makr.adb:
93a7c573
AC
4155 Replace procedure Make with procedures Initialize, Process and Finalize
4156 to implement H414-023: process different directories with different
4157 patterns.
4158 Use functions Present and No throughout
4159
9e81dbc7 4160 * prj-makr.ads:
93a7c573
AC
4161 Replace procedure Make with procedures Initialize, Process and Finalize
4162
4163 * prj-nmsc.adb
4164 (Add_Source): Set component Object_Exists and Object_Linked accordnig to
4165 the language configuration.
4166 (Process_Project_Level_Array_Attributes): Process new attributes
4167 Object_Generated and Object_Linked.
4168 (Report_No_Sources): New Boolean parameter Continuation, defaulted to
4169 False, to indicate that the erreor/warning is a continuation.
4170 (Check): Call Report_No_Sources with Contnuation = True after the first
4171 call.
4172 (Error_Msg): Process successively contnuation character and warning
4173 character.
4174 (Find_Explicit_Sources): Check that all declared sources have been found
4175 (Check_File): Indicate in hash table Source_Names when a declared source
4176 is found.
4177 (Check_File): Set Other_Part when found
4178 (Find_Explicit_Sources): In multi language mode, check if all exceptions
4179 to the naming scheme have been found. For Ada, report an error if an
4180 exception has not been found. Otherwise, disregard the exception.
4181 (Check_Interfaces): New procedure
4182 (Add_Source): When Other_Part is defined, set mutual pointers in spec
4183 and body.
4184 (Check): In multi-language mode, call Check_Interfaces
4185 (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
4186 for an excluded source.
4187 (Remove_Source): A source replacing a source in the interfaces is also
4188 in the interfaces.
4189
4190 * prj-pars.adb: Use function Present
4191
4192 * prj-part.adb: Use functions Present and No throughout
4193 (Parse_Single_Project): Set the parent project for child projects
4194 (Create_Virtual_Extending_Project): Register project with no qualifier
4195 (Parse_Single_Project): Allow an abstract project to be extend several
4196 times. Do not allow an abstract project to extend a non abstract
4197 project.
4198
4199 * prj-pp.adb: Use functions Present and No throughout
4200 (Print): Take into account the full associative array attribute
4201 declarations.
4202
4203 * prj-proc.adb: Use functions Present and No throughout
4204 (Expression): Call itself with the same From_Project_Node for the
4205 default value of an external reference.
4206
4207 * prj-strt.adb: Use functions Present and No throughout
4208 (Parse_Variable_Reference): If a variable is specified as a simple name
4209 and is not found in the current project, look for it also in the
4210 ancestors of the project.
4211
4212 * prj-tree.ads, prj-tree.adb (Present): New function
4213 (No): New function
4214 Use functions Present and No throughout
4215 (Parent_Project_Of): New function
4216 (Set_Parent_Project_Of): New procedure
4217
9e81dbc7 4218 * snames.ads, snames.adb:
93a7c573
AC
4219 Add new standard names Object_Generated and Objects_Linked
4220
42212008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
4222
4223 * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
4224 and the derived type are of the same kind.
4225 (Expand_Call): Generate type conversions for actuals of
4226 record or array types when the parent and the derived types differ in
4227 size and/or packed status.
4228
42292008-05-20 Javier Miranda <miranda@adacore.com>
4230 Ed Schonberg <schonberg@adacore.com>
4231
4232 * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
4233 generating dispatch tables of locally defined tagged types statically.
4234 Remove implicit if-statement that is no longer required.
4235 (Expand_Dispatching_Call): If this is a call to an instance of the
4236 generic dispatching constructor, the type of the first argument may be
4237 a subtype of Tag, so always use the base type to recognize this case.
4238
42392008-05-20 Thomas Quinot <quinot@adacore.com>
4240
4241 * exp_dist.adb
4242 (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
4243 and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
4244 assigning NULL into the result, to avoid a spurious warning.
4245 (Add_RACW_Features, case Same_Scope): Add assertion that designated type
4246 is not frozen.
4247 (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
4248 type.
4249 (Build_From_Any_Function, Build_To_Any_Function,
4250 Build_TypeCode_Function): For a type that has user-specified stream
4251 attributes, use an opaque sequence of octets as the representation.
4252
42532008-05-20 Kevin Pouget <pouget@adacore.com>
4254
4255 * exp_smem.ads, exp_smem.adb: Construction of access and assign
4256 routines has been replaced by an instantiation of
4257 System.Shared_Storage.Shared_Var_Procs generic package, while expanding
4258 shared variable declaration.
4259 Calls to access and assign routines have been replaced by calls to
4260 Read/Write routines of System.Shared_Storage.Shared_Var_Procs
4261 instantiated package.
9e81dbc7 4262
93a7c573
AC
4263 * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
4264 It identifies the new generic package added in s-shasto.
4265
4266 * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
4267 is instantiated for each shared passive variable. It provides
4268 supporting procedures called upon each read or write access by the
4269 expanded code.
4270
4271 * sem_attr.adb:
4272 For this runtime unit (always compiled in GNAT mode), we allow
4273 stream attributes references for limited types for the case where
4274 shared passive objects are implemented using stream attributes,
4275 which is the default in GNAT's persistent storage implementation.
4276
42772008-05-20 Ed Schonberg <schonberg@adacore.com>
4278
4279 * freeze.adb
4280 (Freeze_Enumeration_Type): For a subtype that inherits a foreign
4281 convention from its base type, do not set the type to that of integer,
4282 because it may inherit a size clause.
4283 Warn on a size clause with a size different
4284 from that of Integer, if the type has convention C.
4285
42862008-05-20 Vincent Celier <celier@adacore.com>
4287
4288 * gnatname.adb
4289 (Scan_Args): Rewrite to take into account new switch --and to separate
4290 arguments into sections.
4291 (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
4292 section, then Finalize.
4293
42942008-05-20 Tristan Gingold <gingold@adacore.com>
4295
4296 * init.c: Enable stack probing on ppc-linux.
4297
4298 * tracebak.c: Add symbolic traceback for ppc-linux.
4299
4300 * system-linux-ppc.ads: Enable stack probing on ppc-linux.
4301
43022008-05-20 Arnaud Charlet <charlet@adacore.com>
4303
4304 * Makefile.in
4305 (common-tools): New rule, to avoid parallel build failure on gnat tools.
4306 Reenable parallel builds on this Makefile.
4307
4308 * Make-lang.in: Update dependencies.
4309
43102008-05-20 Robert Dewar <dewar@adacore.com>
4311
4312 * opt.ads (Treat_Restrictions_As_Warnings): New switch
4313
4314 * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
4315 Treat_Restrictions_As_Warnings.
4316
4317 * switch-c.adb: Recognize new switch -gnatr
4318
4319 * usage.adb: Add line for -gnatr
4320
43212008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
4322
4323 * par-ch3.adb
4324 (P_Access_Definition): Change the error message when parsing "access
4325 all" in Ada 95 mode. The message no longer forces the user to recompile
4326 in 05 mode only to discover that anonymous access types are not allowed
4327 to have "all".
4328
43292008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
4330
4331 * par-ch9.adb
4332 (P_Protected): Update the error message on missing "-gnat05" switch when
4333 using interfaces in conjunction with protected types. Remove the
4334 incorrect error message associated with the presence of "private" after
4335 a "with".
4336
43372008-05-20 Ed Schonberg <schonberg@adacore.com>
4338
4339 * sem_aggr.adb: Update comments.
4340 Improve previous change for PR ada/17985
4341
43422008-05-20 Thomas Quinot <quinot@adacore.com>
4343
4344 * sem_cat.adb
4345 (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
4346 the visible part of the spec of a remote types unit.
4347 (Validate_Remote_Access_Object_Type_Declaration):
4348 New local subprogram Is_Valid_Remote_Object_Type, replaces
4349 Is_Recursively_Limited_Private.
4350 (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
4351 non-controlling formals (and the return type, even though this is not
4352 explicit in the standard) must support external streaming.
4353 (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
4354 as above for of RAS types and RCI subprograms. (The return type is not
4355 checked yet).
4356 Update comments related to RACWs designating limited interfaces per
4357 ARG ruling on AI05-060.
4358
4359 * sem_util.ads, sem_util.adb
4360 (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
4361 Is_Remote_Call_Interface to identify RACW types in a stable and
4362 consistent way. We used to rely in this predicate on the privateness of
4363 the designated type and its ancestors, but depending on the currently
4364 visible private parts, this caused false negatives. We now uniformly
4365 rely on checks made at the point where the RACW type is declared.
4366 (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
4367
43682008-05-20 Javier Miranda <miranda@adacore.com>
4369 Ed Schonberg <schonberg@adacore.com>
4370 Hristian Kirtchev <kirtchev@adacore.com>
4371
4372 * sem_ch3.adb
4373 (Analyze_Object_Declaration): Fix over-conservative condition
4374 restricting use of predefined assignment with tagged types that have
4375 convention CPP.
4376 (Analyze_Object_Declaration): Relax the check regarding deferred
4377 constants declared in scopes other than packages since they can be
4378 completed with pragma Import.
4379 Add missing escaping of all-caps word 'CPP' in error messages.
4380 (Build_Discriminated_Subtype): Do not inherit representation clauses
4381 from parent type if subtype already carries them, because they are
4382 inherited earlier during derivation and already include those that may
4383 come from a partial view.
4384
4385 * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
4386 Check the declarations of a subprogram body for proper deferred
4387 constant completion.
4388
4389 * sem_ch7.ads, sem_ch7.adb
4390 (Inspect_Deferred_Constant_Completion): Moved to sem_util.
4391
43922008-05-20 Ed Schonberg <schonberg@adacore.com>
4393 Thomas Quinot <quinot@adacore.com>
4394
4395 * sem_ch4.adb
4396 (Try_Indexed_Call): Handle properly a construct of the form F(S) where
4397 F is a parameterless function that returns an array, and S is a subtype
4398 mark.
4399 (Analyze_Call): Insert dereference when the prefix is a parameterless
4400 function that returns an access to subprogram and the call has
4401 parameters.
4402 Reject a non-overloaded call whose name resolves to denote
4403 a primitive operation of the stub type generated to support a remote
4404 access-to-class-wide type.
4405
44062008-05-20 Ed Schonberg <schonberg@adacore.com>
4407
4408 * sem_ch8.adb
4409 (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
4410 when there is a use clause for the same entity in the context.
4411 (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
4412 created for a stream attribute of an abstract type or interface type.
4413
44142008-05-20 Thomas Quinot <quinot@adacore.com>
4415
4416 * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
4417 subprogram.
4418
4419 * sem_type.adb
4420 (Add_One_Interp): Ignore any interpretation that is a primitive
4421 operation of an RACW stub type (these primitives are only executed
4422 through dispatching, never through static calls).
4423 (Collect_Interps): When only one interpretation has been found, set N's
4424 Entity and Etype to that interpretation, otherwise Entity and Etype may
4425 still refer to an interpretation that was ignored by Add_One_Interp,
4426 in which case would end up with being marked as not overloaded but with
4427 an Entity attribute not pointing to its (unique) correct interpretation.
4428
44292008-05-20 Ed Schonberg <schonberg@adacore.com>
4430
4431 * sem_eval.adb
4432 (Eval_Slice): Warn when a slice whose discrete range is a subtype name
4433 denotes the whole array of its prefix.
4434
44352008-05-20 Robert Dewar <dewar@adacore.com>
4436
4437 * sem_res.adb (Resolve_Op_Not): Warn on double negation
4438
44392008-05-20 Ed Schonberg <schonberg@adacore.com>
4440
4441 * sprint.adb
4442 (Print_Itype): Do not modify the sloc of the component type of a
4443 (packed) array itype, because it is an unrelated type whose source
4444 location is independent of the point of creation of the itype itself.
4445
44462008-05-20 Thomas Quinot <quinot@adacore.com>
4447
4448 * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
4449 Append.
4450
44512008-05-20 Robert Dewar <dewar@adacore.com>
4452 Vincent Celier <celier@adacore.com>
4453
4454 * vms_data.ads: Add entry for -gnatr
4455 Put GNAT SYNC section in proper alpha order
4456 Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
4457
4458 * gnat_ugn.texi: Add documentation for new gnatname switch --and
4459 Update the style checks section
4460 Add documentation of -gnatr
4461 Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
4462 subsection the explanation how compiler checks should be disabled for
4463 gnatcheck.
4464 Update the list of Ada 95 reserved words used by in the project language
4465 Add documentation for project qualifiers.
4466 Document that abstract projects may be extended by different projects in
4467 the same project tree.
4468 Add documentation for gnatmake switch -d
4469
4470 * ug_words: Add -gnatyy VMS equivalence string.
4471 Add entry for -gnatr
4472
44732008-05-20 Bob Duff <duff@adacore.com>
4474
4475 * a-rttiev.adb
4476 (Set_Handler): Remove code from both of these that implements
4477 RM-D.15(15/2), because it causes a race condition and potential
4478 deadlock.
4479 (Process_Queued_Events): Add comment explaining "exception when others
4480 => null". Add clarifying ".all", even though implicit .all is legal
4481 here.
4482
44832008-05-20 Arnaud Charlet <charlet@adacore.com>
4484
4485 * s-winext.ads: Replace representation clause by pragma Pack. Gives
4486 equivalent representation, but has the advantage of allowing
4487 compilation of this file under 64 bits platforms.
4488
4489 * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
4490
4491 * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
4492
9e81dbc7 4493 * adaint.c:
93a7c573
AC
4494 Don't define dummy implementation of convert_addresses on ppc-linux.
4495
44962008-05-20 Ed Schonberg <schonberg@adacore.com>
4497
4498 * exp_ch7.adb
4499 (Expand_Ctrl_Function_Call): Do not attach result to finalization list
4500 if expression is aggregate component.
4501
45022008-05-20 Robert Dewar <dewar@adacore.com>
4503
4504 * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
4505 sem_ch12.adb: Update comments. Minor reformatting.
4506
4507 * exp_ch2.adb: Typo
4508
4509 * s-unstyp.ads: Fixed some typos in comments.
4510
1b686dc4
AC
45112008-05-20 Arnaud Charlet <charlet@adacore.com>
4512
4513 * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
4514 type/constant.
4515
4516 * g-socthi-vxworks.ads: Update to latest socket changes.
4517
4518 * a-caldel-vms.adb: Resync with a-caldel spec.
4519
6357e162
AC
4520 * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
4521 Update comments.
4522
74c11a6c
EB
45232008-05-17 Eric Botcazou <ebotcazou@adacore.com>
4524
4525 * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
4526 for dummy types pointed to by the converted pointer types.
4527
f730e42f
EB
45282008-05-15 Eric Botcazou <ebotcazou@adacore.com>
4529
4530 * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
4531 of records and unions.
4532 (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
4533
eaa2f8c7 45342008-05-14 Samuel Tardieu <sam@rfc1149.net>
9e81dbc7 4535 Robert Dewar <dewar@adacore.com>
eaa2f8c7
ST
4536
4537 * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
4538 restrictions to the prefix of 'Old.
4539 * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
4540 * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
4541 variables.
4542
f80cddcb
EB
45432008-05-13 Eric Botcazou <ebotcazou@adacore.com>
4544
4545 PR ada/24880
4546 PR ada/26635
4547 * utils.c (convert) <INTEGER_TYPE>: When converting an additive
4548 expression to an integral type with lower precision, use NOP_EXPR
4549 directly in a couple of special cases.
4550
ea0a7f39 45512008-05-12 Samuel Tardieu <sam@rfc1149.net>
9e81dbc7 4552 Ed Schonberg <schonberg@adacore.com>
ea0a7f39
ST
4553
4554 * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
4555 constraint expressions.
4556
751d1520
TB
45572008-05-12 Tomas Bily <tbily@suse.cz>
4558
ea0a7f39
ST
4559 * utils2.c (known_alignment, contains_save_expr_p)
4560 (gnat_mark_addressable): Use CASE_CONVERT.
4561 * decl.c (annotate_value): Likewise.
4562 * trans.c (maybe_stabilize_reference): Likewise.
4563 * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
4564 * utils.c (rest_of_record_type_compilation): Likewise.
4565 * trans.c (protect_multiple_eval, Attribute_to_gnu)
4566 (protect_multiple_eval): Likewise.
751d1520 4567
a1b66071
AS
45682008-05-08 Andreas Schwab <schwab@suse.de>
4569
4570 * utils.c (handle_pure_attribute, init_gigi_decls): Rename
4571 DECL_IS_PURE to DECL_PURE_P.
4572
bba74577
EB
45732008-05-05 Eric Botcazou <ebotcazou@adacore.com>
4574
4575 * decl.c (maybe_pad_type): Add ??? comment.
4576
8f85525e
EB
45772008-05-03 Eric Botcazou <ebotcazou@adacore.com>
4578
4579 * decl.c (components_to_record): Zero the alignment of the qualified
4580 union built for the variant part upon creating it.
4581
88f36b7e
EB
45822008-05-03 Eric Botcazou <ebotcazou@adacore.com>
4583
4584 * decl.c (maybe_pad_type): Try to get a form of the type with integral
4585 mode even if the alignment is not a factor of the original size. But
4586 make sure to create the inner field with the original size. Reorder.
4587 * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
4588 record as always addressable.
4589 * utils.c (convert): Deal specially with conversions between original
4590 and packable versions of a record type.
4591 * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
4592 recognizing an assignment between padded objects.
4593
8665c7ca
EB
45942008-05-01 Eric Botcazou <ebotcazou@adacore.com>
4595
4596 * decl.c (make_packable_type): Resize the last component to its RM size
4597 only if it is of an aggregate type.
4598 * trans.c (call_to_gnu): Fix nit in comment.
4599 (gnat_to_gnu): Likewise.
4600
ea342909
ST
46012008-04-30 Samuel Tardieu <sam@rfc1149.net>
4602
4603 * Makefile.in: Adapt sh4-linux target.
4604
af4133b2
ST
46052008-04-29 Ed Schonberg <schonberg@adacore.com>
4606
4607 PR ada/35792
4608 * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
4609 tagged type by an untagged protected or task type.
4610
805100b5 46112008-04-28 Eric Botcazou <ebotcazou@adacore.com>
9e81dbc7 4612 Tristan Gingold <gingold@adacore.com>
805100b5
EB
4613
4614 PR ada/36007
4615 * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
4616 of aliased objects with an unconstrained nominal subtype.
4617 Cap the promotion to the effective alignment of the word mode.
4618
99c2eec1
RW
46192008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4620
4621 * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
4622 (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
4623 Use '&&' instead of ';'.
4624
22a81267
OH
46252008-04-24 Olivier Hainque <hainque@adacore.com>
4626
4627 * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
4628 doesn't require signed arithmetic anymore.
4629
51eed280
PB
46302008-04-23 Paolo Bonzini <bonzini@gnu.org>
4631
4632 * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
4633 (call_to_gnu): Don't set TREE_INVARIANT.
4634 * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
4635
d9126ef8
JS
46362008-04-22 Joel Sherrill <joel.sherrill@oarcorp.com>
4637
4638 * s-osinte-rtems.adb: Add sigalstack function.
4639 * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
4640 function. Add Alternate_Stack and Alternate_Stack_Size.
4641 Add missing process_shared field to pthread_condattr_t
4642 and change ss_low_priority to int from timespec.
4643
0a58c87e
ST
46442008-04-22 Samuel Tardieu <sam@rfc1149.net>
4645
4646 * i-forbla.adb: Link against -llapack and -lblas by default
4647 instead of the private -lgnalasup.
4648
009890be
OH
46492008-04-21 Olivier Hainque <hainque@adacore.com>
4650
4651 Access to most C builtins from Ada
4652 * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
4653 (handle_pure_attribute, handle_novops_attribute,
4654 handle_nonnull_attribute, handle_sentinel_attribute,
4655 handle_noreturn_attribute, handle_malloc_attribute,
4656 handle_type_generic_attribute): New attribute handlers, from C fe.
4657 (gnat_internal_attribute_table): Map the new handlers.
4658 (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
4659 (init_gigi_decls): ... here.
4660 (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
4661 Move to a section dedicated to builtins processing.
4662 (build_void_list_node, builtin_type_for_size): New functions.
4663 (def_fn_type, get_nonnull_operand): Likewise.
4664 (install_builtin_elementary_type, install_builtin_function_types,
4665 install_builtin_attributes): Likewise.
4666 (fake_attribute_handler): Fake handler for attributes we don't
4667 support in Ada.
4668 (def_builtin_1): New function, worker for DEF_BUILTIN.
4669 (install_builtin_functions): New function.
4670 (gnat_install_builtins): Move to the builtins processing section.
4671 Now calling the newly introduced installers.
4672
e871a873
EB
46732008-04-20 Eric Botcazou <ebotcazou@adacore.com>
4674
4675 * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
4676 constant objects, but not exceptions.
4677 * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
4678 compatibility test.
4679 * utils.c (create_var_decl_1): Likewise.
4680 * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
4681 the type when copying to padded object and the source is a constructor.
4682
98ae7998
EB
46832008-04-18 Eric Botcazou <ebotcazou@adacore.com>
4684
4685 * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
4686 alignment, reset it to zero if it would end up not being greater
4687 than that of the type.
4688
3569056b
EB
46892008-04-18 Eric Botcazou <ebotcazou@adacore.com>
4690
4691 * decl.c (maybe_pad_type): Only generate the XVS parallel type if
4692 the padded type has a variable size.
4693
9a089d8b
EB
46942008-04-18 Eric Botcazou <ebotcazou@adacore.com>
4695
4696 * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
4697 target pointer mechanism as soon as the size is not constant.
4698
0cb5c2a7
EB
46992008-04-18 Eric Botcazou <ebotcazou@adacore.com>
4700
4701 * gigi.h (create_var_decl_1): Declare.
4702 (create_var_decl): Turn into a macro invoking create_var_decl_1.
4703 (create_true_var_decl): Likewise.
4704 * utils.c (create_var_decl_1): Make global and reorder parameters.
4705 (create_var_decl): Delete.
4706 (create_true_var_decl): Likewise.
4707
90d6701e
EB
47082008-04-17 Eric Botcazou <ebotcazou@adacore.com>
4709
4710 * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
4711 objects by default.
4712 * fe.h (Debug_Flag_Dot_A): Delete.
4713 * debug.adb (-gnatd.a): Update documentation.
4714
35485e12
ST
47152008-04-17 Samuel Tardieu <sam@rfc1149.net>
4716
4717 * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
4718 "not null" parameter.
4719
111c1cd9
ST
47202008-04-17 Samuel Tardieu <sam@rfc1149.net>
4721
4722 * g-socket.adb: Add a message "IPv6 not supported" to the
4723 Socket_Error exception.
4724
35c91e05
ST
47252008-04-16 Samuel Tardieu <sam@rfc1149.net>
4726
4727 PR ada/29015
4728 * sem_ch12.adb (Instantiate_Type): Check whether the full view of
4729 the type is known instead of the underlying type.
4730
b48a6531
ST
47312008-04-15 Ed Schonberg <schonberg@adacore.com>
4732
4733 PR ada/22387
4734 * exp_ch5.adb (Expand_Assign_Record): Within an initialization
4735 procedure for a derived type retrieve the discriminant values from
4736 the parent using the corresponding discriminant.
4737
462c31ef 47382008-04-15 Samuel Tardieu <sam@rfc1149.net>
9e81dbc7 4739 Gary Dismukes <dismukes@adacore.com>
462c31ef
ST
4740
4741 PR ada/28733
4742 * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
4743 which is not an entity (and hence not a package).
4744 (End_Use_Package): Ditto.
4745
8abe457a
ST
47462008-04-15 Ed Schonberg <schonberg@adacore.com>
4747
4748 PR ada/16086
4749 * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
4750 protected operation that matches the signature, not only an entry, a
4751 regular subprogram or a literal.
4752
29f4754f
EB
47532008-04-15 Eric Botcazou <ebotcazou@adacore.com>
4754
4755 * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
4756 * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
4757 if a size or alignment is specified. Do not take into account
4758 alignment promotions for the computation of the object's size.
4759 <type>: Call maybe_pad_type only if a size or alignment is specified.
4760 (maybe_pad_type): Really reuse the RM_Size of the original type if
4761 requested.
4762 * trans.c (Attribute_to_gnu): Fix a couple of nits.
4763 * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
4764 statements. Use the padded view of the type when copying between
4765 padded objects of the same underlying type.
4766
f3d0f304
RW
47672008-04-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4768
4769 * vms_data.ads: Fix typo in constant.
4770 * gen-soccon.c: Fix typo in error string.
4771 * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
4772 Fix typos.
4773 * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
4774 bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
4775 erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
4776 exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
4777 exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
4778 g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
4779 mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
4780 s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
4781 s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
4782 sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
4783 sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
4784 sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
4785 sinfo.ads: Fix typos in comments.
4786
2efcad9f
RD
47872008-04-14 Robert Dewar <dewar@adacore.com>
4788
4789 * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
4790 to every non-object and change error message.
4791
8f3723e0
RD
47922008-04-14 Robert Dewar <dewar@adacore.com>
4793
4794 * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
4795 * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
4796 directly.
4797
32f7efe1
ST
47982008-04-14 Samuel Tardieu <sam@rfc1149.net>
4799
4800 PR ada/18680
4801 * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
4802 apply pragma Linker_Section on type.
4803
b039b10e
ST
48042008-04-14 Samuel Tardieu <sam@rfc1149.net>
4805
4806 PR ada/16098
4807 * sem_prag.adb (Error_Pragma_Ref): New.
4808 (Process_Convention): Specialized message for non-local
4809 subprogram renaming. Detect the problem in homonyms as well.
4810
cb572b75
ST
48112008-04-14 Samuel Tardieu <sam@rfc1149.net>
4812
4813 PR ada/15915
4814 * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
4815 * sem_ch12.adb (Instantiate_Object): Use it.
4816 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
4817 storage pool denotes a variable as per RM 13.11(15).
4818
17972da7
ST
48192008-04-14 Samuel Tardieu <sam@rfc1149.net>
4820
4821 * sem_util.ads, sem_util.adb (In_Subprogram): New function.
4822 * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
4823
57f80aa9
RE
48242008-04-14 Rolf Ebert <rolf.ebert.gcc@gmx.de>
4825
4826 PR ada/20822
4827 * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
4828 line endings even on non-Unix platforms.
4829
9ff231e2
ST
48302008-04-14 Samuel Tardieu <sam@rfc1149.net>
4831
4832 PR ada/35050
4833 * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
4834 renaming information.
4835
9e81dbc7 48362008-04-13 Samuel Tardieu <sam@rfc1149.net>
92d4508a
ST
4837
4838 PR ada/17985
4839 * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
4840 itself.
4841
12a13f01
RW
48422008-04-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4843
3354f96d
RW
4844 * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
4845 sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
4846 snames.ads, sprint.adb, stand.ads, stringt.ads,
4847 styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
4848 switch.ads, sysdep.c, table.adb, table.ads,
4849 targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
4850 trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
4851 uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
4852 vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
4853 widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
4854 xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
4855 Fix comment typos.
4856
f3d57416
RW
4857 * sem_ch10.adb, sem_ch10.ads,
4858 sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
4859 sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
4860 sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
4861 sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
4862 sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
4863 sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
4864 sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
4865 sem_warn.ads: Fix comment typos.
4866
12a13f01
RW
4867 * s-secsta.adb, s-sequio.ads, s-shasto.ads,
4868 s-soflin.ads, s-stalib.ads, s-stausa.adb,
4869 s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
4870 s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
4871 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
4872 s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
4873 s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
4874 s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
4875 s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
4876 s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
4877 s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
4878 s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
4879 s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
4880 s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
4881 s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
4882 scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
4883 sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
4884 sem_cat.adb, sem_cat.ads: Fix comment typos.
4885
2b699ab1
JS
48862008-04-12 Joel Sherrill <joel@oarcorp.com>
4887
4888 PR ada/35825
4889 * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
4890
1e273538
AC
48912008-04-12 Arnaud Charlet <charlet@adacore.com>
4892
4893 * s-linux-hppa.ads: Fix syntax errors.
4894
276e95ca
RW
48952008-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4896
4897 * gnat_ugn.texi: Fix typos.
4898 * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
4899 restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
4900 s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
4901 s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
4902 s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
4903 s-finimp.adb, s-finroo.ads, s-fishfl.ads,
4904 s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
4905 s-hibaen.ads, s-htable.ads, s-imgcha.adb,
4906 s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
4907 s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
4908 s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
4909 s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
4910 s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
4911 s-osinte-darwin.ads, s-osinte-freebsd.ads,
4912 s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
4913 s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
4914 s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
4915 s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
4916 s-parame-hpux.ads, s-parame-vms-alpha.ads,
4917 s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
4918 s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
4919 s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
4920 s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
4921 s-rident.ads: Fix comment typos.
4922
ce4e59c4
ST
49232008-04-09 Samuel Tardieu <sam@rfc1149.net>
4924
4925 PR ada/28305
4926 * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
4927 environment if generic instance is a top-level one.
4928
6d21c8af
DR
49292008-04-09 Doug Rupp <rupp@adacore.com>
4930
4931 * decl.c (validate_size): Set minimum size for fat pointers same as
4932 access types. Code clean ups.
4933
4934 * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
4935 (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
4936
4937 * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
4938
4939 * s-crtl.ads (malloc32) New function, alias for malloc
4940 (realloc32) New function, alias for realloc
4941
4942 * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
4943
4944 * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
4945 allocator size is 32 and default pointer size is 64.
4946 (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
4947 lhs type if smaller, whatever the modes.
4948
4949 * gigi.h (malloc32_decl): New macro definition
4950
4951 * utils.c (init_gigi_decls): New malloc32_decl
4952 Various code clean ups.
4953
4954 * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
4955 Task_Address vice System.Address.
4956
4957 * s-taspri-vms.ads: Import System.Aux_DEC
4958 (Task_Address): New subtype of System.Aux_DEC.Short_Address
4959 (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
4960
4961 * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
4962 Task_Address vice System.Address.
4963
4964 * s-inmaop-vms.adb: Import System.Task_Primitives
4965 (To_Address): Unchecked convert to Task_Address vice System.Address
4966
4967 * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
4968 expires now.
4969 (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
4970 (To_Address) Unchecked convert to Task_Address vice System.Address
4971
4972 * s-tpopde-vms.adb: Remove unnecessary warning pragmas
4973
4974 * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
4975
581edf92
EB
49762008-04-08 Eric Botcazou <ebotcazou@adacore.com>
4977
4978 * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
4979 (fdesc_type_node): Define.
4980 (null_fdesc_node): Likewise.
4981 * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
4982 uses descriptors for vtables and the type comes from a dispatch table,
4983 return the descriptor type.
4984 * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
4985 uses descriptors for vtables and the type comes from a dispatch table,
4986 build a descriptor in the static case and copy the existing one in the
4987 non-static case.
4988 (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
4989 the type is a pointer-to-subprogram coming from a dispatch table,
4990 return the null descriptor.
4991 <N_Unchecked_Type_Conversion>: If the target uses descriptors for
4992 vtables, the source type is the descriptor type and the target type
4993 is a pointer type, first build the pointer.
4994 * utils.c (init_gigi_decls): If the target uses descriptors for vtables
4995 build the descriptor type and the null descriptor.
4996
e1da2b17
EB
49972008-04-08 Eric Botcazou <ebotcazou@adacore.com>
4998
4999 * decl.c (prepend_attributes): Fix typo.
5000 * trans.c (Pragma_to_gnu): Likewise.
5001 * utils.c (gnat_genericize): Likewise.
5002
2b3dffa6 50032008-04-08 Eric Botcazou <ebotcazou@adacore.com>
9e81dbc7 5004 Richard Kenner <kenner@adacore.com>
2b3dffa6
EB
5005
5006 * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
5007 * decl.c (gnat_to_gnu_entity): Adjust for above change.
5008 <E_Record_Type>: Try to get a better form of the component for
5009 packing, even if it has an integral mode.
5010 <E_Record_Subtype>: Likewise.
5011 * trans.c (gnat_to_gnu): Do not require BLKmode for the special
5012 exception suppressing the final conversion between record types.
5013
ba3f46d0
EB
50142008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5015
5016 * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
5017 alignment for space, promote the alignment of non-scalar variables with
5018 no size and alignment.
5019 * gigi.h (gnat_types_compatible_p): Declare.
5020 * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
5021 * trans.c (gnat_to_gnu): Revert revision 129339 change. Minor cleanup.
5022 * utils.c (gnat_types_compatible_p) : New predicate.
5023 (convert): Use it throughout to test for cases where a mere view
5024 conversion is sufficient.
5025 * utils2.c (build_binary_op): Minor tweaks.
5026 (build_unary_op): Likewise.
5027
373140ef
EB
50282008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5029
5030 * decl.c (adjust_packed): Expand comment.
5031
ea081ad7
AC
50322008-04-08 Arnaud Charlet <charlet@adacore.com>
5033
5034 * s-tasuti.ads: Use Task_Address instead of System.Address.
5035
5036 * makeutl.adb (Path_Or_File_Name): New function
5037
5038 * nlists.ads, itypes.ads: Update comments.
5039
5040 * s-crtl.ads (malloc32, realloc32): New functions.
5041
5042 * s-auxdec.ads (Short_Address_Size): New constant.
5043
5044 * a-taside.adb, s-tasdeb.adb: Use Task_Address.
5045
5046 * s-ststop.ads, s-ststop.adb: New file.
5047
5048 * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
5049 Minor reformatting.
5050
d563d3f0
AC
50512008-04-08 Pascal Obry <obry@adacore.com>
5052
5053 * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
5054 (Stop_Bits_Number): New type.
5055 (Parity_Check): Likewise.
5056 (Set): Add parameter to set the number of stop bits and
5057 the parity. Parameter timeout is now a duration instead
5058 of a plain integer.
5059
5060 * g-sercom-linux.adb:
5061 Implement the stop bits and parity support for GNU/Linux.
5062 Fix handling of timeout, it must be given in tenth of seconds.
9e81dbc7 5063
d563d3f0
AC
5064 * g-sercom-mingw.adb:
5065 Implement the stop bits and parity support for Windows.
5066 Use new s-win32.ads unit instead of declaring Win32 services
5067 directly into this body.
5068 Update handling of timeout as now a duration.
5069
5070 * s-win32.ads, s-winext.ads: New files.
5071
50722008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5073 Arnaud Charlet <charlet@adacore.com>
5074
5075 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
5076
5077 s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
5078 s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
5079
5080 * s-osinte-lynxos-3.ads,
5081 (Alternate_Stack): Remove when not needed. Simplify declaration
5082 otherwise.
5083 (Alternate_Stack_Size): New constant.
5084
5085 s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
5086 'Unrestricted_Access.
5087
5088 * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
5089 s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
5090 s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
5091 s-osinte-solaris.ads, s-osinte-vms.ads
5092 (SA_ONSTACK): New constant.
5093 (stack_t): New record type.
5094 (sigaltstack): New imported function.
5095 (Alternate_Stack): New imported variable.
5096 (Alternate_Stack_Size): New constant.
5097
5098 * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
5099
5100 * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
ea081ad7
AC
5101 s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
5102 s-taspri-vms.ads (Task_Address): New subtype of System.Address
d563d3f0
AC
5103 (Task_Address_Size): New constant size of System.Address
5104 (Alternate_Stack_Size): New constant.
5105
5106 * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
5107 (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
5108 Establish the alternate stack if the platform makes use of n alternate
5109 signal stack for stack overflows.
5110 (Create_Task): Take into account the alternate stack in the stack size.
5111 (Initialize): Save the address of the alternate stack into the ATCB for
5112 the environment task.
5113 (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
5114
ea081ad7 5115 * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
d563d3f0
AC
5116
5117 * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
5118
9e81dbc7 5119 * s-intman-posix.adb:
d563d3f0
AC
5120 (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
5121 alternate signal stack for stack overflows.
5122
5123 * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
5124 x86-64, adjust the saved value of the stack pointer if the signal was
5125 raised by a stack checking probe.
5126 (HP-UX section): Use global __gnat_alternate_stack as signal handler
5127 stack and only for SIGSEGV.
5128 (Linux section): Likewise on x86 and x86-64.
5129 [VxWorks section]
5130 (__gnat_map_signal): Now static.
5131 (__gnat_error_handler): Not static any more.
5132 (__gnat_adjust_context_for_raise): New function. Signal context
5133 adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
5134 propagation circuitry.
5135 (__gnat_error_handler): Second argument of a sigaction handler is a
5136 pointer, not an int, and is unused.
5137 Adjust signal context before mapping to exception.
5138 Install signal handlers for LynxOS case.
5139
5140 * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
5141 (Task_Id): Set size to Task_Address_Size
5142 (To_Task_id): Unchecked convert from Task_Address vice System.Address
5143 (To_Address): Unchecked convert to Task_Address vice System.Address
5144
5145 * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
5146 address into the ATCB if the platform makes use of an alternate signal
5147 stack for stack overflows.
5148 (Free_Task): Add call to Finalize_Attributes_Link.
5149 Add argument Relative_Deadline to pass the value specified for
5150 the task. This is not yet used for any target.
5151
5152 * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
5153 the value specified for the task.
5154
51552008-04-08 Arnaud Charlet <charlet@adacore.com>
5156
5157 (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
5158 (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
5159 s-vxwext-rtp.adb): New files.
5160
9e81dbc7 5161 * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
d563d3f0
AC
5162 Minor updates to accomodate changes above.
5163
51642008-04-08 Pascal Obry <obry@adacore.com>
5165
5166 * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
5167 s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
5168 Use new s-win32.ads unit instead of declaration
5169 from s-osinte-mingw.ads.
9e81dbc7 5170
d563d3f0
AC
5171 * s-osinte-mingw.ads:
5172 Move all non tasking based interface to s-win32.ads.
9e81dbc7 5173
d563d3f0
AC
5174 * s-osprim-mingw.adb:
5175 Remove duplicated declarations and use s-win32.ads
5176 unit instead.
5177
51782008-04-08 Vincent Celier <celier@adacore.com>
5179 Arnaud Charlet <charlet@adacore.com>
5180
5181 * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
5182 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
5183 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
5184 mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
5185 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
5186
5187 * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
5188 mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
5189 mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
5190 mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
5191 mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
5192 mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
5193 mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
5194 mlib-tgt-specific-mingw.adb: New names.
5195
9e81dbc7 5196 * Makefile.in:
d563d3f0
AC
5197 On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
5198 Get rid of gnatbl.
5199 (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
5200 Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
5201 Minor updates for VMS
5202
ea081ad7
AC
5203 * gnatbl.c: Removed.
5204
d563d3f0
AC
52052008-04-08 Thomas Quinot <quinot@adacore.com>
5206
5207 * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
5208 g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
5209 gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
5210 a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
5211 s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
5212 ASCII.NUL throughout.
5213
52142008-04-08 Arnaud Charlet <charlet@adacore.com>
5215 Matthew Heaney <heaney@adacore.com>
5216
5217 * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
5218 renaming.
5219
9e81dbc7 5220 * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
d563d3f0
AC
5221 a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
5222 to convention for non-RM specs.
5223 Add descriptive header, and documented each operation
5224 document each operation
5225
52262008-04-08 Robert Dewar <dewar@adacore.com>
5227 Bob Duff <duff@adacore.com>
5228 Gary Dismukes <dismukes@adacore.com>
5229 Ed Schonberg <schonberg@adacore.com>
5230
5231 * alloc.ads: Add entries for Obsolescent_Warnings table
5232
5233 * einfo.ads, einfo.adb: Minor reformatting.
5234 (Is_Discriminal): New subprogram.
5235 (Is_Prival): New subprogram.
5236 (Is_Protected_Component): New subprogram.
5237 (Is_Protected_Private): Removed.
5238 (Object_Ref, Set_Object_Ref): Removed.
5239 (Prival, Set_Prival): Change assertion.
5240 (Privals_Chain, Set_Privals_Chain): Removed.
5241 (Prival_Link, Set_Prival_Link): New subprogram.
5242 (Protected_Operation, Set_Protected_Operation): Removed.
5243 (Protection_Object, Set_Protection_Object): New subprogram.
5244 (Write_Field17_Name): Remove case for Object_Ref.
5245 (Write_Field20_Name): Add case for Prival_Link.
5246 (Write_Field22_Name): Remove case for Protected_Operation,
5247 Privals_Chain.
5248 Add case for Protection_Object.
5249 (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
5250 so clients
5251 (Overlays_Constant): New flag
5252 (Is_Constant_Object): New predicate
5253 (Is_Standard_Character_Type): New predicate
5254 (Optimize_Alignment_Space): New flag
5255 (Optimize_Alignment_Time): New flag
5256 (Has_Postconditions): New flag
5257 (Obsolescent_Warrning): Field removed
5258 (Spec_PPC_List): New field
5259 (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
5260 subprograms to get and set the relative deadline associated to a task.
5261
5262 * exp_attr.adb (May_Be_External_Call): Account for the case where the
5263 Access attribute is part of a named parameter association.
5264 (Expand_Access_To_Protected_Op): Test for the attribute occurring
5265 within an init proc and use that directly as the scope rather than
5266 traversing up to the protected operation's enclosing scope. Only apply
5267 assertion on Is_Open_Scopes in the case the scope traversal is done.
5268 For the init proc case use the address of the first formal (_init) as
5269 the protected object reference.
5270 Implement Invalid_Value attribute
5271 (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
5272 contents of the dispatch table there is no need to duplicate the
5273 itypes associated with record types (i.e. the implicit full view
5274 of private types).
5275 Implement Enum_Val attribute
5276 (Expand_N_Attribute_Reference, case Old): Properly handle appearence
5277 within _Postconditions procedure
5278 (Expand_N_Attribute_Reference, case Result): Implement new attribute
5279
5280 * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
5281 a return statement calls a function that is not available in
5282 configurable runtime.
5283 (Analyze_If_Statement): don't optimize simple True/False cases in -O0
5284 (Expand_Non_Function_Return): Generate call to _Postconditions proc
5285 (Expand_Simple_Function_Return): Ditto
5286
5287 * frontend.adb: Add call to Sem_Aux.Initialize
5288
5289 * sem_aux.ads, sem_aux.adb: New file.
5290
5291 * par-prag.adb: Add entries for pragmas Precondition/Postcondition
5292 Add new Pragma_Relative_Deadline.
5293 Add support for pragmas Check and Check_Policy
5294
5295 * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
5296 (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
5297 (Analyze_Attribute): In case of attributes 'Alignment and 'size add
5298 missing check because they are not allowed in CPP tagged types.
5299 Add Sure parameter to Note_Possible_Modification calls
5300 Add implementation of Invalid_Value attribute
5301 Implement new attribute Has_Tagged_Values
5302 Implement Enum_Val attribute
5303 (Analyze_Attribute, case Range): Set Name_Req True for prefix of
5304 generated attributes.
5305 (Analyze_Attribute, case Result): If prefix of the attribute is
5306 overloaded, it always resolves to the enclosing function.
5307 (Analyze_Attribute, case Result): Properly deal with analysis when
5308 Postconditions are not active.
5309 (Resolve_Attribute, case Result): Properly deal with appearence during
5310 preanalysis in spec.
5311 Add processing for attribute Result
5312
5313 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
5314 for operators.
5315 (Analyze_Subprogram_Body): Install private_with_clauses when the body
5316 acts as a spec.
5317 (Check_Inline_Pragma): recognize an inline pragma that appears within
5318 the subprogram body to which it applies.
5319 (Analyze_Function_Return): Check that type of the expression of a return
5320 statement in a function with a class-wide result is not declared at a
5321 deeper level than the function.
5322 (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
5323 (Verify_Overriding_Indicator): Handle properly subprogram bodies for
5324 user- defined operators.
5325 (Install_Formals): Moved to spec to allow use from Sem_Prag for
5326 analysis of precondition/postcondition pragmas.
5327 (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
5328 Last_Formal, along with lots of comments on what this is about
5329 (Analyze_Subprogram_Body): Fix case where we move entities from the
5330 spec to the body when there are no body entities (now possible with
5331 precondition and postcondition pragmas).
5332 (Process_PPCs): New procedure
5333 (Analyze_Subprogram_Body): Add call to Process_PPCs
5334
5335 * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
5336 clause.
5337 (Pop_Scope): Restore Check_Policy_List on scope exit
5338 (Push_Scope): Save Check_Policy_List on scope entry
5339 Change name In_Default_Expression => In_Spec_Expression
5340 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5341 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5342 (Analyze_Object_Renaming): Allow 'Reference as object
5343 (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
5344 (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
5345 of restriction identifier.
5346 Add Sure parameter to Note_Possible_Modication calls
5347
5348 * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
5349 Don't check for primitive operations when calling Rep_Item_Too_Late.
5350 (Process_Import_Or_Interface): Do not place flag on formal
5351 subprograms.
5352 (Analyze_Pragma, case Export): If the entity is a deferred constant,
5353 propagate information to full view, which is the one elaborated by the
5354 back-end.
5355 (Make_Inline): the pragma is effective if it applies to an internally
5356 generated subprogram declaration for a body that carries the pragma.
5357 (Analyze_Pragma, case Optimize_Alignment): Set new flag
5358 Optimize_Alignment_Local.
5359 (Analyze_PPC_In_Decl_Part): New procedure
5360 (Get_Pragma_Arg): Moved to outer level
5361 (Check_Precondition_Postcondition): Change to allow new visibility
5362 rules for package spec
5363 (Analyze_Pragma, case Check_Policy): Change placement rules to be
5364 same as pragma Suppress/Unsuppress.
5365 Change name In_Default_Expression => In_Spec_Expression
5366 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5367 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5368 (Check_Precondition_Postcondition): Do proper visibility preanalysis
5369 for the case of these pragmas appearing in the spec.
5370 (Check_Enabled): New function
5371 (Initialize): New procedure
5372 (Tree_Read): New procedure
5373 (Tree_Write): New procedure
5374 (Check_Precondition_Postcondition): New procedure
5375 Implement pragmas Check and Check_Policy
5376 Merge Assert processing with Check
5377
5378 * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
5379 New warning flag -gnatw.e
5380
5381 * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
5382 returning whether a task (or main procedure) has a pragma
5383 Relative_Deadline.
5384 (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
5385 (or main procedure) has a pragma Relative_Deadline.
5386 Add Next_Pragma field to N_Pragma node
5387 (PPC_Enabled): New flag
5388 (Next_Pragma): Now used for Pre/Postcondition processing
5389
5390 * snames.h, snames.ads, snames.adb: New standard name
5391 Inherit_Source_Path
5392 Add entry for 'Invalid_Value attribute
5393 Add entry for new attribute Has_Tagged_Values
5394 Add entry for Enum_Val attribute
5395 Add new standard names Aggregate, Configuration and Library.
5396 Add _Postconditions
5397 Add _Result
5398 Add Pragma_Precondition
5399 Add Pragma_Postcondition
5400 Add Attribute_Result
5401 New standard name Archive_Builder_Append_Option
5402 (Preset_Names): Add _relative_deadline and relative_deadline definitions
5403 There was also a missing non_preemptive_within_priorities.
5404 (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
5405 Relative_Deadline.
5406 Add support for pragmas Check and Check_Policy
5407
5408 * tree_gen.adb: Call Sem_Aux.Tree_Write
5409
5410 * tree_in.adb: Call Sem_Aux.Tree_Read
5411
5412 * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
5413 sequence
5414
5415 * exp_intr.adb (Expand_Source_Info): New Build_Location calling
5416 sequence
5417
5418 * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
5419 (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
5420 Relative_Deadline.
5421 (Expand_Pragma_Check): New procedure
5422
5423 * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
5424 buffer.
5425
5426 * sinfo.adb (PPC_Enabled): New flag
5427
54282008-04-08 Robert Dewar <dewar@adacore.com>
5429 Gary Dismukes <dismukes@adacore.com>
5430 Javier Miranda <miranda@adacore.com>
5431 Ed Schonberg <schonberg@adacore.com>
5432
5433 * fe.h: Remove global Optimize_Alignment flag, no longer used
5434
5435 * layout.adb: Test Optimize_Alignment flags rather than global switch
5436
5437 * lib.ads, lib.adb: New OA_Setting field in library record
5438
5439 * lib-load.adb: New OA_Setting field in library record
5440
5441 * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
5442 units mentioned in limited_with_ clauses in the ali file, with an
5443 'Y' marker.
5444 New Ox fields in U line
5445
5446 * opt.adb: New flag Optimize_Alignment_Local
5447 (Check_Policy_List[_Config]): New flags
5448
5449 * opt.ads (Invalid_Value_Used): New flag
5450 New switch Optimize_Alignment_Local
5451 (Warn_On_Parameter_Order): New flag
5452 (Check_Policy_List[_Config]): New flags
5453
5454 * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
5455 limited_with clauses.
5456 New data structures for Optimize_Alignment
5457
5458 * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
5459 New procedure
5460 (Check_Consistent_Optimize_Alignment): Rework for new structure
5461 (Check_Consistent_Restrictions): Fix incorrect error message
5462
5463 sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
5464 created class-wide type (to the Parent field of the specific type).
5465 (Install_Siblings): Handle properly private_with_clauses on subprogram
5466 bodies and on generic units.
5467 (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
5468 illegal limited_with_clause that names a non-existent package.
5469 (Check_Body_Required): Determine whether a unit named a limited_with
5470 clause needs a body.
5471 (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
5472 Capture Optimize_Alignment settings to set new OA_Setting field in
5473 library record.
5474 (Build_Limited_Views): Include task and protected type declarations.
5475
5476 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
5477 case of a possible constant redeclaration where the current object is
5478 an entry index constant.
5479 (Analyze_Object_Declaration): Generate an error in case of CPP
5480 class-wide object initialization.
5481 (Analyze_Object_Declaration): Add extra information on warnings for
5482 declaration of unconstrained objects.
5483 (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
5484 conflicts with the setting of Stored_Constraint in the case where the
5485 access type entity has already been created as an E_Incomplete_Type due
5486 to a limited with clause.
5487 Use new Is_Standard_Character_Type predicate
5488 (Analyze_Object_Declaration): Apply access_constant check only after
5489 expression has been resolved, given that it may be overloaded with
5490 several access types.
5491 (Constant_Redeclaration): Additional legality checks for deferred
5492 constant declarations tha involve anonymous access types and/or null
5493 exclusion indicators.
5494 (Analyze_Type_Declaration): Set Optimize_Alignment flags
5495 (Analyze_Subtype_Declaration): Ditto
5496 (Analyze_Object_Declaration): Ditto
5497 (Analyze_Object_Declaration): Don't count tasks in generics
5498 Change name In_Default_Expression => In_Spec_Expression
5499 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5500 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5501 (Process_Discriminants): Additional check for illegal use of default
5502 expressions in access discriminant specifications in a type that is not
5503 explicitly limited.
5504 (Check_Abstract_Overriding): If an inherited function dispaches on an
5505 access result, it must be overridden, even if the type is a null
5506 extension.
5507 (Derive_Subprogram): The formals of the derived subprogram have the
5508 names and defaults of the parent subprogram, even if the type is
5509 obtained from the actual subprogram.
5510 (Derive_Subprogram): In the presence of interfaces, a formal of an
5511 inherited operation has the derived type not only if it descends from
5512 the type of the formal of the parent operation, but also if it
5513 implements it. This is relevant for the renamings created for the
5514 primitive operations of the actual for a formal derived type.
5515 (Is_Progenitor): New predicate, to determine whether the type of a
5516 formal in the parent operation must be replaced by the derived type.
5517
5518 * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
5519 predicate recursive to handle components that have a user-defined
5520 Initialize procedure. Handle controlled derived types whose ancestor
5521 has a user-defined Initialize procedured.
5522 (Note_Possible_Modification): Add Sure parameter, generate warning if
5523 sure modification of constant
5524 Use new Is_Standard_Character_Type predicate
5525 (Find_Parameter_Type): when determining whether a protected operation
5526 implements an interface operation, retrieve the type of the formal from
5527 the entity when the formal is an access parameter or an
5528 anonymous-access-to-subprogram.
5529 Move Copy_Parameter_List to sem_util, for use when building stubbed
5530 subprogram bodies.
5531 (Has_Access_Values): Tagged types now return False
5532 (Within_HSS_Or_If): New procedure
5533 (Set_Optimize_Alignment_Flags): New procedure
5534 Change name In_Default_Expression => In_Spec_Expression
5535 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5536 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5537
55382008-04-08 Tristan Gingold <gingold@adacore.com>
5539
5540 * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
5541
55422008-04-08 Tristan Gingold <gingold@adacore.com>
5543
5544PR ada/10768
5545
5546 * cuintp.c: Fix 16 bits issue for AVR.
5547 On AVR, integer is 16 bits, so it can't be used to do math with
5548 Base (=32768).
5549 So use long_integer instead.
5550
55512008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
5552
5553 * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
5554 System.OS_Primitives.
5555 Change type of various constants, parameters and local variables from
5556 Time to representation type OS_Time.
5557 (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
5558 Remove the declaration of constant Mili_F from several routines. New
5559 body for internal package Conversions_Operations.
5560 (Time_Of): Add default parameters for several formals.
5561
5562 * a-caldel.adb: Minor reformatting
5563
5564 * a-calend.ads, a-calend.adb: New body for internal package
5565 Conversions_Operations.
5566 (Time_Of): Add default parameters for several formals.
5567
5568 * Makefile.rtl: Add a-ststop
5569 Add Ada.Calendar.Conversions to the list of runtime files.
5570 Add g-timsta
5571
5572 * a-calcon.adb, a-calcon.ads: New files.
5573
55742008-04-08 Jose Ruiz <ruiz@adacore.com>
5575 Tristan Gingold <gingold@adacore.com>
5576
5577 * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
5578 (Install_Restricted_Handlers): New procedure
5579 which is a simplified version of Install_Handlers that does not store
5580 previously installed.
5581
5582 * s-interr-vxworks.adb: Fix ACATS cxc3001
5583 On VxWorks interrupts can't be detached.
5584 (Install_Restricted_Handlers): New procedure.
5585
5586 * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
5587 procedure.
5588
55892008-04-08 Olivier Hainque <hainque@adacore.com>
5590
5591 * s-intman-vxworks.ads, s-intman-vxworks.adb
5592 (Map_And_Raise_Exception): Remove. Was an import of only part of the
5593 required services already implemented elsewhere.
5594 (Notify_Exception): Delete body, import __gnat_error_handler instead.
5595 (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
5596 argument passed to the handler, which we need for ZCX propagation
5597 purposes.
5598
55992008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
5600
5601 * adaint.h, adaint.c (__gnat_current_time_string): New routine.
5602
5603 * g-timsta.adb, g-timsta.ads: New files.
5604
56052008-04-08 Robert Dewar <dewar@adacore.com>
5606
5607 * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
5608 (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
5609 (Raise_Exception_Always): Fix documentation accordingly
5610
56112008-04-08 Robert Dewar <dewar@adacore.com>
5612
5613 * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
5614 Stream_Convert)
5615
5616 * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
5617 FOnly
5618
56192008-04-08 Javier Miranda <miranda@adacore.com>
5620 Robert Dewar <dewar@adacore.com>
5621 Ed Schonberg <schonberg@adacore.com>
5622
5623 * a-tags.adb (Register_Interface_Offset): New subprogram.
5624 (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
5625 (To_Predef_Prims_Table_Ptr): Removed.
5626 (Acc_Size): Removed.
5627 (To_Acc_Size): Removed.
5628 (Parent_Size): Modified to the call the subprogram returning the size of
5629 the parent by means of the new TSD component Size_Func.
5630
5631 * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
5632 (DT_Offset_To_Top_Offset): New constant value that is used to generate
5633 code referencing the Offset_To_Top component of the dispatch table's
5634 prologue.
5635 (Prim_Ptr): New declaration of access to procedure. Used to avoid the
5636 use of 'address to initialize dispatch table slots.
5637 (Size_Func): New component of the TSD. Used by the run-time to call the
5638 size primitive of the tagged type.
5639
5640 * checks.adb (Apply_Access_Check): Avoid check when accessing the
5641 Offset_To_Top component of a dispatch table.
5642 (Null_Exclusion_Static_Checks): If the non-null access type appears in a
5643 deferred constant declaration. do not add a null expression, to prevent
5644 spurious errors when full declaration is analyzed.
5645 (Apply_Discriminant_Check): If both discriminant constraints share a
5646 node which is not static but has no side effects, do not generate a
5647 check for that discriminant.
5648 (Generate_Index_Checks): Set Name_Req to true in call to duplicate
5649 subexpr, since the prefix of an attribute is a name.
5650
5651 * checks.ads: Fix nit in comment.
5652
5653 * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
5654 and body of predefined primitives in case of CPP tagged type
5655 derivations.
5656 (Freeze_Type): Deal properly with no storage pool case
5657 (Make_Predefined_Primitive_Specs): Generate specification of abstract
5658 primitive Deep_Adjust if a nonlimited interface is derived from a
5659 limited interface.
5660 (Build_Dcheck_Functions): Create discriminant-checking functions only
5661 for variants that have some component(s).
5662 (Build_Slice_Assignment): In expanded code for slice assignment, handle
5663 properly the case where the slice bounds extend to the last value of the
5664 underlying representation.
5665 (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
5666 (Is_Variable_Size_Record): An array component has a static size if
5667 index bounds are enumeration literals.
5668
5669 * exp_disp.adb (Make_DT): Use the first subtype to determine whether
5670 an external tag has been specified for the type.
5671 (Building_Static_DT): Add missing support for private types.
5672 (Make_DT): Add declaration of Parent_Typ to ensure consistent access
5673 to the entity associated with the parent of Typ. This is done to
5674 avoid wrong access when the parent is a private type.
5675 (Expand_Interface_Conversion): Improve error message when the
5676 configurable runtime has no support for dynamic interface conversion.
5677 (Expand_Interface_Thunk): Add missing support to interface types in
5678 configurable runtime.
5679 (Expand_Dispatching_Call): remove obsolete code.
5680 (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
5681 ensure that all subtypes and aggregates associated with dispatch
5682 tables have the attribute Is_Dispatch_Table_Entity set to true.
5683 (Register_Primitive): Rename one variable to improve code reading.
5684 Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
5685 of the pointer to the 'size primitive in the TSD.
5686
5687 * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
5688 (RE_Offset_To_Top_Ptr): New entity.
5689 (RE_Register_Interface_Offset): New entity.
5690 (RE_Set_Dynamic_Offset_To_Top): New entity.
5691 (RE_Set_Offset_To_Top): Removed entity.
5692 (RE_Prim_Ptr): New entity
5693 (RE_Size_Func): New entity
5694 (RE_Size_Ptr): New entity
5695 (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
5696 (Ada_Dispatching_Child): Define this new subrange.
5697 (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
5698 RE_Time_Span, and RE_Time_Span_Zero).
5699 (RE_Unit_Table): Add new required run-time calls
5700
5701 * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
5702 children.
5703
5704 * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
5705 (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
5706 initializes the Offset_To_Top component of a dispatch table.
5707 (Build_Predef_Prims): Removed.
5708 (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
5709 its actual code.
5710 (Build_Set_Size_Function): New subprogram.
5711
5712 * exp_ch13.adb: Do not generate storage variable for storage_size zero
5713 (Expand): Handle setting/restoring flag Inside_Freezing_Actions
5714
57152008-04-08 Robert Dewar <dewar@adacore.com>
5716
5717 * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
5718 computing Fore when Exp > 0
5719
57202008-04-08 Robert Dewar <dewar@adacore.com>
5721
5722 * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
5723
5724 * errout.adb: Remove Big_String_Ptr declarations (now in Types)
5725 Change name Is_Style_Msg to Is_Style_Or_Info_Msg
5726
5727 * fmap.adb: Remove Big_String declarations (now in Types)
5728 (No_Mapping_File): New Boolean global variable
5729 (Initialize): When mapping file cannot be read, set No_Mapping_File to
5730 False.
5731 (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
5732 tables were empty before adding entries, open the mapping file
5733 with Truncate = True, instead of delete/re-create.
5734
5735 * fname-sf.adb: Remove Big_String declarations (now in Types)
5736
5737 * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
9e81dbc7 5738 s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
d563d3f0
AC
5739 big pointer types
5740
5741 * table.ads: Add for Table_Ptr'Storage_Size use 0
5742
5743 * types.ads: Add Big_String declarations
5744 Add Size_Clause of zero for big pointer types
5745
57462008-04-08 Vincent Celier <celier@adacore.com>
5747
5748 * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
5749 (Usage): Add line for switch --subdirs=
5750 Add new switch -eL, to follow symbolic links when processing project
5751 files.
5752
5753 * gnatcmd.adb: Process switches -eL and --subdirs=
5754 (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
5755 Program_Name to get proper tool names when AAMP_On_Target is set.
5756 (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
5757 AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
5758 Osint.Program_Name).
5759
5760 * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
5761 (Usage): Add lines for switches -eL and --subdirs=
5762
5763 * makeusg.adb: Add line for switch --subdirs=
5764
9e81dbc7 5765 * prj.ads:
d563d3f0
AC
5766 (Source_Data): New Boolean component Compiled, defaulted to True
5767 (Empty_File_Name: New global variable in private part, initialized in
5768 procedure Initialize.
5769 (Subdirs_Option): New constant string
5770 (Subdirs): New String_Ptr global variable
5771 (Language_Config): New component Include_Compatible_Languages
5772 (Project_Qualifier): New type for project qualifiers
5773 (Project_Data): New component Qualifier
5774 (Project_Configuration): New component Archive_Builder_Append_Option
5775
5776 * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
5777 another imported project indicate the name of this imported project.
5778 (Check_File): When a unit is in two project files, indicate the project
5779 names and the paths of the source files for each project.
5780 (Add_Source): Set Compiled to False if compiler driver is empty. Only
5781 set object, dependency and switches file names if Compiled is True.
5782 (Process_Compiler): Allow the empty string for value of attribute Driver
5783 (Get_Directories): When Subdirs is not null and Object_Dir is not
5784 specified, locate and create if necessary the actual object dir.
5785 (Locate_Directory): When Subdirs is not empty and Create is not the
5786 empty string, locate and create if necessary the actual directory
5787 as a subdirectory of directory Name.
5788 (Check_Library_Attributes.Check_Library): Allow a project where the only
5789 "sources" are header files of file based languages to be imported by
5790 library projects, in multi-language mode (gprbuild).
5791 (Check_Library_Attributes.Check_Library): In multi-language mode
5792 (gprbuild), allow a library project to import a project with no
5793 sources, even when this is not declared explicitly.
5794 (Check_If_Externally_Built): A virtual project extending an externally
5795 built project is also externally built.
5796 (Check_Library_Attributes): For a virtual project extending a library
5797 project, inherit the library directory.
5798 (Process_Project_Level_Array_Attributes): Process new attribute
5799 Inherit_Source_Path.
5800 For projects with specified qualifiers "standard", "library" or
5801 "abstract", check that the project conforms to the qualifier.
5802 (Process_Project_Level_Simple_Attributes): Process new attribute
5803 Archive_Builder_Append_Option.
5804
5805 * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
5806 (Normalize_Compiler_Switches): Only keep compiler switches that are
5807 passed to gnat1 by the gcc driver and that are stored in the ALI file
5808 by gnat1.
5809 Do not take into account switc -save-temps
5810
5811 * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
5812 gprmake is called with -eL.
5813 (Scan_Arg): Recognize switch -eL
5814 (Usage): Add line for switch -eL
5815
5816 * prj.adb (Initialize): Initialize Empty_File_Name
5817 (Project_Empty): New component Qualifier
5818
5819 * prj-attr.ads, prj-attr.adb: New project level attribute
5820 Inherit_Source_Path.
5821 New project level attribute Archive_Builder_Append_Option
5822
5823 * prj-dect.adb: Replace System.Strings by GNAT.Strings.
5824
5825 * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
5826 <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
5827 upward compatibility.
5828
5829 * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
5830 each Trying ..." on different lines.
5831 (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
5832 is "configuration" when not in configuration. Fail when in configuration
5833 when a specified qualifier is other than "configuration".
5834
5835 * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
5836 full associative array together.
5837 (Recursive_Process): Put the project qualifier in the project data
9e81dbc7 5838
d563d3f0
AC
5839 * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
5840 (Set_Project_Qualifier_Of): New procedure
5841
58422008-04-08 Robert Dewar <dewar@adacore.com>
5843
5844 * errout.ads: Update comments for new handling of info: messages
5845
5846 * erroutc.adb (Matches): New procedure
5847 (Warning_Specifically_Suppressed): Modified to handle multiple * chars
5848 (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
5849 info messages as well as style messages.
5850
5851 * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
5852
5853 * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
5854 subprograms.
5855 (Check_A_Call): Special "info: " warnings now have ? in the text
5856 (Elab_Warning): Use info message in static case
5857
58582008-04-08 Ed Schonberg <schonberg@adacore.com>
5859
5860 * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
5861 whether an array aggregate with static bounds and scalar components
5862 should be expanded into a static constant.
5863
58642008-04-08 Gary Dismukes <dismukes@adacore.com>
5865 Ed Schonberg <schonberg@adacore.com>
5866 Robert Dewar <dewar@adacore.com>
5867
5868 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
5869 Has_Stream_Attribute_ Definition when checking for available stream
5870 attributes on parameters of a limited type in Ada 2005. Necessary for
5871 proper recognition of visible stream attribute clauses.
5872 (Has_Stream_Attribute_Definition): If the type is derived from a
5873 private type, then use the derived type's underlying type for checking
5874 whether it has stream attributes.
5875 (Validate_Object_Declaration): The check for a user-defined Initialize
5876 procedure applies also to types with controlled components or a
5877 controlled ancestor.
5878 Reject an object declaration in a preelaborated unit if the type is a
5879 controlled type with an overriding Initialize procedure.
5880 (Validate_Remote_Access_To_Class_Wide_Type): Return without further
5881 checking when the parent of a dereference is a selected component and
5882 the name has not been analyzed.
5883
5884 * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
5885 prefixes that are invalid explicit dereferences of remote
5886 access-to-class-wide values, first checking whether the selected
5887 component is a prefixed form of call to a tagged operation.
5888 (Analyze_Call): Remove code that issues an error for limited function
5889 calls in illegal contexts, as we now support all of the contexts that
5890 were forbidden here.
5891 Allow a function call that returns a task.and appears as the
5892 prefix of a selected component.
5893 (Analyze_Reference): Give error message if we try to make a 'Reference
5894 for an object that is atomic/aliased without its type having the
5895 corresponding attribute.
5896 (Analyze_Call): Remove condition checking for attributes to allow
5897 calls to functions with inherently limited results as prefixes of
5898 attributes. Remove related comment about Class attributes.
5899 (Analyze_Selected_Component): If the prefix is a remote type, check
5900 whether this is a prefixed call before reporting an error.
5901 (Complete_Object_Operation): If the controlling formal is an access to
5902 variable reject an actual that is a constant or an access to one.
5903 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
5904 primitive operations from base type.
5905
5906 * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
5907 build-in-place
5908 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
5909 (Expand_N_Selected_Component): Test for prefix that is a build-in-place
5910 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
5911 (Expand_N_Slice): Test for prefix that is a build-in-place function call
5912 and call Make_Build_In_Place_Call_In_Anonymous_Context.
5913 (Analyze_Call): Remove code that issues an error for limited function
5914 calls in illegal contexts, as we now support all of the contexts that
5915 were forbidden here.
5916 New calling sequence for Get_Simple_Init_Val
5917 (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
5918 (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
5919
59202008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
5921 Ed Schonberg <schonberg@adacore.com>
5922 Robert Dewar <dewar@adacore.com>
5923
5924 * exp_ch2.adb: Minor reformatting.
5925 (Expand_Entry_Index_Parameter): Set the type of the identifier.
5926 (Expand_Entry_Reference): Add call to Expand_Protected_Component.
5927 (Expand_Protected_Component): New routine.
5928 (Expand_Protected_Private): Removed.
5929 Add Sure parameter to Note_Possible_Modification calls
5930
5931 * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
5932 generated subprogram declaration must inherit the overriding indicator
5933 from the instantiation node.
5934 (Validate_Access_Type_Instance): If the designated type of the actual is
5935 a limited view, use the available view in all cases, not only if the
5936 type is an incomplete type.
5937 (Instantiate_Object): Actual is illegal if the formal is null-excluding
5938 and the actual subtype does not exclude null.
5939 (Process_Default): Handle properly abstract formal subprograms.
5940 (Check_Formal_Package_Instance): Handle properly defaulted formal
5941 subprograms in a partially parameterized formal package.
5942 Add Sure parameter to Note_Possible_Modification calls
5943 (Validate_Derived_Type_Instance): if the formal is non-limited, the
5944 actual cannot be limited.
5945 (Collect_Previous_Instances): Generate instance bodies for subprograms
5946 as well.
5947
5948 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
5949 try to set RM_Size.
5950 Add Sure parameter to Note_Possible_Modification calls
5951 (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
5952 (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
5953 constant overlaid by variable and issue warning.
5954 Use new Is_Standard_Character_Type predicate
5955 (Analyze_Record_Representation_Clause): Check that the specified
5956 Last_Bit is not less than First_Bit - 1.
5957 (Analyze_Attribute_Definition_Clause, case Address): Check for
5958 self-referential address clause
5959
5960 * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
5961 detection mechanism when the lhs is a prival.
5962 (Analyze_Assignment): Call Check_Unprotected_Access to detect
5963 assignment of a pointer to protected data, to an object declared
5964 outside of the protected object.
5965 (Analyze_Loop_Statement): Check for unreachable code after loop
5966 Add Sure parameter to Note_Possible_Modication calls
5967 Protect analysis from previous syntax error such as a scope mismatch
5968 or a missing begin.
5969 (Analyze_Assignment_Statement): The assignment is illegal if the
5970 left-hand is an interface.
5971
ea081ad7
AC
5972 * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
5973 violation of restriction No_Implicit_Conditionals
d563d3f0
AC
5974 Add Sure parameter to Note_Possible_Modication calls
5975 Use new Is_Standard_Character_Type predicate
5976 (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
5977 call as operator. Fixes problems (e.g. validity checking) which
5978 come from the result looking as though it does not come from source).
5979 (Resolve_Call): Check case of name in named parameter if style checks
5980 are enabled.
5981 (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
5982 from the checking that such calls should not occur from an entry body.
5983 (Resolve_Call): If the return type of an Inline_Always function
5984 requires the secondary stack, create a transient scope for the call
5985 if the body of the function is not available for inlining.
5986 (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
5987 that are actuals for in-out formals.
5988 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
5989 primitive operations from base type.
5990 (Analyze_Selected_Component): If the context is a call to a protected
5991 operation the parent may be an indexed component prior to expansion.
5992 (Resolve_Actuals): If an actual is of a protected subtype, use its
5993 base type to determine whether a conversion to the corresponding record
5994 is needed.
5995 (Resolve_Short_Circuit): Handle pragma Check
5996
5997 * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
5998 Use new Is_Standard_Character_Type predicate
5999 (Eval_Relational_Op): Catch more cases of string comparison
6000
60012008-04-08 Robert Dewar <dewar@adacore.com>
6002 Gary Dismukes <dismukes@adacore.com>
6003
6004 * s-rident.ads: Add No_Default_Initialization restriction
6005
9e81dbc7 6006 * exp_tss.adb:
d563d3f0
AC
6007 (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
6008 (Set_TSS): Handle No_Default_Initialization case
6009
6010 * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
6011 No_Default_Initialization
6012 (Expand_N_Subprogram_Body): Remove redundant initialization of out
6013 parameters when Normalize_Scalars is active.
6014 (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
6015 Fix casing error in formal parameter name in call
6016 (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
6017 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
6018 dispatching call on VM targets.
6019
60202008-04-08 Gary Dismukes <dismukes@adacore.com>
6021 Thomas Quinot <quinot@adacore.com>
6022
6023 * exp_ch7.adb (Find_Final_List): Change the test for generating a
6024 selected component from an access type's Associated_Final_Chain to
6025 check for the presence of that field, rather than assuming it exists
6026 for all named access types.
6027 (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
6028 procedure to call at the end of the generated cleanup procedure.
6029 (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
6030 and an At_End_Proc already exists in the handled sequence of statements
6031 for which cleanup actions are being expanded, the original cleanup
6032 action must be preserved.
6033
60342008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6035 Ed Schonberg <schonberg@adacore.com>
6036 Robert Dewar <dewar@adacore.com>
6037 Gary Dismukes <dismukes@adacore.com>
6038
6039 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
6040 Build_Unprotected_Subprogram_Body): Generate debug info for
6041 declarations related to the handling of private data in task and
6042 protected types.
6043 (Debug_Private_Data_Declarations): New subprogram.
6044 (Install_Private_Data_Declarations): Remove all debug info flagging.
6045 This is now done by Debug_Private_Data_Declarations at the correct
6046 stage of expansion.
6047 (Build_Simple_Entry_Call): If the task name is a function call, expand
6048 the prefix into an object declaration, and make the surrounding block a
6049 task master.
6050 (Build_Master_Entity): An internal block is a master if it wraps a call.
6051 Code reformatting, update comments. Code clean up.
6052 (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
6053 (Replicate_Entry_Formals): If the formal is an access parameter or
6054 anonymous access to subprogram, copy the original tree to create new
6055 entities for the formals of the subprogram.
6056 (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
6057 for tasks to store the value passed using pragma Relative_Deadline.
6058 (Make_Task_Create_Call): Add the Relative_Deadline argument to the
6059 run-time call to create a task.
6060 (Build_Wrapper_Spec): If the controlling argument of the interface
6061 operation is an access parameter with a non-null indicator, use the
6062 non-null indicator on the wrapper.
6063
6064 * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
6065 present, which it may not be in the case where the type entity is an
6066 incomplete view brought in by a limited with.
6067 (Analyze_Task_Type): Only retrieve the full view when present, which it
6068 may not be in the case where the type entity is an incomplete view brought
6069 in by a limited with.
6070 (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
6071 private components of a protected type, to prevent the generation of freeze
6072 nodes for which there is no proper scope of elaboration.
6073
6074 * exp_util.ads, exp_util.adb
6075 (Remove_Side_Effects): If the expression is a function call that returns a
6076 task, expand into a declaration to invoke the build_in_place machinery.
6077 (Find_Protection_Object): New routine.
6078 (Remove_Side_Effects): Also make a copy of the value
6079 for attributes whose result is of an elementary type.
6080 (Silly_Boolean_Array_Not_Test): New procedure
6081 (Silly_Boolean_Array_Xor_Test): New procedure
6082 (Is_Volatile_Reference): New function
6083 (Remove_Side_Effects): Use Is_Volatile_Reference
6084 (Possible_Bit_Aligned_Component): Handle slice case properly
6085
6086 * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
6087 case test to Exp_Util
6088 (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
6089
60902008-04-08 Thomas Quinot <quinot@adacore.com>
6091
6092 * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
6093 in call
6094 (Add_RACW_Features): When processing an RACW in another unit than the
6095 main unit, set Body_Decls to No_List to indicate that the bodies of
6096 the type's TSS must not be generated.
6097 (GARLIC_Support.Add_RACW_Read_Attribute,
6098 GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
6099 Body_Decls is No_List.
6100 (PolyORB_Support.Add_RACW_Read_Attribute,
6101 PolyORB_Support.Add_RACW_Write_Attribute,
6102 PolyORB_Support.Add_RACW_From_Any,
6103 PolyORB_Support.Add_RACW_To_Any,
6104 PolyORB_Support.Add_RACW_TypeCode): Same.
6105 (Transmit_As_Unconstrained): New function.
6106 (Build_Ordered_Parameters_List): Use the above to order parameters.
6107 (GARLIC_Support.Build_General_Calling_Stubs):
6108 Use the above to determine which parameters to unmarshall using 'Input
6109 at the point where their temporary is declared (as opposed to later on
6110 with a 'Read call).
6111 (PolyORB_Support.Build_General_Calling_Stubs):
6112 Use the above to determine which parameters to unmarshall using From_Any
6113 at the point where their temporary is declared (as opposed to later on
6114 with an assignment).
6115
61162008-04-08 Ed Schonberg <schonberg@adacore.com>
6117
6118 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
6119 an Input function for an access type, do not perform default
6120 initialization on the local variable that receives the value, to
6121 prevent spurious warnings when the type is null-excluding.
6122
61232008-04-08 Robert Dewar <dewar@adacore.com>
6124 Ed Schonberg <schonberg@adacore.com>
6125
6126 * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
6127 units.
6128 (Size_Known): Generic formal scalar types have known at compile
6129 time size, so remove check.
6130 Fix casing error in formal parameter name in call
6131 (Freeze_Subprogram): If the subprogram is a user-defined operator,
6132 recheck its overriding indication.
6133
61342008-04-08 Vincent Celier <celier@adacore.com>
6135
6136 * gnat1drv.adb: Send all messages indicating an error to standard error
6137
61382008-04-08 Robert Dewar <dewar@adacore.com>
6139
6140 * gnatbind.adb (Restriction_Could_Be_Set): New procedure
6141 (List_Applicable_Restrictions): Do not list existing restrictions
6142
61432008-04-08 Thomas Quinot <quinot@adacore.com>
6144
6145 * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
6146 add a pointer to generic sockets literature
6147 do not mention that the given example is "typical" usage.
6148 Remove obsolete comment about multicast not being supported on Windows.
6149 (Connect_Socket): Make Server mode IN rather than IN OUT
6150 since this formal is never modified.
6151
61522008-04-08 Robert Dewar <dewar@adacore.com>
6153
6154 * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
6155 the declaration for some different entity.
6156 (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
6157 list is precent (following the parent subtype indication), display
6158 appropriate "and" keyword.
6159
6160 * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
6161 Remove unnecessary calls to Init_Size_Align and Init_Esize.
6162 Add notes on use of Parent field of an Itype
6163
61642008-04-08 Ed Schonberg <schonberg@adacore.com>
6165 Robert Dewar <dewar@adacore.com>
6166 Gary Dismukes <dismukes@adacore.com>
6167
6168 * lib-xref.adb (Is_On_LHS): Remove dead code
6169 (Output_Overriden_Op): If the overridden operation is itself inherited,
6170 list the ancestor operation, which is the one whose body or absstract
6171 specification is actually being overridden. For source navigation
6172 purposes.
6173
6174 * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
6175 operation is primitive for the type.
6176 (Declare_Inherited_Private_Subprograms): If the new operation overrides
6177 an inherited private subprogram, set properly the Overridden_Operation
6178 attribute, for better cross-reference information.
6179 (Analyze_Package_Specification): Do late analysis of spec PPCs
6180 (Install_Private_Declaration, Uninstall_Declarations): Save/restore
6181 properly the full view and underlying full views of a private type in a
6182 child unit, whose full view is derived from a private type in a parent
6183 unit, and whose own full view becomes visible in the child body.
6184
6185 * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
6186 primitive operation after the type has been frozen, add an explicit
6187 reference to the type and the operation, because other primitive
6188 references have been emitted already.
6189 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
6190 dispatching call on VM targets.
6191
61922008-04-08 Vincent Celier <celier@adacore.com>
6193 Thomas Quinot <quinot@adacore.com>
6194
6195 * make.adb: (Gnatmake_Called): Remove, no longer necessary
6196 (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
6197 is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
6198 (Insert_Project_Sources): Take into account index in multi-unit source
6199 files.
6200 After building a library project, delete all temporary files.
6201 (Initialize): Reset current output after parsing project file.
6202 (Collect_Arguments_And_Compile): Never insert in the queue the sources
6203 of library projects that are externally built.
6204 Put file name in error and inform messages if -df is used
6205 (Display): If invoked with -d7, do not display path names, but only
6206 file names.
6207
6208 * makeutl.ads (Path_Or_File_Name): New function
6209 (Path_Or_File_Name): New function
6210
62112008-04-08 Arnaud Charlet <charlet@adacore.com>
6212
6213 * Make-lang.in: Disable warnings during first stage of bootstrap
6214 Get rid of gnatbl.
6215 Update dependencies.
6216
62172008-04-08 Vincent Celier <celier@adacore.com>
6218
6219 * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
6220 case to decide if ALI object file is included in library.
6221 (Build_Library): Never attempt to build a library if the project is
6222 externally built.
6223
62242008-04-08 Thomas Quinot <quinot@adacore.com>
6225
6226 * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
6227 (No_List) is defined to return Empty.
6228
62292008-04-08 Jose Ruiz <ruiz@adacore.com>
6230
6231 * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
6232 documentation.
6233 Update comments.
6234 (Read_Default_Search_Dirs): Do not consider spaces as path separators
6235 because spaces may be part of legal paths.
6236
62372008-04-08 Robert Dewar <dewar@adacore.com>
6238
6239 * par-ch11.adb (P_Exception_Handler): Check indentation level for
6240 handler
6241
62422008-04-08 Ed Schonberg <schonberg@adacore.com>
6243
6244 * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
6245 in a type declaration, if this is not an interface declaration or
6246 private type extension.
6247
62482008-04-08 Vincent Celier <celier@adacore.com>
6249
6250 * prj-util.adb (Executable_Of): New String parameter Language. When
6251 Ada_Main is False and Language is not empty, attempt to remove the body
6252 suffix or the spec suffix of the language to get the base of the
6253 executable file name.
6254 (Put): New Boolean parameter Lower_Case, defauilted to False. When
6255 Lower_Case is True, put the value in lower case in the name list.
6256 (Executable_Of): If there is no executable suffix in the configuration,
6257 then do not modify Executable_Extension_On_Target.
6258
6259 * prj-util.ads (Executable_Of): New String parameter Language,
6260 defaulted to the empty string.
6261 (Put): New Boolean parameter Lower_Case, defauilted to False
6262
62632008-04-08 Robert Dewar <dewar@adacore.com>
6264
6265 * scng.adb (Scan_Identifier): Handle case of identifier starting with
6266 wide character using UTF-8 encoding.
6267
62682008-04-08 Javier Miranda <miranda@adacore.com>
6269
6270 * sem.adb (Analyze): Consider case in which we analyze an empty node
6271 that was generated by a call to a runtime function that is not
6272 available under the configurable runtime.
6273
6274 * sem.ads (Inside_Freezing_Actions): New flag.
6275 (Save_Check_Policy_List): New field in scope stack entry
6276
62772008-04-08 Ed Schonberg <schonberg@adacore.com>
6278 Robert Dewar <dewar@adacore.com>
6279
6280 * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
6281 the ancestor part of an extension aggregate for a limited type.
6282 (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
6283 enumeration index bounds.
6284 (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
6285 when array is too short.
6286 (Check_Expr_OK_In_Limited_Aggregate): Move function
6287 Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
6288 change name).
6289 (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
6290 Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
6291 component associations.
6292 (Check_Non_Limited_Type): Moved to outer level and renamed.
6293 (Resolve_Record_Aggregate): In an extension aggregate, an association
6294 with a box initialization can only designate a component of the
6295 extension, not a component inherited from the given ancestor
6296
6297 * sem_case.adb: Use new Is_Standard_Character_Type predicate
6298
62992008-04-08 Robert Dewar <dewar@adacore.com>
6300
6301 * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
6302 negative scale
6303 (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
6304 Properly handle case where Aft > Scale and input number is less than
6305 one.
6306
63072008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6308
6309 * s-stoele.ads, s-soflin.ads: Move the location of
6310 Dummy_Communication_Block from System.Storage_Elements to
6311 System.Soft_Links.
6312
6313 * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
6314 emulate Communication_Block in certain scenarios.
6315
63162008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6317
6318 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
6319 subprogram.
6320 Add new subtype S_WWC, unchecked conversion routines From_WWC and
6321 To_WWC.
6322 (I_WWC, O_WWC): New routines for input and output of
6323 Wide_Wide_Character.
6324
63252008-04-08 Robert Dewar <dewar@adacore.com>
6326
6327 * stringt.adb (Write_String_Table_Entry): Handle wide characters
6328 properly
6329
63302008-04-08 Robert Dewar <dewar@adacore.com>
6331
6332 * styleg.adb (Check_Comment): Allow special char after -- in
6333 non-end-of-line case
6334
63352008-04-08 Robert Dewar <dewar@adacore.com>
6336
6337 * stylesw.adb: Implement -gnaty + - y options
6338 (Set_GNAT_Style_Check_Options): Includ I in style check string
6339
6340 * stylesw.ads: Add comments for new style switch options
6341
63422008-04-08 Sergey Rybin <rybin@adacore.com>
6343
6344 * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
6345 to the set of the GNAT components needed by ASIS.
6346
63472008-04-08 Bob Duff <duff@adacore.com>
6348
6349 * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
6350
63512008-04-08 Tristan Gingold <gingold@adacore.com>
6352
6353 * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
6354 Improve error message generation.
6355
63562008-04-08 Vincent Celier <celier@adacore.com>
6357
6358 * a-direct.adb (Start_Search): Check for Name_Error before checking for
6359 Use_Error, as specified in the RM. Check if directory is open and raise
6360 Use_Error if it is not.
6361
63622008-04-08 Vincent Celier <celier@adacore.com>
6363 Robert Dewar <dewar@adacore.com>
6364
6365 * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
6366 AAMP_On_Target is set.
6367
6368 * vms_data.ads: Add NOxxx to style check switch list
6369 Add entry COMPONENTS for -gnatVe
6370 Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
6371 (/SUBDIRS=).
6372 (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
6373 Add qualifiers for gnatmetric coupling options
6374 Add note that -gnata enables all checks
6375 Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
6376 Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
6377 New warning flag -gnatw.e
6378
6379 * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
6380 Add entry for -gnatyN (forgotten before)
6381 Line for new warning switch -gnatw.p
6382 New warning flag -gnatw.e
6383
6384 * gnat_ugn.texi: Add documentation fpr project file switch -aP
6385 Document -gnaty - + y
6386 Replace occurences of "package specification" with "package spec"
6387 Define preprocessing symbols in documentation of gnatprep
6388 Clarify reason for distinguishing overflow checking
6389 Add documentation for project-aware tool switches -eL and --subdirs=
6390 Complete list of configuration pragmas
6391 Specify that, even when gnatmake switch -x is used, mains on the command
6392 line need to be sources of project files.
6393 Editing of gnatcheck/gnatmetric doc.
6394 Add documentation for -gnatw.p/-gnatw.P
6395 Add missing documentation for -fno-inline-functions.
6396 Add documentation for -gnatw.e
6397
6398 * gnat_rm.texi: Add documentation for No_Default_Initialization
6399 Replace occurences of "package specification" with "package spec"
6400 Document use of * in Warnings Off string
6401 Update documentation of alignment/component clauses.
6402 Add documentation for Invalid_Value
6403 Document new consistency rule for Optimize_Alignment
6404 Add documentation for Precondition and Postcondition pragmas
6405 Add documentation for Check and Check_Policy pragmas
6406 Document new Enum_Val attribute
6407 Remove requirement for static string in pragma Assert
6408 Add documentation on GNAT.Time_Stamp
6409
6410 * ug_words: add entry for -gnatVe
6411 Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
6412 Add entry for -gnatw.e
6413
6414 * debug.adb: Add missing documentation for d.a flag
6415 Document new -gnatd.a switch.
6416 Add documentation for new gnatmake debug switch -df
6417
64182008-04-08 Thomas Quinot <quinot@adacore.com>
6419
6420 * gen-soccon.c: Bump year in copyright notices.
6421
6422 * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
6423
64242008-04-08 Eric Botcazou <ebotcazou@adacore.com>
6425
6426 * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
6427 Minor reformatting.
6428
64292008-04-08 Robert Dewar <dewar@adacore.com>
6430 Bob Duff <duff@adacore.com>
6431
6432 * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
6433 Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
6434
6435 * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
6436
6437 * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
6438
6439 * g-trasym.ads: Minor comment improvements
6440
6441 * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
6442
6443 * a-sequio.ads, a-direio.ads: improve message for tagged type
6444
6445 * a-strunb.ads: Minor reformatting
6446
6447 * a-tifiio.adb: Minor reformatting
6448
6449 * atree.adb (Fix_Parents): Use clearer names for formals
6450 Cleanup and simplify code
6451 Use named notation in calls
6452
6453 * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
6454 confusing calls
6455
6456 * uintp.adb: Used named notation for some confusing calls
6457
6458 * bindusg.adb: Minor change in one line of output
6459
6460 * cstand.adb: Minor reformatting of src representation of Standard
6461
6462 * a-assert.ads: Add comment.
6463
6464 * g-decstr.adb: Fix bad indentation
6465
6466 * expander.ads, expander.adb: Code clean up.
6467
6468 * sem_dist.ads: Minor comment improvement
6469
6470 * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
6471 s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
6472
6473 * i-cstrin.adb: Fix casing error in formal parameter name in call
6474
64752008-04-08 Ed Schonberg <schonberg@adacore.com>
6476
6477 * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
6478 mentioned in limited_with_clauses to do create semantic dependencies
6479 even though they appear in the ali file.
6480
64812008-04-08 Emmanuel Briot <briot@adacore.com>
6482
6483 * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
6484 statement.
6485 (Get_Configuration): New subprogram.
6486
6487 * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
6488 These optional parameters help preserve the casing of the project's name
6489 when pretty-printing.
6490
64912008-04-08 Jerome Lambourg <lambourg@adacore.com>
6492 Arnaud Charlet <charlet@adacore.com>
6493
6494 * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
6495 then use __gnat_set_exit_status to report the returned status code.
6496
6497 * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
6498 messages on .NET, since some constructs of the language are not
6499 properly supported.
6500
6501 * gnatlink.adb (Gnatlink): In case the command line is too long for the
6502 .NET linker, gnatlink now concatenate all .il files and pass this to
6503 ilasm.
6504
d8ec5bf2 65052008-04-07 Aurelien Jarno <aurelien@aurel32.net>
9e81dbc7 6506 Xavier Grave <grave@ipno.in2p3.fr>
d8ec5bf2
AJ
6507
6508 * Makefile.in: Add make ifeq define for mips/mipsel support.
9e81dbc7 6509 * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
d8ec5bf2
AJ
6510 system-linux-mips.ads: New files.
6511
7437c8d4
AJ
65122008-04-07 Aurelien Jarno <aurelien@aurel32.net>
6513
9e81dbc7 6514 * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
7437c8d4
AJ
6515 detect systems using GNU libc.
6516 * gsocket.h: ditto.
6517 * socket.c: ditto.
6518 * adaint.c: ditto.
6519 * link.c: ditto.
6520
1dab7b35
AJ
65212008-04-07 Aurelien Jarno <aurelien@aurel32.net>
6522
9e81dbc7 6523 * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
1dab7b35
AJ
6524 constant constant for sysconf call.
6525 (bit_field): New packed boolean type used by cpu_set_t.
6526 (cpu_set_t): New type corresponding to the C type with
6527 the same name. Note that on the Ada side we use a bit
6528 field array for the affinity mask. There is not need
6529 for the C macro for setting individual bit.
6530 (pthread_setaffinity_np): New imported routine.
6531 * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
6532 on GNU/kFreeBSD.
6533
39fcde8f
EB
65342008-04-07 Eric Botcazou <ebotcazou@adacore.com>
6535
6536 * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
6537
9dd9bf80
EB
65382008-04-07 Eric Botcazou <ebotcazou@adacore.com>
6539
6540 * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
6541 * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
6542 * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
6543 * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
6544 Return by Depressed Stack Pointer.
6545
2d091b12
EB
65462008-04-06 Eric Botcazou <ebotcazou@adacore.com>
6547
6548 * decl.c (is_variable_size): Do not unconditionally return false
6549 on non-strict alignment platforms.
6550
1bde5bc4
EB
65512008-04-06 Eric Botcazou <ebotcazou@adacore.com>
6552
6553 * decl.c (rest_of_type_decl_compilation_no_defer): New local function
6554 used to process all the variants of the specified type.
6555 (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
6556 types too. Call rest_of_type_decl_compilation_no_defer if undeferring.
6557 (rest_of_type_decl_compilation): Likewise.
6558 * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
6559
9ff420f1
PB
65602008-04-03 Paolo Bonzini <bonzini@gnu.org>
6561
1bde5bc4
EB
6562 * gigi.h (insert_block): Kill.
6563 * utils.c (insert_block): Kill.
9ff420f1 6564
bf1e48d1
EB
65652008-04-02 Eric Botcazou <ebotcazou@adacore.com>
6566
6567 * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
6568 type has self-referential size, get the size from the initializing
6569 expression directly if it is also a constant whose nominal type
6570 has self-referential size.
6571
a6a0635e
JDA
65722008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6573
51e5c7b5
JDA
6574 PR ada/33688
6575 * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
6576
a6a0635e
JDA
6577 PR ada/33857
6578 * env.c: Always include crt_externs.h if __APPLE__ is defined.
6579 (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
6580
4d22f5b1
AJ
65812008-04-01 Andreas Jaeger <aj@suse.de>
6582
6583 * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
6584 IP_PKTINFO.
6585
dec55d76
RW
65862008-03-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6587
6588 * g-table.adb, g-tasloc.adb, g-traceb.ads,
6589 g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
6590 gnatbind.adb, gnatchop.adb, gnatcmd.adb,
6591 gnatcmd.ads, gnatdll.adb, gnatfind.adb,
6592 gnatlink.adb, gnatmem.adb, gprep.adb,
6593 i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
6594 i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
6595 layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
6596 lib-xref.ads, lib.adb, link.c, live.ads,
6597 make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
6598 mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
6599 misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
6600 mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
6601 namet.adb, namet.h, nlists.adb, nlists.ads,
6602 nlists.h, opt.ads, osint-b.ads, osint-c.adb,
6603 osint-c.ads, osint.adb, osint.ads, output.ads,
6604 par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
6605 par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
6606 par-endh.adb, par-labl.adb, par-prag.adb,
6607 par-sync.adb, par-tchk.adb, par-util.adb,
6608 par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
6609 prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
6610 prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
6611 prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
6612
5a864002
EB
66132008-03-31 Eric Botcazou <ebotcazou@adacore.com>
6614
6615 * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
6616 size if it has overflowed.
6617
2566855a 66182008-03-31 Olivier Hainque <hainque@adacore.com>
9e81dbc7 6619 Eric Botcazou <ebotcazou@adacore.com>
2566855a
OH
6620
6621 * utils2.c (find_common_type): Document assumption on t1/t2 vs
6622 lhs/rhs. Force use of lhs type if smaller, whatever the modes.
6623
e14c931f
RW
66242008-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6625
6626 * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
6627 einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
6628 exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
6629 exp_pakd.ads, exp_prag.adb, exp_smem.adb,
6630 exp_tss.ads, exp_util.adb, exp_util.ads,
6631 exp_vfpt.adb, freeze.adb, freeze.ads,
6632 frontend.adb, g-alleve.adb, g-altcon.adb,
6633 g-altive.ads, g-alveop.ads, g-alvevi.ads,
6634 g-arrspl.adb, g-busorg.ads, g-calend.adb,
6635 g-calend.ads, g-casuti.ads, g-cgideb.adb,
6636 g-comlin.adb, g-comlin.ads, g-curexc.ads,
6637 g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
6638 g-dirope.adb, g-dirope.ads, g-dynhta.ads,
6639 g-dyntab.adb, g-encstr.ads, g-excact.ads,
6640 g-except.ads, g-expect.ads, g-heasor.adb,
6641 g-hesora.adb, g-hesorg.adb, g-htable.ads,
6642 g-locfil.ads, g-md5.adb, g-md5.ads,
6643 g-memdum.ads, g-moreex.ads, g-os_lib.adb,
6644 g-pehage.adb, g-pehage.ads, g-regexp.adb,
6645 g-regexp.ads, g-regpat.adb, g-regpat.ads,
6646 g-soccon-aix.ads, g-soccon-darwin.ads,
6647 g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
6648 g-soccon-hpux.ads, g-soccon-irix.ads,
6649 g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
6650 g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
6651 g-soccon-mingw.ads, g-soccon-solaris-64.ads,
6652 g-soccon-solaris.ads, g-soccon-tru64.ads,
6653 g-soccon-vms.ads, g-soccon-vxworks.ads,
6654 g-soccon.ads, g-socket.adb, g-socket.ads,
6655 g-socthi-mingw.adb, g-socthi-vms.adb,
6656 g-socthi-vxworks.adb, g-soliop-mingw.ads,
6657 g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
6658 g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
6659 typos.
6660
2bc894d9
EB
66612008-03-27 Eric Botcazou <ebotcazou@adacore.com>
6662
6663 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
6664 if the procedure is imported.
6665
640bd0bf
AC
66662008-03-26 Arnaud Charlet <charlet@adacore.com>
6667
6668 * adaint.c: Fix warnings.
6669
0afae63b
AC
66702008-03-26 Arnaud Charlet <charlet@adacore.com>
6671
6672 * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
6673
afc5f979
AC
66742008-03-26 Arnaud Charlet <charlet@adacore.com>
6675
6676 * a-witeio.adb: Fix problem with Current_Output (introduce Self).
6677 Fix problem of status check for null file
6678
c5d31169
AC
66792008-03-26 Arnaud Charlet <charlet@adacore.com>
6680
6681 * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
6682 s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
6683 s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
6684 i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
6685 s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
6686 comments.
6687
b501b251
AC
66882008-03-26 Thomas Quinot <quinot@adacore.com>
6689
2bc894d9 6690 PR ada/33688
b501b251
AC
6691 * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
6692 Get_Socket_Option): Add support for Receive_Packet_Info.
6693
6694 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
6695 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
6696 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
6697 g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
6698 g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
6699 new constants SO_REUSEPORT and IP_PKTINFO
6700
67012008-03-26 Robert Dewar <dewar@adacore.com>
6702
6703 * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
6704 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
6705 a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
6706 a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
6707 a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
6708 a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
6709 s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
6710 s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
6711 a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
6712 s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
6713 s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
6714 s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
6715 s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
6716 s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
6717 s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
6718 s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
6719 s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
6720 s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
6721 s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
6722 s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
6723 a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
6724 a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
6725 s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
6726 s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
6727 s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
6728 s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
6729 s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
6730 a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
6731 a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
6732 s-tasloc.adb: Minor reformatting.
6733 Update comments.
6734 Remove "used for" sections from comments.
6735
67362008-03-26 Robert Dewar <dewar@adacore.com>
6737
6738 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
6739 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
6740 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
6741 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
6742 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
6743 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
6744 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
6745 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
6746 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
6747 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
6748 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
6749 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
6750 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
6751 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
6752 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
6753 double spaced if it fits on one line and otherwise single spaced.
6754
67552008-03-26 Arnaud Charlet <charlet@adacore.com>
6756
9e81dbc7
AS
6757 * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
6758 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
b501b251
AC
6759 s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
6760 or task info if the thread could not be created.
6761
67622008-03-26 Arnaud Charlet <charlet@adacore.com>
6763
6764 * gnatvsn.ads (Library_Version): Bump to 4.4.
6765 (Current_Year): Bump to 2008.
6766
67672008-03-26 Robert Dewar <dewar@adacore.com>
6768
6769 * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
6770
6771 * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
6772
6773 * debug.adb: Add debug flags d.r and d.v
6774 Add debug flag .T (Optimize_Alignment (Time))
6775 Add debug flag .S (Optimize_Alignment (Space))
6776
6777 * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
6778 depending on setting of relevant debug flags.
6779 Replace use of Warnings_Off by Has_Warnings_Off
6780 (Freeze_Entity): In circuit for warning on suspicious convention
6781 actuals, do not give warning if subprogram has same entity as formal
6782 type, or if subprogram does not come from source.
6783 (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
6784 if Optimize_Alignment set to Space.
6785
6786 * frontend.adb: Add call to Sem_Warn.Initialize
6787 Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
6788 Reset Optimize_Alignment mode from debug switches .S and .T
6789
6790 * layout.adb (Layout_Composite_Object): Rewritten for
6791 Optimize_Aligment pragma.
6792
6793 * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
6794 mode.
6795
6796 * opt.ads, opt.adb: (Optimize_Alignment): New global switch
6797
6798 * par-prag.adb (N_Pragma): Chars field removed, use Chars
6799 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
6800 this change. Add entry for pragma Optimize_Alignment
6801
6802 * sem_prag.adb (N_Pragma): Chars field removed, use Chars
6803 (Pragma_Identifier (..
6804 instead, adjustments throughout to accomodate this change.
6805 (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
6806 (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
6807 Add implementation of pragma Optimize_Alignment
6808
68092008-03-26 Vincent Celier <celier@adacore.com>
6810
6811 * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
6812 Improve memory usage to avoid use of stack.
6813
68142008-03-26 Robert Dewar <dewar@adacore.com>
6815
6816 * a-teioed.ads: Correct value of Default_Fill
6817
6818 * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
6819
68202008-03-26 Robert Dewar <dewar@adacore.com>
6821
6822 * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
6823 with Current_Output (introduce Self).
6824
68252008-03-26 Robert Dewar <dewar@adacore.com>
6826
6827 * checks.adb (Ensure_Valid): Capture valid status if possible
6828 (eliminate checks)
6829
68302008-03-26 Robert Dewar <dewar@adacore.com>
6831
6832 * stand.ads: Deal with reordering of package standard declarations
6833
6834 * cstand.adb: Put package Standard declarations in proper order
6835
68362008-03-26 Robert Dewar <dewar@adacore.com>
6837
6838 * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
6839 (Pragma_Identifier (.. instead.
6840 (OK_To_Reorder_Components): New flag
6841 (Has_Entries): Code cleanup.
6842 (Warnings_Off_Used): New flag
6843 (Warnings_Off_Used_Unmodified): New flag
6844 (Warnings_Off_Used_Unreferenced): New flag
6845 (Has_Warnings_Off): New function
6846 (Has_Unmodified): New function
6847 (Has_Unreferenced): New function
6848 (Is_Trivial_Subprogram): New flag
6849 (Is_Static_Dispatch_Table_Entity): New attribute.
6850 Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
6851 (more consistent with other similar names)
6852 (Access_Subprogram_Type): New classification function
6853
68542008-03-26 Robert Dewar <dewar@adacore.com>
6855
6856 * errout.ads: Document new !! insertion sequence
6857
6858 * errout.adb (N_Pragma): Chars field removed, use Chars
6859 (Pragma_Identifier (.. instead.
6860 Replace use of Warnings_Off by Has_Warnings_Off
6861 (Error_Msg_Internal): Don't delete warning ending in !!
6862
68632008-03-26 Robert Dewar <dewar@adacore.com>
6864
6865 * par.adb (Check_No_Right_Paren): Removed no longer used
6866
6867 * par-ch10.adb (N_Pragma): Chars field removed, use Chars
6868 (Pragma_Identifier (.. instead.
6869
6870 * par-ch10.adb (P_Subunit): Improvement in error recovery and message
6871
6872 * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
6873 par-ch4.adb: Minor improvements in error recovery and messages.
6874
6875 * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
6876 non-serious
6877
6878 * par-ch9.adb: Minor improvements in error recovery and messages
6879 (P_Protected): Better error recovery for "protected type x;"
6880
6881 * par-util.adb: Minor improvements in error recovery and messages
6882 (Check_No_Right_Paren): Removed no longer used
6883
68842008-03-26 Ed Schonberg <schonberg@adacore.com>
6885
6886 * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
6887 that the prefix of an attribute is the type of the aggregate being
6888 expanded.
6889
68902008-03-26 Javier Miranda <miranda@adacore.com>
6891 Robert Dewar <dewar@adacore.com>
6892
6893 * exp_attr.adb (N_Pragma): Chars field removed.
6894 (Expand_N_Attribute_Reference): If the designated type associated with
6895 attribute 'Unrestricted_Access is a subprogram entity then replace it
6896 by an E_Subprogram_Type itype.
6897 Implement attribute Old
6898
6899 * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
6900
6901 * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
6902 Replace call to
6903 New_Internal_Entity by call to Create_Itype to centralize calls
6904 building itypes, ad propagate the convention of the designated
6905 subprogram. In addition, disable the machinery cleaning constant
6906 indications from all entities in current scope when 'Unrestricted_Access
6907 corresponds with a node initializing a dispatch table slot.
6908 (Analyze_Attribute): Parameterless attributes returning a string or a
6909 type will not be called with improper arguments, so we can remove junk
6910 code that was dealing with this case.
6911 Implement attribute Old
6912
6913 * snames.ads, snames.h, snames.adb: Add entries for attribute Old
6914 Add entry for pragma Optimize_Alignment
6915 New standard names Sync and Synchronize
6916
69172008-03-26 Robert Dewar <dewar@adacore.com>
6918 Arnaud Charlet <charlet@adacore.com>
6919
6920 * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
6921 stmt.
6922 (No_Exception_Propagation_Active): New function.
6923 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
6924 Update comments, and review all uses of No_Exception_Propagation, which
6925 are now correct and in sync with what gigi expects.
6926
6927 * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
6928 function.
6929 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
6930 Update comments, and review all uses of No_Exception_Propagation, which
6931 are now correct and in sync with what gigi expects.
6932
69332008-03-26 Ed Schonberg <schonberg@adacore.com>
6934
6935 * sem_ch3.adb (Access_Definition): If the access type is the return
6936 result of a protected function, create an itype reference for it
6937 because usage will be in an inner scope from the point of declaration.
6938 (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
6939 OK_To_Reorder_Components.
6940 (Make_Index): If an overloaded range includes a universal integer
6941 interpretation, resolve to Standard.Integer.
6942 (Analyze_Subtype_Indication): Copy Convention to subtype
6943 (Check_Abstract_Interfaces): Complete semantic checks on the legality of
6944 limited an synchronized progenitors in type declaration and private
6945 extension declarations.
6946
6947 * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
6948 protected subprogram body, determine proper scope from subprogram
6949 declaration.
6950
69512008-03-26 Robert Dewar <dewar@adacore.com>
6952
6953 * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
6954 No_Run_Time_Mode
6955
69562008-03-26 Gary Dismukes <dismukes@adacore.com>
6957
6958 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
6959 of a heap allocator for a limited unconstrained function return when
6960 resstriction No_Allocators is active.
6961 (Analyze_Allocator): The restriction No_Allocators is now only checked
6962 on allocators that have Comes_From_Source set, as per RM-H.4(7).
6963
6964 * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
6965 of a heap allocator for a limited unconstrained function return when
6966 resstriction No_Allocators is active.
6967 (Analyze_Allocator): The restriction No_Allocators is now only checked
6968 on allocators that have Comes_From_Source set, as per RM-H.4(7).
6969 (Has_Fixed_Op): If the name in a function call is Standard."*" and the
6970 operands are fixed-point types, the universal_fixed predefined operation
6971 is used, regardless of whether the operand type (s) have a primitive
6972 operation of the same name.
6973
69742008-03-26 Javier Miranda <miranda@adacore.com>
6975
6976 * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
6977 Is_Static_Dispatch_Table
6978 (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
6979 to Exchange_Declarations to exchange the private and full-view. Bug
6980 found working in this issue.
6981 (Expand_Dispatching_Call): Propagate the convention of the subprogram
6982 to the subprogram pointer type.
6983 (Make_Secondary_DT): Replace generation of Prim'Address by
6984 Address (Prim'Unrestricted_Access)
6985 (Make_DT): Replace generation of Prim'Address by
6986 Address (Prim'Unrestricted_Access)
6987 (Make_Disp_*_Bodies): When compiling for a restricted profile, use
6988 simple call form for single entry.
6989 (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
6990 tables of predefined primitives).
6991 (Make_Secondary_DT): Add support to handle access to dispatch tables of
6992 predefined primitives.
6993 (Make_Tags): Add entities to Access_Dispatch_Table associated with
6994 access to dispatch tables containing predefined primitives.
6995
6996 * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
6997 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
6998 this change.
6999 (Register_Predefined_DT_Entry): Updated to handle the new contents
7000 of attribute Access_Disp_Table (pointers to dispatch tables containing
7001 predefined primitives).
7002
7003 * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
7004 subprogram.
7005 (Find_Interface_ADT): Updated to skip the new contents of attribute
7006 Access_Dispatch_Table (pointers to dispatch tables containing predefined
7007 primitives).
7008
7009 * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
7010 concurrent types.
7011 (Set_Convention): Use new function Is_Access_Subprogram_Type
7012 (Collect_Interfaces_Info): Updated to skip the new contents of attribute
7013 Access_Dispatch_Table (pointers to dispatch tables containing predefined
7014 primitives).
7015
7016 * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
7017 expanded code avoiding calls to Build_Predef_Prims.
7018 (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
7019 call to Build_Get_Predefined_Prim_Op_Address.
7020
70212008-03-26 Javier Miranda <miranda@adacore.com>
7022
7023 * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
7024 subprogram Corresponding_Runtime_Package to know the runtime package
7025 that will provide support to a given protected type.
7026
7027 * exp_ch9.adb (Add_Private_Declarations,
7028 Build_Protected_Subprogram_Call,
7029 Build_Protected_Entry, Build_Simple_Entry_Call,
7030 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
7031 Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
7032 cleanup using the new centralized subprogram Corresponding_Runtime
7033 Package to know the runtime package that provides support to
7034 a given protected type.
7035
70362008-03-26 Ed Schonberg <schonberg@adacore.com>
7037
7038 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
7039 assignment is within the initialization procedure for a packed array,
7040 and Initialize_Scalars is enabled, compile right-hand side with checks
7041 off, because the value is purposely out of range.
7042
70432008-03-26 Vincent Celier <celier@adacore.com>
7044
7045 * gnatcmd.adb: Add processing for GNAT SYNC
7046
7047 * vms_conv.ads: (Command_Type): Add command Sync
7048
7049 * vms_conv.adb (Initialize): Add Command_List data for new command Sync
7050
7051 * vms_data.ads: Add entries for -gnatw.w
7052 Add qualifier for gnatstub --header-file option
7053 Add switches for GNAT SYNC
7054
7055 * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
7056 (Add_Package_Name): New procedure
7057 (Package_Name_List): New function
7058 (Initialize): Add known package names to the list
7059 (Register_New_Package): Add the new package name to the list
7060
70612008-03-26 Robert Dewar <dewar@adacore.com>
7062
7063 * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
7064 s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
7065 Raise_Exception by "raise with" construct.
7066
70672008-03-26 Pascal Obry <obry@adacore.com>
7068
7069 * Makefile.in: Add proper GNAT.Serial_Communications implementation on
7070 supported platforms.
9e81dbc7 7071
b501b251 7072 * Makefile.rtl: Add g-sercom.o.
9e81dbc7 7073
b501b251 7074 * impunit.adb: Add g-sercom.adb.
9e81dbc7 7075
b501b251
AC
7076 * s-crtl.ads (open): New routine.
7077 (close): Likewise.
7078 (write): Likewise.
9e81dbc7 7079
b501b251
AC
7080 * s-osinte-mingw.ads (BYTE): New type.
7081 (CHAR): Likewise.
7082 (OVERLAPPED): Likewise.
7083 (GENERIC_READ): New constant.
7084 (GENERIC_WRITE): Likewise.
7085 (OPEN_EXISTING): Likewise.
7086 (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
7087 type instead.
7088 (CreateFile): New routine.
7089 (WriteFile): Likewise.
7090 (ReadFile): Likewise.
7091 (CloseHandle): Move next to the other file oriented routines.
7092
7093 * g-sercom.ads: New unit.
7094
7095 * g-sercom.adb: Default implementation, calls to this unit will raise
7096 a program error exception.
9e81dbc7 7097
b501b251
AC
7098 * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
7099 GNU/Linux implementations.
7100
71012008-03-26 Robert Dewar <dewar@adacore.com>
7102
7103 * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
7104
7105 * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
7106 unchecked conversion for different conventions only for subprogram
7107 pointers or on VMS.
7108
71092008-03-26 Vincent Celier <celier@adacore.com>
7110
7111 * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
7112 to check if the specified object file is correct.
7113
71142008-03-26 Thomas Quinot <quinot@adacore.com>
7115
7116 * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
7117 Comes_From_Source to exclude primitives from being checked. We want to
7118 exclude predefined primitives only, so use the appropriate specific
7119 predicate. Also, flag a formal parameter of an anonymous
7120 access-to-subprogram type as illegal for a primitive operation of a
7121 remote access to class-wide type.
7122
71232008-03-26 Vincent Celier <celier@adacore.com>
7124
7125 * prj-dect.adb (Parse_Package_Declaration): When a package name is not
7126 known, check if it may be a missspelling of a known package name. In
7127 not verbose, not mode, issue warnings only if the package name is a
7128 possible misspelling.
7129 In verbose mode, always issue a warning for a not known package name,
7130 plus a warning if the name is a misspelling of a known package name.
7131
7132 * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
7133 limited withs or limited withs are parse during one call.
7134 (Parse_Single_Project): Post parse context clause in two passes: non
7135 limited withs before current project and limited withs after current
7136 project.
7137
7138 * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
7139 project with the name With_Name, even if it is only extended indirectly.
7140 (Recursive_Process): Process projects in order: first single withs, then
7141 current project, then limited withs.
7142
7143 * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
7144 project with the name With_Name, even if it is only extended indirectly.
7145
71462008-03-26 Robert Dewar <dewar@adacore.com>
7147
7148 * scn.adb (Initialize_Scanner): Format messages belong on standard error
7149
71502008-03-26 Ed Schonberg <schonberg@adacore.com>
7151
7152 * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
7153 a generic subprogram that is imported, do not attempt to compile
7154 non-existent body.
7155
7156 * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
7157 imported, do not generate a raise_program_error for the non-existent
7158 body.
7159 (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
7160 perform minimal name resolution on the generic to avoid spurious
7161 warnings.
7162 (Find_Actual_Type): the designated type of the actual in a child unit
7163 may be declared in a parent unit without being an actual.
7164
71652008-03-26 Robert Dewar <dewar@adacore.com>
7166
7167 * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
7168 * sinfo.ads, sinfo.adb (From_At_End): New flag
7169
71702008-03-26 Ed Schonberg <schonberg@adacore.com>
7171
7172 * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
7173 operations that have an interface parameter.
7174 (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
7175 Don't treat No_Return call as raise.
7176
7177 * sem_disp.adb (Check_Dispatching_Operations): apply check for
7178 non-primitive interface primitives to access parameters, not to all
7179 parameters of an access type.
7180
71812008-03-26 Ed Schonberg <schonberg@adacore.com>
7182
7183 * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
7184 declarations of a parent unit are made visible when compiling a child
7185 instance, the parent is not a hidden open scope, even though it may
7186 contain other pending instance.
9e81dbc7 7187
b501b251
AC
7188 * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
7189 hidden open scope for some child instance, it does affect the
7190 visibility status of other stach entries.
7191 (Analyze_Object_Renaming): Check that a class-wide object cannot be
7192 renamed as an object of a specific type.
7193
71942008-03-26 Robert Dewar <dewar@adacore.com>
7195
7196 * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
7197 recursion and raise SE directly.
7198 (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
7199 set for formal type for IN mode parameter.
7200
72012008-03-26 Robert Dewar <dewar@adacore.com>
7202
7203 * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
7204 (Initialize): New procedure
7205 (Output_Warnings_Off_Warnings): New procedure
7206 (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
7207 (Output_Non_Modifed_In_Out_Warnings): Ditto
7208 (Warn_On_Unreferenced_Entity): Ditto
7209
72102008-03-26 Vincent Celier <celier@adacore.com>
7211
7212 * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
7213 readable.
7214
72152008-03-26 Matthew Heaney <heaney@adacore.com>
7216
9e81dbc7 7217 * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
b501b251
AC
7218 a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
7219 Marked with clauses as private, and controlled operations as overriding
7220
72212008-03-26 Robert Dewar <dewar@adacore.com>
7222
7223 * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
7224
72252008-03-26 Robert Dewar <dewar@adacore.com>
7226
7227 * back_end.adb, back_end.ads: Minor reformatting
7228
7229 * bindgen.adb: Minor clarification of comments
7230
7231 * fname.ads: Minor comment fixes
7232
7233 * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
7234 prj-nmsc.adb, sem_aggr.adb: Minor reformatting
7235
7236 * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
7237 xsnames.adb: Remove warnings off pragma no longer needed
7238
7239 * a-catizo.ads, a-calari.ads, a-calfor.adb,
7240 a-calfor.ads: Fix header.
7241
72422008-03-26 Tristan Gingold <gingold@adacore.com>
7243
7244 * init.c: Do not adjust pc for HPARITH on alpha/vms.
7245
72462008-03-26 Robert Dewar <dewar@adacore.com>
7247
7248 * lib-xref.adb: (OK_To_Set_Reference): New function
7249 (Generate_Reference): Don't set referenced from occurrence in Warnings,
7250 Unmodified, or Unreferenced pragma
7251
72522008-03-26 Robert Dewar <dewar@adacore.com>
7253
7254 * alloc.ads: Add entries for Warnings_Off_Pragmas table
7255
72562008-03-26 GNAT Script <nobody@adacore.com>
7257
7258 * Make-lang.in: Makefile automatically updated
7259
72602008-03-26 Robert Dewar <dewar@adacore.com>
7261
7262 * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
7263 par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
7264 removed, use Chars (Pragma_Identifier (.. instead, adjustments
7265 throughout to accomodate this change.
7266
7267 * s-pooglo.ads, s-pooloc.ads: Minor comment updates
7268
7269 * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
7270 Einfo.Set_Needs_Debug_Info)
7271
72722008-03-26 Robert Dewar <dewar@adacore.com>
7273
7274 * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
7275 Add description for the new gnatstub option '--header-file'
7276 clarification of -gnatwz/-gnatwZ
7277 Add a "Irix-Specific Considerations" section to document the need to
7278 set LD_LIBRARY_PATH when using the default shared runtime library.
7279 Added documentation for both gcov and gprof.
7280
7281 * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
7282 messages that are not suppressed when clients are compiled.
7283 Add documentation of s-pooglo s-pooloc
7284 Document the new GNAT.Serial_Communications API.
7285 Add documentation for 'Old attribute
7286 Add description of pragma Optimize_Alignment
7287
7288 * ug_words: Add entries for -gnatw.w -gnatw.W
7289
7290 * usage.adb: Add line for -gnatw.w (warn on warnings off)
7291
3a9634be
EB
72922008-03-25 Eric Botcazou <ebotcazou@adacore.com>
7293
7294 Revert
7295 2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
7296 PR ada/35186
7297 * decl.c (maybe_pad_type): Avoid padding an integral type when
7298 bumping its alignment is sufficient.
7299
53b308f6
AC
73002008-03-25 Arnaud Charlet <charlet@adacore.com>
7301
7302 * exp_ch6.adb, exp_disp.adb: Update copyright notice.
7303 Fix wrong formatting (lines too long)
7304
8fc789c8
RW
73052008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7306
7307 * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
7308 a-calend-vms.adb, a-calend.adb, a-calend.ads,
7309 a-calfor.adb, a-chahan.ads, a-chtgke.adb,
7310 a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
7311 a-cohama.ads, a-comlin.ads, a-coorse.adb,
7312 a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
7313 a-except-2005.ads, a-except.adb, a-except.ads,
7314 a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
7315 a-exextr.adb, a-filico.ads, a-finali.ads,
7316 a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
7317 a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
7318 a-sequio.ads, a-strbou.ads, a-strfix.adb,
7319 checks.adb, exp_ch3.adb, exp_ch4.adb,
7320 exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
7321 exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
7322 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
7323 exp_dbug.ads, exp_disp.adb, exp_dist.adb,
7324 exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
7325
15f6d6e7
RD
73262008-03-24 Robert Dewar <dewar@adacore.com>
7327
7328 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
7329 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
7330 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
7331 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
7332 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
7333 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
7334 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7335 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
7336 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
7337 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
7338 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
7339 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
7340 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
7341 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
7342 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
7343 double spaced if it fits on one line and otherwise single spaced.
7344
b2e74434
RW
73452008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7346
7347 PR documentation/15479
7348 * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
7349 (doc/gnat_ugn_unw.texi): ... this, and adjusted.
7350 (doc/gnat_ugn.info): Renamed from ...
7351 (doc/gnat_ugn_unw.info): ... this.
7352 (doc/gnat_ugn.dvi): Renamed from ...
7353 (doc/gnat_ugn_unw.dvi): ... this.
7354 (doc/gnat_ugn.pdf): Renamed from ...
7355 (doc/gnat_ugn_unw.pdf): ... this.
7356 (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
7357 Adjusted.
7358 * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
7359 unconditionally to gnat_ugn.info. Fix cross references to the
7360 GNAT Reference Manual. Convert links to the GCC, GDB, Emacs,
7361 and GNU make manuals to be proper texinfo links.
7362 * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
7363
f4351641
OH
73642008-03-21 Olivier Hainque <hainque@adacore.com>
7365
7366 * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
7367 ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
7368
10c5d1a0
EB
73692008-03-21 Eric Botcazou <ebotcazou@adacore.com>
7370
7371 * trans.c (addressable_p): Add notes on addressability issues.
7372
457b629a 73732008-03-21 Olivier Hainque <hainque@adacore.com>
9e81dbc7 7374 Ed Schonberg <schonberg@adacore.com>
457b629a
OH
7375
7376 * trans.c (addressable_p): Accept COND_EXPR when both arms
7377 are addressable.
7378 (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
7379 (call_to_gnu): Do not use name reference in the error message
7380 for a misaligned by_reference_parameter. The actual may be a
7381 general expression.
7382
ac5dc795
PB
73832008-03-18 Paolo Bonzini <bonzini@gnu.org>
7384
e1da2b17
EB
7385 * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7386
79f34d07
RW
73872008-03-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7388
7389 * gnat_rm.texi (Implementation Defined Characteristics)
7390 (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
7391 appropriate.
7392 * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
7393 (Switches for gnatchop, Installing a library): Likewise.
7394
e1e7141c
EB
73952008-03-10 Eric Botcazou <ebotcazou@adacore.com>
7396
7397 * trans.c (emit_range_check): Do not emit the check if the base type
7398 of the expression is the type against which its range must be checked.
7399
892f6e65
EB
74002008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7401
7402 * decl.c (maybe_pad_type): Use value_factor_p.
7403
7934d781
EB
74042008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7405
7406 * lang.opt (nostdlib): Move around.
7407 * misc.c (gnat_handle_option): Fix formatting.
7408 (gnat_dwarf_name): Move around.
7409 * trans.c (Case_Statement_to_gnu): Fix formatting.
7410 (gnat_to_gnu): Likewise.
7411 * utils.c (aggregate_type_contains_array_p): Likewise.
7412 (create_subprog_decl): Likewise.
7413
8f5893ab
EB
74142008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7415
7416 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
7417 bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
7418
ba436c3b
EB
74192008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7420
7421 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
7422 BIGGEST_ALIGNMENT when capping the alignment of records with
7423 strict alignment and size clause.
7424
6ab36dac
EB
74252008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7426
7427 * lang-specs.h: Pass -gnatwa if -Wall is passed.
7428 * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
7429 and -Wuninitialized.
7430 (gnat_post_options): Clear warn_unused_parameter.
7431
8853cb0b
EB
74322008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7433
7434 * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
7435 aligned bit-fields, bumping the alignment of the record type if deemed
7436 profitable.
7437 (value_factor_p): Return false instead of 0.
7438
66abe22c
EB
74392008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7440
7441 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
7442 for scalar types with small alignment.
7443
563569be
EB
74442008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7445
7446 * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
7447 from that of the front-end's end label.
7448 (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
7449 from that of the loop label.
7450
b49a1a1e
EB
74512008-03-07 Eric Botcazou <ebotcazou@adacore.com>
7452
7453 * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
7454 comment for the packed array type case.
7455 * utils.c (build_template): Use a loop to strip padding or
7456 containing records for justified modular types.
7457
fd5c81e9
EB
74582008-03-07 Eric Botcazou <ebotcazou@adacore.com>
7459
7460 * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
7461 large alignments specified for types.
7462 (validate_alignment): Minor cleanup.
7463
7f42aa36
EB
74642008-03-07 Eric Botcazou <ebotcazou@adacore.com>
7465
7466 * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
7467 (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
7468 the component for packing, if possible, as well as if a component
7469 size clause is specified.
7470 <E_Record_Subtype>: For an array type used to implement a packed
7471 array, get the component type from the original array type.
7472 Try to get a smaller form of the component for packing, if possible,
7473 as well as if a component size clause is specified.
7474 (round_up_to_align): New function.
7475 (make_packable_type): Add in_record parameter.
7476 For a padding record, preserve the size. If not in_record and the
7477 size is too large for an integral mode, attempt to shrink the size
7478 by lowering the alignment.
7479 Ditch the padding bits of the last component.
7480 Compute sizes and mode manually, and propagate the RM size.
7481 Return a BLKmode record type if its size has shrunk.
7482 (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
7483 Use Original_Array_Type to retrieve the type in case of an error.
7484 Adjust call to make_packable_type.
7485 (gnat_to_gnu_field): Likewise.
7486 (concat_id_with_name): Minor tweak.
7487 * trans.c (larger_record_type_p): New predicate.
7488 (call_to_gnu): Compute the nominal type of the object only if the
7489 parameter is by-reference. Do the conversion actual type -> nominal
7490 type if the nominal type is a larger record.
7491 (gnat_to_gnu): Do not require integral modes on the source type to
7492 avoid the conversion for types with identical names.
7493 (addressable_p): Add gnu_type parameter. If it is specified, do not
7494 return true if the expression is not addressable in gnu_type.
7495 Adjust recursive calls.
7496 * utils.c (finish_record_type): Remove dead code.
7497
2f76571e
EB
74982008-03-05 Eric Botcazou <ebotcazou@adacore.com>
7499
7500 PR ada/35186
7501 * decl.c (maybe_pad_type): Avoid padding an integral type when
7502 bumping its alignment is sufficient.
7503
4d0e4612
RW
75042008-03-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7505
ad6b5b00
RW
7506 * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
7507 * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
7508 statement.
7509 * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
7510 gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
7511 sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
7512 code output strings.
7513 * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
7514 system-vms_64.ads: Fix typos in ada source code comments.
7515 * sinfo-cn.adb: Remove incomplete sentence.
7516
4d0e4612
RW
7517 PR documentation/15479
7518 * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
7519
acf6b7ab
ST
75202008-02-27 Samuel Tardieu <sam@rfc1149.net>
7521
7522 PR ada/22255
7523 * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
7524
f5c064ab
ST
75252008-02-27 Samuel Tardieu <sam@rfc1149.net>
7526
7527 PR ada/34799
7528 * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
7529 that underlying type is present.
7530
2d593c86
TT
75312008-02-26 Tom Tromey <tromey@redhat.com>
7532
7533 * misc.c (internal_error_function): Remove test of
7534 USE_MAPPED_LOCATION.
7535 * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
7536 (Sloc_to_locus): Remove old location code.
7537
443b3472
RW
75382008-02-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7539
8dd07840
RW
7540 * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
7541 `i.e.' by adding comma or `@:' as appropriate.
7542 * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
7543 plain characters `C', use `@samp{C}'.
7544 * gnat_ugn.texi (File Naming Rules, About gnatkr)
7545 (Krunching Method): Likewise.
7546
443b3472
RW
7547 * gnat_ugn.texi (Conventions): List environment variables and
7548 metasyntactic variables.
7549 (Compiling Programs): Fix notation of metasyntactic variables.
7550 Add @file where appropriate. Use @file for file extensions,
7551 @samp for strings.
7552 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
7553 instead of @file, @env instead of @code.
7554
9538dfb9
RW
75552008-02-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7556
d488f6ea
RW
7557 PR documentation/15479
7558 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
7559 and `...' with `@dots{}' or `@enddots{}'.
7560
1992bbd9
RW
7561 PR documentation/15479
7562 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
7563 use @command instead of @code, @option instead of @samp or @code,
7564 @code instead of @var, @samp instead of @file.
7565
9538dfb9
RW
7566 PR documentation/15479
7567 * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
7568 in Makefile rules, by using `&&' rather than `;'.
7569
e69044cb
RW
75702008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7571
7572 PR documentation/15479
7573 * gnat_ugn.texi: In non-code, avoid space before colon.
7574 (Regular Expressions in gnatfind and gnatxref): Fix indentation.
7575 (Examples of gnatxref Usage): Use @command{vi} instead of
7576 @file{vi}.
7577 (Character Set Control): Do not use @code for UTF-8.
7578 (Validity Checking): Fix typo "NaNs" instead of "NaN's". Do not
7579 use @code for IEEE.
7580 * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
7581 sample.
7582 * gnat_rm.texi, gnat_ugn.texi: Fix typos. Bump copyright years.
7583
9e94c78f 75842008-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
6a333ca0
JS
7585
7586 PR ada/35143
7587 * env.c: Add __rtems__ to if defined.
7588 * s-osinte-rtems.adb: Add To_Target_Priority. Fix formatting.
7589 * s-osinte-rtems.ads: Add To_Target_Priority prototype and
7590 PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants. Add
7591 pragma Convention as required.
7592 * gsocket.h: Make compile in and out of RTS.
7593 * Makefile.in: Add system-rtems.ads. Build DEC extensions.
7594 Use g-soccon-rtems.ads.
7595 * g-soccon-rtems.ads, system-rtems.ads: New files.
7596
72fb133f
KG
75972008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7598
7599 PR other/35107
7600 * Make-lang.in (gnat1): Add $(GMPLIBS).
7601
8fa07a56
EB
76022008-01-26 Eric Botcazou <ebotcazou@adacore.com>
7603
7604 * decl.c (components_to_record): Improve comment.
7605
0bf38239
EB
76062008-01-22 Eric Botcazou <ebotcazou@adacore.com>
7607
7608 * decl.c (components_to_record): Do not reuse the empty union type
7609 if there is a representation clause on the record.
7610 * trans.c (addressable_p): Return true for INTEGER_CST.
7611
461d6eb3
EB
76122008-01-21 Eric Botcazou <ebotcazou@adacore.com>
7613
7614 * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
7615 in pointer arithmetics.
7616 * utils2.c (build_allocator): Likewise.
7617
9328dd57
EB
76182008-01-17 Eric Botcazou <ebotcazou@adacore.com>
7619
7620 * utils.c (build_function_stub): Properly build the call expression.
7621
052cec9b
EB
76222008-01-14 Eric Botcazou <ebotcazou@adacore.com>
7623
7624 * decl.c (gnat_to_gnu_entity) <object>: Process renamings
7625 before converting the expression to the type of the object.
7626 * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
7627 Stabilize constructors for special wrapping types.
7628
08ffbdad
EB
76292008-01-13 Eric Botcazou <ebotcazou@adacore.com>
7630
9e94c78f 7631 * trans.c (call_to_gnu): Invoke the addressable_p predicate only
6bf4cbe8 7632 when necessary. Merge some conditional statements. Update comments.
08ffbdad
EB
7633 Rename unchecked_convert_p local variable to suppress_type_conversion.
7634 Do not suppress conversions in the In case.
7635 (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
7636 into account on non strict-alignment platforms.
7637
7219c2c7
EB
76382008-01-12 Eric Botcazou <ebotcazou@adacore.com>
7639
7640 * utils.c (aggregate_type_contains_array_p): New predicate.
7641 (create_field_decl): In a packed record, force byte alignment
7642 for fields without specified position that contain an array.
7643
52ef2874
EB
76442008-01-12 Eric Botcazou <ebotcazou@adacore.com>
7645
7646 * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
7647
3fa87ef8
JDA
76482008-01-10 John David Anglin <dave.anglin.@nrc-cnrc.gc.ca>
7649
7650 PR ada/34466
7651 * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
7652 sysconf call.
7653 (bit_field): New packed boolean type used by cpu_set_t.
7654 (cpu_set_t): New type corresponding to the C type with
7655 the same name. Note that on the Ada side we use a bit
7656 field array for the affinity mask. There is not need
7657 for the C macro for setting individual bit.
7658 (pthread_setaffinity_np): New imported routine.
7659
9e94c78f 76602008-01-03 Tero Koskinen <tero.koskinen@iki.fi>
e0658eda
TK
7661
7662 PR ada/34647
7663 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
7664 on OpenBSD as is done on other BSD systems.
7665
7666 PR ada/34645
7667 * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
7668 getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
7669 I/O.
7670
7671 PR ada/34644
7672 * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
7673 clearenv().
7674
7675 PR ada/34646
7676 * init.c (__gnat_error_handler, __gnat_install_handler,
7677 __gnat_init_float): Define for OpenBSD.
7678
7679 * initialize.c (__gnat_initialize): Define for OpenBSD.
7680
18bc9cca
ST
76812007-12-27 Samuel Tardieu <sam@rfc1149.net>
7682
7683 PR ada/34553
7684 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
7685 instead of mktemp() or tmpnam() on NetBSD.
7686
f0bf503e
EB
76872007-12-23 Eric Botcazou <ebotcazou@adacore.com>
7688
7689 * trans.c (call_to_gnu): Make the temporary for non-addressable
7690 In parameters passed by reference.
7691 (addressable_p): Return true for STRING_CST and CALL_EXPR.
7692
7469b7bc
AC
76932007-12-19 Robert Dewar <dewar@adacore.com>
7694
9e81dbc7 7695 * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
7469b7bc
AC
7696 Add pragma Warnings (Off) for unassigned IN OUT arguments
7697
7698 * sem_warn.adb (Output_Reference): Suppress messages for internal names
7699 (Check_References): Extensive changes to tune up warnings
7700 (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
7701 (Has_Pragma_Unmodifed_Check_Spec): New function
7702 (Check_References): Implement pragma Unmodified
7703 (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
7704
7705 * par-prag.adb: Dummy entry for pragma Unmodified
7706
7707 * sem_prag.adb: Implement pragma Unmodified
7708
7709 * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
7710 (Proc_Next_Component_Or_Discriminant): Fix typo.
7711 Update comments.
7712
7713 * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
7714 Unmodified.
7715 (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
7716 because the former already takes care of discarding the result.
7717 (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
7718 Add comment.
7719
7720 * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
7721
77222007-12-19 Eric Botcazou <ebotcazou@adacore.com>
7723
7724 * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
7725 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
7726 system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
7727 system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
7728 system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7729 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
7730 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
7731 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
7732 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7733 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
7734 (Dynamic_Trampolines_Used): Delete.
7735
7736 * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
7737 Turn on stack probing mechanism on LynxOS.
7738
77392007-12-19 Bob Duff <duff@adacore.com>
7740
7741 * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
7742 the resulting tail recursion by hand. This prevents running out of
7743 memory on deeply nested concatenations, since Field2 is where the left
7744 operand of concatenations is stored.
7745 Fix bug (was returning OK_Orig in some cases). Fix return subtype to
7746 clarify that it can only return OK or Abandon.
7747
7748 * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
7749 operand by iteration, in order to avoid running out of memory on
7750 deeply-nested concatenations. Use the Parent pointer to get back up the
7751 tree.
7752 (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
7753 Resolve_Op_Concat_Rest): New procedures split out of
7754 Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
7755 clearer.
7756
7757 * checks.adb (Remove_Checks): Use Traverse_Proc instead of
7758 Traverse_Func, because the former already takes care of discarding the
7759 result.
7760
7761 * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
7762 because the former already takes care of discarding the result.
7763 (Remove_Warning_Messages): Use appropriate subtype for Status and
9e81dbc7 7764 Discard
7469b7bc
AC
7765
77662007-12-19 Ed Schonberg <schonberg@adacore.com>
7767
7768 * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
7769 discriminants forces expansion of the aggregate into assignments.
7770 (Init_Record_Controller): If the type of the aggregate is untagged and
7771 is not inherently limited, the record controller is not limited either.
7772
77732007-12-19 Robert Dewar <dewar@adacore.com>
7774
7775 * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
7776 handling compile time known size of record or array (case of front end
7777 layout active, e.g. in GNAAMP).
7778
77792007-12-19 Javier Miranda <miranda@adacore.com>
7780
7781 * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
7782 that forces the construction of static dispatch tables in case of
7783 record subtypes.
7784
77852007-12-19 Robert Dewar <dewar@adacore.com>
7786
7787 * exp_ch9.adb (Null_Statements): Moved to library level
7788 (Trivial_Accept_OK): New function
7789 (Expand_Accept_Declaration): Use Trivial_Accept_OK
7790 (Expand_N_Accept_Statement): Use Trivial_Accept_OK
7791
77922007-12-19 Robert Dewar <dewar@adacore.com>
7793
7794 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
7795 in complex case where array is Volatile.
7796
77972007-12-19 Ed Schonberg <schonberg@adacore.com>
7798
7799 * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
7800 properly the Ada2005 rules concerning when the current instance of a
7801 record type is aliased.
7802
78032007-12-19 Ed Schonberg <schonberg@adacore.com>
7804
7805 * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
7806 mangled declaration
7807 (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
7808 declarations.
7809 (P_Variant_Part): Cleaner patch for parenthesized discriminant
7810
78112007-12-19 Vincent Celier <celier@adacore.com>
7812
7813 * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
7814 package is not known
7815
7816 * prj-attr.ads (Unknown_Package): New constant
7817 Do not crash when an unknown package is in several projects
7818
7819 * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
7820 ignored
7821
7822 * prj-nmsc.adb (Check): Remove obsolete code related to no longer
7823 existing package Language_Processing.
7824
78252007-12-19 Ed Schonberg <schonberg@adacore.com>
7826 Gary Dismukes <dismukes@adacore.com>
44914a04 7827 Samuel Tardieu <sam@rfc1149.net>
7469b7bc
AC
7828
7829 PR ada/15803, ada/15805
7830 * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
7831 illegal access subtypes when there is a constrained partial view.
7832 (Check_For_Premature_Usage): New procedure inside
7833 Access_Subprogram_Declaration for checking that an access-to-subprogram
7834 type doesn't reference its own name within any formal parameters or
7835 result type (including within nested anonymous access types).
7836 (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
7837 (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
7838 context is an access_to_variable, the expression cannot be an
7839 access_to_constant.
7840
78412007-12-19 Bob Duff <duff@adacore.com>
7842
7843 * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
7844 (Analyze_Concatenation): Use iteration instead of recursion in order
7845 to avoid running out of stack space for deeply nested concatenations.
7846
78472007-12-19 Ed Schonberg <schonberg@adacore.com>
7848 Gary Dismukes <dismukes@adacore.com>
7849
7850 * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
7851 whose renamed entity is a subprogram that requires overriding.
7852 (Premature_Usage): Test for the case of N_Full_Type_Declaration when
7853 issuing an error for premature usage and issue a message that says
7854 'type' rather than 'object'.
7855
78562007-12-19 Gary Dismukes <dismukes@adacore.com>
7857
7858 PR ada/34149
7859 * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
7860 presence of a statically tagged operand (Present (Static_Tag)) with
7861 test for Indeterm_Ancestor_Call when determining whether to propagate
7862 the static tag to tag-indeterminate operands (which forces dispatching
7863 on such calls).
7864 (Check_Controlling_Formals): Ada2005, access parameters can have
7865 defaults.
7866 (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
7867 not insert subprogram in list of primitive operations if already there.
7868
78692007-12-19 Tristan Gingold <gingold@adacore.com>
7870
7871 * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
7872 global variable.
7873
78742007-12-19 Thomas Quinot <quinot@adacore.com>
7875
7876 Part of PR ada/33688
7877 * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
7878 datagram info on Linux.
7879
78802007-12-19 Vincent Celier <celier@adacore.com>
7881
7882 * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
7883 that the source path name is always found in the dependencies.
7884
78852007-12-19 Robert Dewar <dewar@adacore.com>
7886
7887 * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
7888 Fix name of Wide_Wide_Latin_1/9 file names
7889 Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
7890 Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
7891 Add missing documentation for Ada.Command_Line.Response_File
7892 Update list of warning letters for Warnings pragma
7893 Add documentation for pragma Unmodified
7894
43779dea
ST
78952007-12-19 Samuel Tardieu <sam@rfc1149.net>
7896
7897 * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
7898
5287c2bc
AC
78992007-12-17 Arnaud Charlet <charlet@adacore.com>
7900
7901 * s-vxwork-alpha.ads: Removed, no longer used.
7902
6343804d
JJ
79032007-12-15 Jakub Jelinek <jakub@redhat.com>
7904
7905 * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
7906
3958c9c8
ST
79072007-12-13 Samuel Tardieu <sam@rfc1149.net>
7908
7909 PR ada/34360
7910 * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
7911 mlib-tgt-specific.adb.
7912
78185974
BD
79132007-12-13 Bob Duff <duff@adacore.com>
7914
7915 * trans.c (Attribute_to_gnu): Check for violations of the
7916 No_Implicit_Dynamic_Code restriction. This checking used to be done in
7917 the front end, but is moved here so we can make it more accurate.
7918
e9b54d64
AC
79192007-12-13 Pascal Obry <obry@adacore.com>
7920
7921 * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
7922 version is provided for older GNU/Linux distribution not
7923 supporting thread affinity sets.
9e81dbc7 7924
e9b54d64
AC
7925 * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
7926 call.
7927 (bit_field): New packed boolean type used by cpu_set_t.
7928 (cpu_set_t): New type corresponding to the C type with
7929 the same name. Note that on the Ada side we use a bit
7930 field array for the affinity mask. There is not need
7931 for the C macro for setting individual bit.
7932 (pthread_setaffinity_np): New imported routine.
9e81dbc7 7933
e9b54d64
AC
7934 * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
7935 no null.
7936 (Create_Task): Set the processor affinity mask if information
7937 is present.
9e81dbc7 7938
e9b54d64 7939 * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
9e81dbc7 7940
e9b54d64
AC
79412007-12-13 Robert Dewar <dewar@adacore.com>
7942
9e81dbc7
AS
7943 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
7944 s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
7945 s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
e9b54d64
AC
7946 s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
7947 s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
9e81dbc7
AS
7948 s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
7949 s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
e9b54d64
AC
7950 i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
7951 for subprogram pointers.
7952
7953 * g-ctrl_c.adb: New file.
7954
7955 * g-ctrl_c.ads (Install_Handler): New body.
7956
7957 * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
7958 instead of obsolete function Is_Always_Inlined.
7959 (Freeze_Entity): check for tagged type in imported C subprogram
7960 (Freeze_Entity): check for 8-bit boolean in imported C subprogram
7961 (Freeze_Entity): check for convention Ada subprogram pointer in
7962 imported C subprogram.
7963 (Freeze_Fixed_Point_Type): In the case of a base type where the low
7964 bound would be chopped off and go from negative to zero, force
7965 Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
7966 bound) so that the size computation for the base type will take
7967 negative values into account.
7968
79692007-12-13 Eric Botcazou <ebotcazou@adacore.com>
7970 Bob Duff <duff@adacore.com>
7971 Tristan Gingold <gingold@adacore.com>
7972
9e81dbc7
AS
7973 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
7974 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7975 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
7976 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
7977 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
7978 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7979 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
e9b54d64 7980 system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
9e81dbc7 7981 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
e9b54d64
AC
7982 system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
7983 system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
7984 (Always_Compatible_Rep): New flag to control trampolines globally.
7985 (Dynamic_Trampolines_Used): New flag for implementing the
7986 No_Implicit_Dynamic_Code restriction more correctly (not yet used,
7987 and not yet set correctly for some targets).
7988
7989 * s-taprop-vxworks.adb: Use stack limit method of stack checking.
7990 Simply indirectly call s-stchop when a task is created.
7991
9e81dbc7 7992 * ali.ads:
e9b54d64
AC
7993 New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
7994 appears as an argument (entries A) in an ALI file.
7995
7996 * fe.h (Stack_Check_Limits): Declare new target parameter.
7997 (Check_Implicit_Dynamic_Code_Allowed): New procedure.
7998
7999 * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
8000 This variable is declared in C to be sure not subject to elaboration
8001 code.
8002 (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
8003 Storage_Error.
8004
8005 * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
8006 (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
8007
8008 * s-stchop.ads: Add comments.
8009
8010 * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
8011 limit method of stack checking.
8012
8013 * s-stchop-limit.ads: New file.
8014
80152007-12-13 Robert Dewar <dewar@adacore.com>
8016
9e81dbc7
AS
8017 * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
8018 a-cihama.adb, g-awk.adb,
e9b54d64
AC
8019 s-inmaop-posix.adb: Update handling of assigned value/unreferenced
8020 warnings
8021
8022 * exp_smem.adb: Update handling of assigned value/unreferenced warnings
8023
8024 * sem.adb: Update handling of assigned value/unreferenced warnings
8025
8026 * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
8027
8028 * lib-xref.ads: Improve documentation for k xref type
8029
9e81dbc7 8030 * lib-xref.adb:
e9b54d64
AC
8031 Update handling of assigned value/unreferenced warnings
8032 (Generate_Reference): Warning for reference to entity for which a
8033 pragma Unreferenced has been given should be unconditional.
8034 If the entity is a discriminal, mark the original
8035 discriminant as referenced.
8036
8037 * sem_warn.ads, sem_warn.adb
8038 (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
8039 no entities referenced in package
8040 (Check_One_Unit): Don't give message about no entities referenced in
8041 a package if a pragma Unreferenced has appeared.
8042 Handle new warning flag -gnatw.a/-gnatw.A
8043 Update handling of assigned value/unreferenced warnings
8044
8045 * atree.h: Add flags up to Flag247
8046 (Flag231): New macro.
8047
80482007-12-13 Jose Ruiz <ruiz@adacore.com>
8049
8050 * adaint.h: (__gnat_plist_init): Not defined for RTX.
8051
8052 * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
8053 RTX systems.
8054
8055 * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
8056 (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
8057 EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
8058 GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
8059
9e81dbc7 8060 * mingw32.h:
e9b54d64
AC
8061 Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
8062
8063 * sysdep.c (winflush_function for RTX): Procedure that does nothing
8064 since we only have problems with Windows 95/98, which are not
8065 supported by RTX.
8066 (__gnat_ttyname): Return the empty string on Nucleus, just as
8067 done on vxworks.
8068
80692007-12-13 Robert Dewar <dewar@adacore.com>
8070
9e81dbc7 8071 * a-textio.adb, a-textio.ads:
e9b54d64
AC
8072 Extensive changes to private part for wide character encoding
8073
8074 * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
8075 (Look_Ahead): Fix mishandling of encoded sequences
8076 Move declaration of Wch_Con to private part (should not be visible)
8077
8078 * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
8079 UTF-8. Probably this is never used, but if it is, brackets is
8080 clearly correct.
8081
8082 * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
8083 setting wide character encoding for no main program case and when
8084 encoding is specified using -W?
8085 Initialize stack limit of environment task if stack limit method of
8086 stack checking is enabled.
8087 (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
8088 (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
8089 (Get_Main_Unit_Name): New function.
8090 (Gen_Adainit_Ada): Add call to main program for .NET when needed.
8091 (Gen_Output_File): Set Bind_Main_Program to True for .NET
8092
8093 * bindusg.adb: Add line for -Wx switch
8094
8095 * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
8096 Add comments
8097 Add new useful constant WC_Longest_Sequences
8098
8099 * switch-b.adb: Clean up handling of -Wx switch
8100 For -gnatWx, set Wide_Character_Encoding_Method_Specified
8101
8102 * switch-c.adb: -gnatg activates warning on assertion errors
8103 For -gnatWx, set Wide_Character_Encoding_Method_Specified
8104
8105 * s-wchcon.adb: (Is_Start_Of_Encoding): New function
8106
81072007-12-13 Robert Dewar <dewar@adacore.com>
8108 Ed Schonberg <schonberg@adacore.com>
8109
8110 * a-ngcoty.adb: New pragma Fast_Math
8111
8112 * opt.adb: New pragma Fast_Math
8113
9e81dbc7 8114 * par-prag.adb:
e9b54d64
AC
8115 Add Implemented_By_Entry to the list of pragmas which do not require any
8116 special processing.
8117 (Favor_Top_Level): New pragma.
8118 New pragma Fast_Math
8119
8120 * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
8121 (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
8122 Expand_Allocator_Expression): Take into account VM_Target
8123 (Expand_Attribute, case 'Identity): Handle properly the case where
8124 the prefix is a task interface.
8125 New pragma Fast_Math
8126
8127 * par.adb (Next_Token_Is): New function
8128 (P_Pragma): Add Skipping parameter
8129 (U_Left_Paren): New procedure
8130 (U_Right_Paren): New procedure
8131 New pragma Fast_Math
8132
8133 * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
8134 subunit
8135 New pragma Fast_Math
8136
8137 * sem_prag.adb: Add significance value to table Sig_Flag for pragma
8138 Implemented_By_Entry.
8139 (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
8140 (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
8141 items, since it can apply to more than one overloadable entity. Set
8142 new flag Has_Pragma_Inline_Always for Inline_Always case.
8143 (Analyze_Pragma, case Complex_Representation): Improve error message.
8144 (Analyze_Pragma, case Assert): When assertions are disabled build the
8145 rewritten code with Sloc of expression rather than pragma, so new
8146 warning about failing is not deleted.
8147 (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
8148 protected types and update error message to reflect that. Test whether
8149 the protected type is allowed for the pragma (an error is issued if the
8150 type has any entries, or components that do not have preelaborable
8151 initialization).
8152 New pragma Fast_Math
8153 (Analyze_Pragma, case No_Return): Handle generic instance
8154
9e81dbc7 8155 * snames.h, snames.ads, snames.adb:
e9b54d64
AC
8156 Add new predefined name for interface primitive _Disp_Requeue.
8157 New pragma Fast_Math
8158
8159 * a-tags.ads, a-tags.adb: New calling sequence for
8160 String_To_Wide_[Wide_]String
8161 (Secondary_Tag): New subprogram.
8162
8163 * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
8164 from Exp_Attr
8165 New calling sequence for String_To_Wide_[Wide_]String
8166 (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
8167 the use of the secondary stack for image routines.
8168
8169 * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
8170 calling sequence for String_To_Wide_[Wide_]String
8171
8172 * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
8173 Ada 95 mode
8174 (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
8175 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8176
8177 * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
8178 (P_Formal_Part): Use Skipping parameter in P_Pragma call
8179 to improve error recovery
8180
8181 * par-util.adb (Next_Token_Is): New function
8182 (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
8183
8184 * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
8185 semicolon if missing
8186 (P_Pragma): Implement new Skipping parameter
8187 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8188 Fix location of flag for unrecognized pragma message
8189
8190 * par-tchk.adb (U_Left_Paren): New procedure
8191 (U_Right_Paren): New procedure
8192
81932007-12-13 Geert Bosch <bosch@adacore.com>
8194
9e81dbc7 8195 * a-tifiio.adb:
e9b54d64
AC
8196 (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
8197 the second or later Scaled_Divide would omit leading zeroes,
8198 resulting in too few digits produced and a Layout_Error as result.
8199 (Put): Initialize Pos.
8200
82012007-12-13 Robert Dewar <dewar@adacore.com>
8202
8203 atree.ads, atree.adb (Flag231..Flag247): New functions
8204 (Set_Flag231..Set_Flag247): New procedures
8205 (Basic_Set_Convention): Rename Set_Convention to be
8206 Basic_Set_Convention
8207 (Nkind_In): New functions
8208 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8209
8210 * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
8211 instead
8212 of obsolete function Is_Always_Inlined
8213 (Register_Predefined_DT_Entry): Initialize slots of the second
8214 secondary dispatch table.
8215 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8216 (Expand_N_Function_Call): Remove special provision for stack checking.
8217
8218 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
8219 Include _Disp_Requeue in the list of predefined operations.
8220 (Find_Interface_ADT): Modified to fulfill the new specification.
8221 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8222
9e81dbc7 8223 * par-ch4.adb, nlists.ads, nlists.adb:
e9b54d64
AC
8224 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8225
8226 * sinfo.ads, sinfo.adb: (Nkind_In): New functions
8227 Fix location of flag for unrecognized pragma message
8228
8229 * sem_ch7.adb: Use Nkind_In
8230
82312007-12-13 Vincent Celier <celier@adacore.com>
8232
9e81dbc7 8233 * opt.ads:
e9b54d64
AC
8234 Indicate what flags are used by the Project Manager, gprbuild and
8235 gprclean.
8236 (Opt.Follow_Links_For_Dirs): New flag
8237 (Warn_On_Assertion_Failure): New flag
8238 (Wide_Character_Encoding_Method_Specified): New flag
8239 (Suppress_All_Inlining): New switch set by -fno-inline
8240 (Real_VMS_Target): New flag
8241 New pragma Fast_Math
8242
82432007-12-13 Robert Dewar <dewar@adacore.com>
8244
8245 * back_end.adb: Recognize -fno-inline
8246
82472007-12-13 Robert Dewar <dewar@adacore.com>
8248
8249 * checks.adb: Fix optimization problem with short-circuited form
8250
82512007-12-13 Bob Duff <duff@adacore.com>
8252
8253 * clean.adb (Usage): Add line for -aP
8254 (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
8255 with a parameter "procedure Usage", instead of passing a pointer to a
8256 procedure. This is to eliminate trampolines (since the Usage procedure
8257 is often nested in a main procedure, and it would be inconvenient to
8258 unnest it).
8259
8260 * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
8261 to be generic, with a parameter "procedure Callback (...)", instead of
8262 passing a pointer to a procedure. This is to eliminate trampolines
8263 (since the Callback procedure is usually nested).
8264
9e81dbc7 8265 * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
e9b54d64
AC
8266 gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
8267 (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
8268
8269 * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
8270 Use the generic Heap_Sort_G instead of Heap_Sort_A.
8271
82722007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8273
8274 * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
8275 (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
8276 (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
8277 (Renamed_In_Spec): New flag
8278 (Has_Pragma_Inline_Always): New flag
8279 Add missing doc for pragma Obsolescent_Warning
8280 Add missing doc for 17 additional unused flags (230-247)
8281 (Is_Derived_Type): Remove condition "not Is_Generic_Type".
8282 Alphabetize with clauses.
8283 Separate Is_Thunk and Has_Thunks flags
8284 (Write_Entity_Flags): Add forgotten entry for Has_Thunks
8285 (Related_Interface): Renamed to Related_Type.
8286 (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
8287 (Set_Is_Flag): Restrict the assertion.
8288
82892007-12-13 Vincent Celier <celier@adacore.com>
8290
8291 * errout.adb (Output_Source_Line): Do not keep a trailing space after
8292 the source line number if the source line is empty.
8293
82942007-12-13 Geert Bosch <bosch@adacore.com>
8295
8296 * eval_fat.adb (Decompose_Int): Handle argument of zero.
8297 (Compose): Remove special casing of zero.
8298 (Exponent): Likewise.
8299 (Fraction): Likewise.
8300 (Machine): Likewise.
8301 (Decompose): Update comment.
8302
83032007-12-13 Ed Schonberg <schonberg@adacore.com>
8304
8305 * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
8306 limited ancestor part, initialize controllers of enclosing record
8307 before expanding ancestor aggregate.
8308 (Gen_Assign): If a component of the aggregate is box-initialized, add
8309 code to call Initialize if the component is controlled, and explicit
8310 assignment of null if the component is an access type.
8311
8312 Handle properly aggregates for limited types that appear in object
8313 declarations when the aggregate contains controlled values such as
8314 protected types.
8315 When expanding limited aggregates into individual components, do not
8316 call Adjust on controlled components that are limited.
8317
83182007-12-13 Ed Schonberg <schonberg@adacore.com>
8319
8320 * expander.adb: Take into account N_Subprogram_Renaming_Declaration
8321
83222007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8323
8324 * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
8325 predefined primitive _Disp_Requeue.
8326 (Make_Predefined_Primitive_Specs): Create the spec for predefined
8327 primitive _Disp_Requeue.
8328 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
8329 type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
8330 (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
8331 an interface type. In case of limited interfaces we now declare all the
8332 predefined primitives associated with synchronized interfaces as
8333 abstract.
8334 (Predef_Spec_Or_Body): For interface types generate abstract subprogram
8335 declarations.
8336 (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
8337 tagged type is an interface type and there is no user-defined equality
8338 function.
8339 Add also bodies of predefined primitives associated with synchronized
8340 interfaces.
8341 (Freeze_Record_Type): Do not build bodies of predefined primitives of
8342 interface types because they are now defined abstract.
8343 Add missing documentation.
8344 (Expand_Record_Controller): Update occurrence of Related_Interface
8345 to Related_Type.
8346 (Build_Offset_To_Top_Functions): Do nothing in case of VM.
8347 (Expand_N_Object_Declaration): Take into account VM_Target when handling
8348 class wide interface object declaration.
8349 (Expand_Previous_Access_Type): Do not create a duplicate master entity
8350 if the access type already has one.
8351 (Expand_N_Object_Declaration): Defend against attempt to validity check
8352 generic types. Noticed for -gnatVcf specified with previous errors.
8353
83542007-12-13 Arnaud Charlet <charlet@adacore.com>
8355
8356 * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
8357 Expand_Allocator_Expression): Take into account VM_Target
8358
8359 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
8360 secondary stack when VM_Target /= No_VM
8361
83622007-12-13 Javier Miranda <miranda@adacore.com>
8363 Ed Schonberg <schonberg@adacore.com>
8364
8365 * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
8366 Is_Complation_Unit by Is_Library_Level_Entity in the code
8367 that decides if the static dispatch tables need to be built.
8368 (Wrap_Transient_Declaration): Do not generate a finalization call if
8369 this is a renaming declaration and the renamed object is a component
8370 of a controlled type.
8371
83722007-12-13 Gary Dismukes <dismukes@adacore.com>
8373
8374 * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
8375 In the case where the renamed subprogram is a dereference, call
8376 Force_Evaluation on the prefix.
8377
83782007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8379 Ed Schonberg <schonberg@adacore.com>
8380
8381 * exp_ch9.adb (Expand_N_Asynchronous_Select,
8382 Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
8383 comment reformatting.
8384 (Set_Privals): Inherit aliased flag from formal. From code reading.
8385 (Build_Simple_Entry_Call): Out parameters of an access type are passed
8386 by copy and initialized from the actual. This includes entry parameters.
8387 (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
8388 and Ada 2005 models of requeue.
8389 (Null_Statements): Still connsider do-end block null if it contains
8390 Unreferenced and Warnings pragmas.
8391 (Expand_N_Accept_Statement): Do not optimize away null do end if
8392 dispatching policy is other than defaulted.
8393 (Expand_N_Timed_Entry_Call): When the triggering statement is a
8394 dispatching call, manually analyze the delay statement.
8395 (Find_Parameter_Type): Move subprogram to Sem_Util.
8396
83972007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8398 Javier Miranda <miranda@adacore.com>
8399
8400 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
8401 _Disp_Requeue occupies dispatch table slot number 15. Move
8402 _Disp_Timed_Select to slot 16.
8403 (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
8404 generate the spec and body of _Disp_Reqeueue.
8405 (Make_DT): Build and initialize the second dispatch table.
8406 Handle initialization of RC_Offset when the parent
8407 is a private type with variable size components.
8408 (Make_Secondary_DT): Complete documentation. Add support to
8409 initialize the second dispatch table.
8410 (Make_Tags): Generate the tag of the second dispatch table.
8411 (Register_Primitive): Add support to register primitives in the
8412 second dispatch table.
8413
84142007-12-13 Pascal Obry <obry@adacore.com>
8415
8416 * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
8417 Windows. This signal is used by gnatmake to kill child processes for
8418 example.
8419
84202007-12-13 Javier Miranda <miranda@adacore.com>
8421
8422 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
8423 support for generic dispatching constructor calls in which we need to
8424 locate the tag of a secondary dispatch table associated with an
8425 interface type to properly dispatch the call.
8426 (Expand_N_Attribute_Reference [case Address],
8427 Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
8428 handling of VM targets.
8429
84302007-12-13 Robert Dewar <dewar@adacore.com>
8431 Ed Schonberg <schonberg@adacore.com>
8432
8433 * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
8434 assert fail
8435
8436 * ug_words: Add entries for -gnatw.a -gnatw.A
8437
8438 * sem_res.adb (Set_String_Literal_Subtype): If the context of the
8439 literal is a subtype with non-static constraints, use the base type of
8440 the context as the base of the string subtype, to prevent type
8441 mismatches in gigi.
8442 (Resolve_Actuals): If the actual is an entity name, generate a
8443 reference before the actual is resolved and expanded, to prevent
8444 spurious warnings on formals of enclosing protected operations.
8445 (Analyze_Overloaded_Selected_Component): If type of prefix if
8446 class-wide, use visible components of base type.
8447 (Resolve_Selected_Component): Ditto.
8448 (Resolve_Short_Circuit): Detect case of pragma Assert argument
8449 evaluating to False, and issue warning message.
8450
8451 * usage.adb: Add lines for -gnatw.a and -gnatw.A
8452
84532007-12-13 Emmanuel Briot <briot@adacore.com>
8454
8455 * g-calend.ads (No_Time): New constant, to represent an uninitialized
8456 time value
8457
8458 * g-catiio.ads, g-catiio.adb (Value): Added support for more date
8459 formats.
8460 (Month_Name_To_Number): New subprogram
8461
8462 * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
8463 letter to upper-case.
8464
84652007-12-13 Robert Dewar <dewar@adacore.com>
8466 Ed Schonberg <schonberg@adacore.com>
8467
8468 * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
8469
8470 * layout.adb (Resolve_Attribute, case 'Access): If designated type of
8471 context is a limited view, use non-limited view when available. If the
8472 non-limited view is an unconstrained array, this enforces consistency
8473 requirements in 3.10.2 (27).
8474 (Layout_Type): For an access type whose designated type is a limited
8475 view, examine its declaration to determine if it is an unconstrained
8476 array, and size the access type accordingly.
8477 (Layout_Type): Do not force 32-bits for convention c subprogram
8478 pointers in -gnatdm mode, only if real vms target.
8479
8480 * sem_attr.adb (Analyze_Access_Attribute): Use new flag
8481 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
8482 (Analyze_Access_Attribute,Attribute_Address): Remove checks for
8483 violations of the No_Implicit_Dynamic_Code restriction.
8484 (Resolve_Attribute, case 'Access): If designated type of context is a
8485 limited view, use non-limited view when available. If the non-limited
8486 view is an unconstrained array, this enforces consistency requirements
8487 in 3.10.2 (27).
8488 (Layout_Type): For an access type whose designated type is a limited
8489 view, examine its declaration to determine if it is an unconstrained
8490 array, and size the access type accordingly.
8491
84922007-12-13 Vincent Celier <celier@adacore.com>
8493
8494 * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
8495 object directory of main project does not exist.
8496 On VMS, correctly set then environment variable for the source
8497 directories.
8498
84992007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
8500
8501 * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
8502 set to True this procedure will create the value of type REG_EXPAND_SZ.
8503 It was only possible to create REG_SZ values before.
8504
85052007-12-13 Robert Dewar <dewar@adacore.com>
8506
8507 * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
8508 g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
8509 namet-sp.adb, namet-sp.ads: New files.
8510
8511 * g-speche.adb: Use generic routine in g-spchge
8512
9e81dbc7 8513 * s-wchcnv.ads, s-wchcnv.adb:
e9b54d64
AC
8514 Minor code cleanup (make formal type consistent with spec)
8515
8516 * namet.adb: Update comments.
8517
8518 * par-endh.adb (Evaluate_End_Entry): Use new
8519 Namet.Sp.Is_Bad_Spelling_Of function
8520
8521 * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
8522
8523 * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
8524 ancestor is an access type initialized with a box, set its type
8525 explicitly, for use in subsequent expansion.
8526 (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
8527 function
8528
85292007-12-13 Robert Dewar <dewar@adacore.com>
8530
8531 * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
8532 access Vstring)
8533
85342007-12-13 Robert Dewar <dewar@adacore.com>
8535
8536 * inline.adb (Back_End_Cannot_Inline): Use new flag
8537 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
8538
8539 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
8540 Has_Pragma_Inline_Always instead.
8541 of obsolete function Is_Always_Inlined
8542 (Build_Body_To_Inline): Same change
8543 (Cannot_Inline): Same change
8544 Do not give warning on exception raise in No_Return function
8545
8546 * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
8547 component has two inconsistent component clauses in the same record
8548 representation clause, favor the message that complains about
8549 duplication rather than inconsistency.
8550 Update comments.
8551 (Record_Representation_Clause): Do not warn on missing component
8552 clauses for inherited components of a type extension.
8553 (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
8554 an overloadable item if it is a pragma that can apply to multiple
8555 overloadable entities (e.g. Inline) because a pragma cannot be on
8556 more than one chain at a time.
8557 (Validate_Unchecked_Conversion): Add code to warn on unchecked
8558 conversion where one of the operands is Ada.Calendar.Time.
8559 (Analyze_Attribute_Definition_Clause): Fix typo in error message.
8560 For now, ignore Component_Size clause on VM targets, as done for
8561 pragma Pack.
8562
85632007-12-13 Emmanuel Briot <briot@adacore.com>
8564 Vincent Celier <celier@adacore.com>
8565
8566 * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
8567 string
8568 (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
8569 prj.ads
8570 (Hash): Move instantiation of System.HTable.Hash from spec to body
8571 (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
8572 systems, since we do not need to recompute the Name_Id for the canonical
8573 file name.
8574 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
8575 as a parameter. This parameter is in fact always "ada" in all calls, and
8576 we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
8577 while loading a project with 40000 files
8578
8579 * prj-attr.adb: Fix name of attribute Dependency_Driver
8580 Change the kind of indexing for attribute Root
8581
8582 * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
8583 variables already declared, in case constructions.
8584
8585 * prj-env.adb (Initialize): Reset Current_Source_Path_File and
8586 Current_Object_Path_File to No_Path.
8587
8588 * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
8589 ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
8590
8591 * prj-makr.adb: new parameter Current_Dir
8592
8593 * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
8594 Ada sources when language is not Ada.
8595 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
8596 (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
8597 (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
8598 (Locate_Directory): Always resolve links when computing Canonical_Path
8599 (Look_For_Sources): Make sure that Name_Buffer contains the file name
8600 in Source_Files before checking for the presence of a directory
8601 separator.
8602 Optimize calls to Name_Find when on case sensitive systems.
8603 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
8604 as a parameter.
8605 (Prj.Nmsc.Check): new parameter Current_Dir
8606 (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
8607 cannot be empty and the spec suffix cannot be the same as the body or
8608 separate suffix.
8609 (Get_Unit): When a file name can be of several unit kinds (spec, body or
8610 subunit), always consider the longest suffix.
8611 (Check_Configuration): Do not issue an error if there is no compiler
8612 for a language. Just issue a warning and ignore the sources for the
8613 language.
8614 (Check_Library_Attributes): Only check Library_Dir if Library_Name is
8615 not empty.
8616 (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
8617 (Unit_Exceptions): New hash table
8618 (Check_Naming_Schemes): Check if a file that could be a unit because of
8619 the naming scheme is not in fact a source because there is an exception
8620 for the unit.
8621 (Look_For_Sources): Put the unit exceptions in hash table
8622 Unit_Exceptions
8623 (Get_Unit_Exceptions): Give initial value No_Source to local variable
8624 Other_Part to avoid exception when code is compiled with validity
8625 checking.
8626 (Get_Sources_From_File): Check that there is no directory information
8627 in the file names.
8628 (Look_For_Sources): Check that there is no directory information in the
8629 list of file names in Source_Files.
8630 (Look_For_Sources): In multi-language mode, do not allow exception file
8631 names that are excluded.
8632 (Excluded_Sources_Htable): New hash table
8633 (Search_Directories.Check_File): New procedure to simplify
8634 Search_Directories.
8635 (Search_Directories): Do not consider excluded sources
8636 (Look_For_Sources): Populate Excluded_Sources_Htable before calling
8637 Search_Directories.
8638 (Get_Exceptions): Set component Lang_Kind of Source_Data
8639 (Get_Unit_Exceptions): Ditto
8640 (Search_Directories): Ditto
8641
8642 * prj-pars.adb: new parameter Current_Dir
8643
9e81dbc7 8644 * prj-part.ads, prj-part.adb:
e9b54d64
AC
8645 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
8646 (Opt.Follow_Links_For_Dirs): New flag
8647 (Project_Path_Name_Of): Cache information returned by this routine as
8648 Locate_Regular_File is a costly routine. The code to output a log
8649 information and the effective call to Locate_Regular_File is now
8650 factorized into a routine (code clean-up).
8651 (Parse, Parse_Single_Project): new parameter Current_Dir
8652 When main project file cannot be found, indicate in the error
8653 message the project path that was used to do the search.
8654
8655 * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
8656 (Prj.Proc.Process*): new parameter Current_Dir
8657
8658 * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
8659
86602007-12-13 Bob Duff <duff@adacore.com>
8661
8662 * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
8663 procedure to be called from the back end to check the
8664 No_Implicit_Dynamic_Code restriction.
8665
86662007-12-13 Arnaud Charlet <charlet@adacore.com>
8667
8668 * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
8669 Fixes another case where RTE_Available_Call was ignored instead of being
8670 taken into account.
8671 (Load_Fail): Ditto.
8672
8673 * rtsfind.ads: Add new entries.
8674
86752007-12-13 Robert Dewar <dewar@adacore.com>
8676
8677 * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
8678 g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
8679
8680 * scn.adb: Implement BOM recognition
8681
86822007-12-13 Thomas Quinot <quinot@adacore.com>
8683 Ed Schonberg <schonberg@adacore.com>
8684
8685 * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
8686 subprogram body that acts as its own spec may not have a non-private
8687 WITH clause on a private sibling.
8688 (Build_Unit_Name): If the parent unit in the name in a with_clause on a
8689 child unit is a renaming, create an implicit with_clause on that
8690 parent, and not on the unit it renames, to prevent visibility errors
8691 in the current unit.
8692
86932007-12-13 Ed Schonberg <schonberg@adacore.com>
8694
8695 * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
8696 renaming declaration, use the Slocs of the formal parameters from the
8697 declaration of the formal subprogram when creating the formal parameter
8698 entities in the renaming declaration.
8699 (Analyze_Formal_Type_Declaration): Change the placement of the error
8700 message concerning illegal known discriminants. It is now posted on the
8701 type rather than on the first discriminant. This change ensures early
8702 error report.
8703 (Freeze_Subprogram_Body): If the generic subprogram is nested within
8704 the package body that contains the instance, do not generate an
8705 out-of-place freeze node for the enclosing package.
8706 (Collect_Previous_Instantiations): Ignore internal instantiations
8707 generated for formal packages.
8708 (Validate_Derived_Type_Instance): Add a check that when a formal
8709 derived type is Known_To_Have_Preelab_Init then the actual type must
8710 have preelaborable initialization, and issue an error when this
8711 condition is violated.
8712
87132007-12-13 Robert Dewar <dewar@adacore.com>
8714
8715 * s-imenne.adb, s-imenne.ads: New files.
8716
9e81dbc7
AS
8717 * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
8718 s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
8719 s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
8720 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
e9b54d64
AC
8721 s-imgwch.ads: New calling sequence for Image routines to avoid sec
8722 stack usage.
8723
87242007-12-13 Javier Miranda <miranda@adacore.com>
8725 Ed Schonberg <schonberg@adacore.com>
8726
8727 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
8728 generation of spurious error if parent is an interface type; caused
8729 because predefined primitive bodies will be generated later by
8730 Freeze_Record_Type.
8731 (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
8732 flag.
8733 (Derive_Subprograms): Handle derivations of predefined primitives
8734 after all the user-defined primitives to ensure that they are
8735 found in proper order in instantiations.
8736 (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
8737 of Related_Interface to Related_Type.
8738 (Record_Type_Declaration): Minor reordering of calls to decorate the
8739 Tag component because the entity must have set its Ekind attribute
8740 before setting its Is_Tag attribute.
8741 (Analyze_Subtype_Declaration): In the case of subtypes with
8742 Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
8743
87442007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8745 Ed Schonberg <schonberg@adacore.com>
8746
8747 * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
8748 statement to the list of contexts where a selected component with a
8749 concurrent tagged type prefix should yield a primitive operation.
8750 (Find_Primitive_Operation): Handle case of class-wide types.
8751 (Analyze_Overloaded_Selected_Component): If type of prefix is
8752 class-wide, use visible components of base type.
8753 (Resolve_Selected_Component): Ditto.
8754 (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
8755 formal of a generic subprogram. find candidate interpretations by
8756 scanning the list of generic formal declarations.:
8757 (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
8758 type from a limited_with_clause, and the full view is available, use it
8759 for subsequent semantic checks.
8760 (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
8761 (Find_Primitive_Operation): New function.
8762 (Analyze_Overloaded_Selected_Component): insert explicit dereference
8763 only once if several interpretations of the prefix yield an access type.
8764 (Try_Object_Operation): Code and comment cleanup.
8765 (Analyze_Selected_Component): Reorder local variables. Minot comment and
8766 code reformatting. When the type of the prefix is tagged concurrent, a
8767 correct interpretation might be available in the primitive and
8768 class-wide operations of the type.
8769
87702007-12-13 Robert Dewar <dewar@adacore.com>
8771 Ed Schonberg <schonberg@adacore.com>
8772
8773 * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
8774 renaming entry as subprogram using rename-as-body if subprogram spec
8775 frozen.
8776 (Use_One_Type): The clause is legal on an access type whose designated
8777 type has a limited view.
8778 (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
8779 (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
8780 (Analyze_Renamed_Primitive_Operation): new procedure to determine the
8781 operation denoted by a selected component.
8782 (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
8783 it can be an expression, possibly overloaded, that returns a task or
8784 an access to one.
8785
87862007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8787 Gary Dismukes <dismukes@adacore.com>
8788
8789 * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
8790 requeue statement is dispatching. Do not emit an error when the name is
8791 not an entry and the context is a dispatching select. Add code to
8792 perform subtype conformance between the formals of the current entry
8793 and those of the target interface primitive.
8794 (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
8795 Timed_Entry_Call): Analyze the triggering statement as the first step of
8796 the processing. If this is a dispatching select, postpone the analysis
8797 of all select statements until the Expander transforms the select. This
8798 approach avoids generating duplicate identifiers after the Expander has
8799 replicated some of the select statements. In case the Expander is
8800 disabled, perform regular analysis.
8801 (Check_Triggering_Statement): New routine.
8802 (Analyze_Requeue): Exclude any interpretations that are not entries when
8803 checking overloaded names in a requeue. Also test type conformance for
8804 matching interpretations rather than requiring subtype conformance at
8805 that point to conform with the RM's resolution rule for requeues.
8806
88072007-12-13 Ed Schonberg <schonberg@adacore.com>
8808
8809 * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
8810 inherited operation is a defaulted tag-indeterminate call, and there is
8811 a statically tagged actual, use the static tag as a controlling actual
8812 for the defaulted actual.
8813
88142007-12-13 Geert Bosch <bosch@adacore.com>
8815
8816 * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
8817 context, so do not call Check_Non_Static_Context.
8818
88192007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8820
8821 * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
8822 whether formal E is an entity which may have parameters.
8823
88242007-12-13 Bob Duff <duff@adacore.com>
8825 Javier Miranda <miranda@adacore.com>
8826 Robert Dewar <dewar@adacore.com>
8827
8828 * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
8829 (Set_Convention): New procedure to set the Convention flag, and in
8830 addition make sure the Favor_Top_Level flag is kept in sync (all
8831 foreign-language conventions require Favor_Top_Level = True).
8832 (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
8833 to Related_Type.
8834 (Collect_Interfaces_Info): Minor update to handle the two secondary
8835 dispatch tables. Update occurrence of Related_Interface to Related_Type.
8836 (Generate_Parent_Ref): Add parameter to specify entity to check
8837 (Is_Preelaborable_Expression): Allow the name of a discriminant to
8838 initialize a component of a type with preelaborable initialization.
8839 This includes the case of a discriminal used in such a context.
8840 (Is_Dependent_Component_Of_Mutable_Object): Take into account the
8841 latest Ada 2005 rules about renaming and 'Access of
8842 discriminant-dependent components.
8843 (Check_Nested_Access): Add handling when there are no enclosing
8844 subprograms (e.g. case of a package body).
8845 (Find_Parameter_Type): Factor routine from several other compiler files.
8846 Remove routine from Find_Overridden_Synchronized_Primitive.
8847
88482007-12-13 Thomas Quinot <quinot@adacore.com>
8849
8850 * sinput.adb (Get_Source_File_Index): Add assertion to guard against
8851 an invalid access to an uninitialized slot in the
8852 Source_File_Index_Table.
8853
88542007-12-13 Thomas Quinot <quinot@adacore.com>
8855
8856 * sinput-l.adb (Load_File): Disable style checks when preprocessing.
8857
88582007-12-13 Bob Duff <duff@adacore.com>
8859
8860 * s-soflin.ads: Apply new pragma Favor_Top_Level to all
8861 access-to-subprogram types in this package.
8862
88632007-12-13 Olivier Hainque <hainque@adacore.com>
8864
8865 * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
8866 with Stack_Grows_Down in System.Parameters. Rename Array_Address into
8867 Stack_Overlay_Address and document that we are using an internal
8868 abstraction.
8869 (Byte_Size, Unsigned_32_Size): Remove, now useless.
8870 (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
8871 consistently throughout the various implementation pieces.
8872
8873 * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
8874 overlay we are using to fill the stack area with patterns.
8875 (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
8876 (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
8877 (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
8878
88792007-12-13 Robert Dewar <dewar@adacore.com>
8880
8881 * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
8882
88832007-12-13 Arnaud Charlet <charlet@adacore.com>
8884
9e81dbc7 8885 * s-tassta.adb:
e9b54d64
AC
8886 (Create_Task): Take into account tasks created by foreign threads.
8887 Code clean up: use constants instead of hard coded values.
8888
88892007-12-13 Robert Dewar <dewar@adacore.com>
8890
8891 * styleg.adb (Check_Comment): More liberal rules for comment placement
8892
88932007-12-13 Olivier Hainque <hainque@adacore.com>
8894
8895 * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
8896 of Procedure Value instead of Frame Pointer as the invocation
8897 identifier associated with the instruction pointer in each traceback
8898 entry.
8899
8900 * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
8901 TB_Entry_For): Revert back to use of Procedure Value instead of Frame
8902 Pointer as the invocation identifier passed to tbk$symbolize.
8903
8904 * s-traent-vms.ads, s-traent-vms.adb
8905 (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
8906 Procedure Value instead of Frame Pointer as the invocation identifier
8907 passed to tbk$symbolize.
8908
89092007-12-13 Robert Dewar <dewar@adacore.com>
8910
9e81dbc7 8911 * tbuild.ads, tbuild.adb:
e9b54d64
AC
8912 Fix location of flag for unrecognized pragma message
8913
89142007-12-13 Robert Dewar <dewar@adacore.com>
8915
8916 * treepr.ads, treepr.adb: (pl): implement use of positive value
8917 shorthands
8918
89192007-12-13 Robert Dewar <dewar@adacore.com>
8920
8921 * xeinfo.adb: Remove warnings
8922 * xnmake.adb: Remove warnings
8923 * xsinfo.adb: Remove warnings
8924 * xtreeprs.adb: Remove warnings
8925 * xsnames.adb: Remove warnings
8926
8927 * a-ngcoar.adb: Fix typo.
8928 * s-interr.adb: Minor reformatting
8929 * env.c: Minor reformatting.
8930 * g-bytswa.adb: Minor reformatting.
8931 * g-rannum.ads: Minor documentation improvements
8932 * s-tasinf-mingw.adb: Minor header fix
8933 * a-clrefi.adb: Minor reformatting
8934 * g-sttsne.ads: Minor documentation improvement
8935 * g-sttsne-locking.ads: Minor documentation improvement
8936 * g-soliop-solaris.ads: Minor documentation improvement
8937 * g-soliop-mingw.ads: Minor documentation improvement
8938 * g-soliop.ads: Minor documentation improvement
8939 * exp_aggr.ads: Minor reformatting
8940 * debug.adb: Add documentation for the gprbuild debug flags
8941 * exp_ch2.adb: Use Nkind_In to simplify code throughout
8942 * exp_pakd.adb: Minor reformatting
8943
8944 * g-altive.ads, g-alleve.adb: Remove assertions.
8945 Add comment about minor differences between targets regarding
8946 floating-point operations.
8947
8948 * g-thread.adb: Remove pragma unreferenced.
8949 * lib.ads: Minor reformatting
8950 * par-ch9.adb: Minor reformatting of error messages
8951 * sem_case.adb: Minor reformatting
8952 * s-fileio.adb: Minor reformattinng
8953 * s-vmexta.ads: Minor typo
9e81dbc7 8954 * vxaddr2line.adb:
e9b54d64
AC
8955 Take into account 'Success' value as per new GNAT warning.
8956
89572007-12-13 Vincent Celier <celier@adacore.com>
8958
8959 * a-direct.adb (Create_Path): Always take '/' as a directory separator,
8960 even on Windows
8961
89622007-12-13 Robert Dewar <dewar@adacore.com>
8963 Bob Duff <duff@adacore.com>
8964
8965 * gnat_ugn.texi: Dcoument new rules for style check comment alignment
8966 Document that suffixes may be terminations of each others
8967 Add doc for -gnatw.a and -gnatw.A
8968 Document gnatbind -Wx switch
8969 Document BOM recognition
8970 Document pragma Implemented_By_Entry.
8971 Document new units.
8972
8973 * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
8974 Add doc for pragma Unreferenced suppressing no entities referenced msg
8975 Add documentation of GNAT.Directory_Operations.Iteration
8976 Add documentation of GNAT.Random_Numbers
8977 Add documentation for pragma Shared.
8978 Correct documentation for Bit_Order
8979 Add documentation for the Pool_Address attribute.
8980 Fix and improve documentation of pragma machine_attribute.
8981 New pragma Fast_Math
8982 Document BOM recognition
8983
8984 * vms_data.ads: Add entries for -gnatw.a -gnatw.A
8985 Add /Wide_Character_Encoding for binder
8986 Add qualifier for the new gnatpp option --no-separate-loop-then
8987
89882007-12-13 Matthew Heaney <heaney@adacore.com>
8989
8990 * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
8991 which generic formal operations are called for each operation.
8992
89932007-12-13 Olivier Hainque <hainque@adacore.com>
8994
8995 * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
8996 (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
8997
89982007-12-13 Emmanuel Briot <briot@adacore.com>
8999
9000 * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
9001 Reference_Dir unless we actually need it.
9002
90032007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
9004 Tristan Gingold <gingold@adacore.com>
9005
9006 * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
9007
9008 * s-osprim-vms.adb,
9009 a-calend-vms.adb: Remove pragma warning off and add pragma
9010 unreferenced.
9011
90122007-12-13 Robert Dewar <dewar@adacore.com>
9013
9014 * impunit.adb: Add entries for missing units
9015
9016 * Makefile.rtl: Add new run-time units.
9017
9018 * Make-lang.in: Update dependencies.
9019
90202007-12-13 Bob Duff <duff@adacore.com>
9021
9022 * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
9023 types, set Can_Use_Internal_Rep appropriately, based on
9024 Always_Compatible_Rep_On_Target.
9025
90262007-12-13 Gary Dismukes <dismukes@adacore.com>
9027 Arnaud Charlet <charlet@adacore.com>
9028
9029 * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
9030 it to the front end and setting the aamp_target environment variable
9031 to the switch's argument to ensure that gnaampbind and gnaamplink will
9032 take the specified library into account.
9033 (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
9034 target, since the CIL compiler supports an "object" file (.il files).
9035
90362007-12-13 Vincent Celier <celier@adacore.com>
9037
9038 * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
9039 (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
9040
90412007-12-13 Geert Bosch <bosch@adacore.com>
9042
9e81dbc7 9043 * s-parame-vxworks.adb:
e9b54d64
AC
9044 Update comments to reflect usage of this package by Nucleus.
9045
90462007-12-13 Arnaud Charlet <charlet@adacore.com>
9047
9048 * i-vxwork.ads: Kill new warning on Convention C, since changing the
9049 spec would break code.
9050
9051 * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
9052
9053 * system-vxworks-alpha.ads: Removed.
9054
e74a122e
EB
90552007-12-10 Eric Botcazou <ebotcazou@adacore.com>
9056
9057 * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
9058
5320014a
ST
90592007-12-09 Samuel Tardieu <sam@rfc1149.net>
9060
9061 PR ada/34366
9062 * sem_ch3.adb (Designates_T): New function.
9063 (Mentions_T): Factor reusable part of the logic into Designates_T.
9064 Consider non-access parameters and access and non-access result.
9065 (Check_Anonymous_Access_Components): Set ekind of anonymous access to
9066 E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
9067
9068 * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
9069
da746f77
LB
90702007-12-07 Ludovic Brenta <ludovic@ludovic-brenta.org>
9071
9d651736 9072 PR ada/34361
da746f77
LB
9073 * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
9074 the new implementation of target-specific calls.
9075
ebe0660b
OH
90762007-12-07 Olivier Hainque <hainque@adacore.com>
9077
9078 * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
9079 the designated full view, only follow a second level Full_View link
9080 for Non_Limited_Views of from_limited_with references.
9e81dbc7 9081
2eb160f2
ST
90822007-12-07 Samuel Tardieu <sam@rfc1149.net>
9083
9084 PR ada/15805
9085 * sem_ch6.adb (Process_Formals): Prevent an access type formal
9086 to be initialized with an access to constant object.
9087
9cc11b58
ST
9088 * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
9089 when an access to constant is used to initialize an access
9090 value.
9091
72f69ddf
ST
9092 PR ada/21346
9093 * a-direct.adb (Compose): Containing_Directory can be an empty string.
9094
5a2fe31a
OH
90952007-12-07 Olivier Hainque <hainque@adacore.com>
9096
9097 PR ada/34173
9098 * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
9099 the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
9100 this is from an alignment clause on the GNAT entity.
9101 * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
9102 to distinguish the case where we set it from the type's alignment.
9103 When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
9104 whether this alignment was set from an explicit alignment clause.
9105
4039fb35
EB
91062007-12-06 Eric Botcazou <ebotcazou@adacore.com>
9107
9108 * decl.c (make_packable_type): Revert last change.
9109 (gnat_to_gnu_field): Avoid setting size and position multiple times.
9110 * utils.c (finish_record_type): Retrieve the real name of the type.
9111
0ec479dc
EB
91122007-12-05 Eric Botcazou <ebotcazou@adacore.com>
9113
9114 * trans.c (lvalue_required_p): Take base node directly instead
9115 of its parent. Rename second parameter to 'gnu_type'.
9116 <N_Indexed_Component>: Return 0 if the node isn't the prefix.
9117 <N_Slice>: Likewise.
9118 (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
9119 Adjust calls to lvalue_required_p.
9120
07c7262e
ST
91212007-12-05 Samuel Tardieu <sam@rfc1149.net>
9122
9123 PR ada/21489
9124 * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
9125 parameters of an entry call.
9126
9e94c78f 91272007-12-03 Robert Dewar <dewar@adacore.com>
9e81dbc7 9128 Samuel Tardieu <sam@rfc1149.net>
403fd939
RD
9129
9130 PR ada/34287
9131 * sem_util.adb (Safe_To_Capture_Value): Do not capture values
9132 of variables declared in a library-level package.
9e81dbc7 9133
0bcb4d2a
ST
91342007-12-02 Samuel Tardieu <sam@rfc1149.net>
9135
9136 * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
9137 of Empty_String'Unchecked_Access.
9138
dd9c642a
ST
9139 * Makefile.in: Add support for sh4-linux.
9140
9141 * system-linux-sh4.ads: New file.
9142
35330114
KB
91432007-12-01 Kostik Belousov <kostikbel@ukr.net>
9144
9145 PR ada/33722
9146 * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
9147 and its argument must not be free()ed.
9148
a6dcb051
EB
91492007-11-29 Eric Botcazou <ebotcazou@adacore.com>
9150
9151 * decl.c (make_packable_type): Retrieve the real name of the type.
9152 (maybe_pad_type): Simplify similar code.
9153
39a97416
ST
91542007-11-28 Samuel Tardieu <sam@rfc1149.net>
9155
a6968b8b 9156 PR ada/15804
39a97416
ST
9157 * par-ch3.adb (P_Variant_Part): Signal an error when anything other
9158 than an identifier is used after "case" in a variant_part.
9159
b99dfeb3 9160 PR ada/17318
9c5a3a8d
ST
9161 * par-ch4.adb (Is_Parameterless_Attribute): New map.
9162 (P_Name, Scan_Apostrophe block): Parse left parenthesis following
9163 attribute name or not depending on the new map.
9164
9165 * sem-attr.adb (Analyze_Attribute): Parameterless attributes
9166 returning a string or a type will not be called with improper
9167 arguments.
9168
9169 * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
9170
9171 * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
9172
5a218498
ST
9173 PR ada/32792
9174 * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
9175 Signal an error when attribute argument is a fixed-point value of
9176 an unknown type.
9177
7bde4677
ST
9178 PR ada/22559
9179 * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
9180 a derived ordinary fixed point type.
9181
9182 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
9183 RM_Size when a Small clause is found.
9184
182e0d71
AK
91852007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
9186
9e81dbc7
AS
9187 PR 34081/C++
9188 * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
9189 Pass 'false' for the new allocate_struct_function parameter.
9190 * utils.c (build_function_stub): Likewise.
182e0d71 9191
87caf699
RG
91922007-11-25 Richard Guenther <rguenther@suse.de>
9193
4039fb35 9194 * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
87caf699
RG
9195 (gnat_poplevel): Likewise.
9196
f1c8c7ee
EB
91972007-11-25 Eric Botcazou <ebotcazou@adacore.com>
9198
9199 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
9200 strict alignment, no alignment clause and a known static size, cap
9201 the type alignment to the greatest power of 2 factor of the size.
9202 (gnat_to_gnu_field): If the field has a component clause, is aliased
9203 or of a type with strict alignment, require that its size be equal to
9204 that of the type.
9205 (validate_size): Use the type size as the minimum size for a type with
9206 strict alignment.
9207
bb1f5840
ST
92082007-11-23 Samuel Tardieu <sam@rfc1149.net>
9209
9210 * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
9211 s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
9212 s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
9213 Use 'Access instead of 'Unchecked_Access in second and third
9214 arguments of pthread_sigmask.
9215
5102fac5
EB
92162007-11-23 Eric Botcazou <ebotcazou@adacore.com>
9217
9218 * decl.c (ceil_alignment): New function.
9219 (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
9220 (make_packable_type): Likewise.
9221
1fa4dfc6
OH
92222007-11-22 Olivier Hainque <hainque@adacore.com>
9223
9224 * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
9225 to fit in 80 columns.
9226
9e94c78f 92272007-11-21 Aurelien Jarno <aurelien@aurel32.net>
5f45b299
AJ
9228
9229 * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
9230 * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
9231
7634135a
EB
92322007-11-19 Eric Botcazou <ebotcazou@adacore.com>
9233
9234 PR ada/34098
9235 * misc.c (gnat_adjust_rli): Delete.
9236 (gnat_init): Do not initialize the translation code here.
9237 Do not call set_lang_adjust_rli.
9238 * trans.c (init_code_table): Make static.
9239 (gnat_init_stmt_group): Delete.
9240 (gigi): Initialize the translation code entirely here.
9241 Emit debug info for the common types here instead of...
9242 * utils.c (gnat_init_decl_processing): ...here.
9243 * gigi.h (init_code_table): Delete.
9244 (gnat_init_stmt_group): Likewise.
9245
b2c3bcf4
OH
92462007-11-16 Olivier Hainque <hainque@adacore.com>
9247
9248 * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
9249 retrieving an allocator return value from a super-aligned address from
9250 here to ...
9251 * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
9252 expect a super-aligned address for a fat or thin pointer.
9e81dbc7 9253
a01e283f
EB
92542007-11-14 Eric Botcazou <ebotcazou@adacore.com>
9255
9256 * trans.c (call_to_gnu): Always set the source location on the call
9257 expression. If the function returns-by-target, also set it on the
9258 address expression.
9259
713c3145
ST
92602007-11-14 Samuel Tardieu <sam@rfc1149.net>
9261
356d8961 9262 * adaint.c, init.c, initialize.c, link.c: Remove system-specific
713c3145
ST
9263 sections of non-supported Interix target.
9264
9265 * s-osinte-interix.ads: Removed.
9266
1e992e16
ST
9267 * i-cstrin.ads (chars_ptr): Make it a C convention type.
9268
0e506c4b
ST
92692007-11-13 Samuel Tardieu <sam@rfc1149.net>
9270
9271 * a-tasatt.adb: Add a comment at the beginning of the package
9272 explaining why in general 'Unchecked_Access must be used instead
9273 of 'Access.
9274
66beb09b
ST
9275 * sem_prag.adb (Process_Convention): Move the test for the
9276 entity on which the Convention pragma applies down to also
9277 forbid pragma Convention on enumeration literals reached
9278 through renamings.
9279
14678e46
ST
92802007-11-10 Samuel Tardieu <sam@rfc1149.net>
9281
9282 * a-tasatt.adb: Revert previous change for this file as it will
9283 generate an error when this package is instantiated from a
9284 local context.
9285
f9d806de
ST
92862007-11-07 Samuel Tardieu <sam@rfc1149.net>
9287
9288 * a-tasatt.adb: Type Wrapper should be declared in comment instead
9289 of already declared type Node_Access.
dcbd752d
ST
9290 Use 'Access instead of 'Unchecked_Access when applicable. Local
9291 lifetime is the one of the package.
9292 (Set_Value): W is allocated on the heap.
9293
9294 * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
9295 applicable.
9296 (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
9297 access type.
9298 (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
9299 access type.
9300
9301 * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
9302 applicable.
9303 (elaboration code): Timer_Queue lifetime is the one of the
9304 package.
f9d806de 9305
bc01690e
ST
9306 * tracebak.c (i386 alternative): Remove useless comparaison
9307 which is always false; LOWEST_ADDRESS is 0 and is never greater
9308 than an unsigned integer.
9309
d9c1dc68
ST
9310 * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
9311 embedded check for "Ada_Version >= Ada_05".
9312
cb88a3ea
OH
93132007-11-07 Olivier Hainque <hainque@adacore.com>
9314
9315 * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
9316 craft and expand comment.
9317
233a722b
EB
93182007-11-01 Eric Botcazou <ebotcazou@adacore.com>
9319
9320 * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
9321
6d1e8bff
EB
93222007-10-23 Eric Botcazou <ebotcazou@adacore.com>
9323
9324 * misc.c (gnat_handle_option): Replace call to abort with
9325 call to gcc_unreachable.
9326 (gnat_init): Likewise.
9327 (gnat_expand_expr): Likewise.
9328 (fp_prec_to_size): Likewise.
9329 (fp_size_to_prec): Likewise.
9330
262e7125
RG
93312007-10-23 Richard Guenther <rguenther@suse.de>
9332
9333 PR bootstrap/33608
9334 * tracebak.c: #undef abort after including system.h.
9335
9e94c78f 93362007-10-20 Danny Smith <dannysmith@users.sourceforge.net>
c8f499a9
DS
9337
9338 * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
9339 s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
9340 for win32 targets.
9341 (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
9342
f0e1e807
AC
93432007-10-15 Eric Botcazou <ebotcazou@adacore.com>
9344
9345 * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
9346 Set the protection status of the guard page based on the value of On.
9347
9348 * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
9349
9350 * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
9351 (Exit_Task): Pass False to Hide_Yellow_Zone.
9352
93532007-10-15 Robert Dewar <dewar@adacore.com>
9354
9e81dbc7 9355 * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
f0e1e807 9356 s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
9e81dbc7
AS
9357 a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
9358 checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
9359 freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
9360 gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
9361 mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
9362 prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
9363 sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
f0e1e807 9364 s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
9e81dbc7
AS
9365 uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
9366 a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
9367 a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
9368 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
9369 a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
f0e1e807
AC
9370 a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
9371 Minor reformatting.
9372 Add Unreferenced and Warnings (Off) pragmas for cases of
9373 variables modified calls where they are IN OUT or OUT parameters and
9374 the resulting values are not subsequently referenced. In a few cases,
9375 we also remove redundant code found by the new warnings.
9376
9e81dbc7 9377 * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
f0e1e807
AC
9378 sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
9379 sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
9380 sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
9381 warning controlled by -gnatw.o that warns on cases of out parameter
9382 values being ignored.
9383
93842007-10-15 Geert Bosch <bosch@adacore.com>
9385
9386 * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
9387
9388 * expect.c: Initial port to arm-mentor-nucleus.
9389 Use kill for __gnat_kill() on VMS.
9390
93912007-10-15 Emmanuel Briot <briot@adacore.com>
9392
9393 * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
9394 value.
9395 (Xref_Record): Change type for Line, since in the case of a reference to
9396 a predefined entity (as happens for array index types), the line is set
9397 to 0.
9398 Add support for parsing multiple array index types info, or
9399 multiple inherited interfaces info. This information cannot be stored
9400 in Xref_Entity_Record, which only supports a single instance of Tref_*,
9401 and is therefore stored in the list of references instead. It has a
9402 special treatement later on in tools that use this information.
9403
94042007-10-15 Tristan Gingold <gingold@adacore.com>
9405
9406 * debug.adb: Document use of -gnatd.a and -gnatd.I
9407
9408 * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
9409
94102007-10-15 Javier Miranda <miranda@adacore.com>
9411
9412 * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
9413 Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
9414 care of access to class-wide interface types plus removal of bizarre
9415 conversion of tagged object to access type (reported by Gary
9416 Dismukes). After this patch there is no need to perform any
9417 additional management on these nodes in Expand_Interface_Actuals.
9418
9419 * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
9420 that handles use of 'Access and 'Unchecked_Access applied to
9421 actuals covering interface types. Such code is now
9422 centralized in Expand_N_Attribute_Reference.
9423
94242007-10-15 Ed Schonberg <schonberg@adacore.com>
9425
9426 * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
9427 of tagged types whose ultimate ancestor is a CPP type.
9428 (Freeze_Array_Type): For a packed array type, generate an initialization
9429 procedure if the type is public, to handle properly a client that
9430 specifies Normalize_Scalars.
9431
94322007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
9433
9434 * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
9435 inside a generic body, retrieve the full view of the entry family
9436 discrete subtype if available.
9437
94382007-10-15 Thomas Quinot <quinot@adacore.com>
9439
9440 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
9441 attempt to generate stubs for hidden primitive operations.
9442
94432007-10-15 Vincent Celier <celier@adacore.com>
9444
9445 * mlib-tgt-specific.adb (Support_For_Libraries): New function,
9446 returning None, used when there is no platform specific body for
9447 MLib.Tgt.Specific.
9448
94492007-10-15 Bob Duff <duff@adacore.com>
9450
9451 * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
9452 (passing'Unrestricted_Access of nested subprograms to Sort) with use of
9453 the generic Heap_Sort_G, in order to avoid trampolines.
9454
94552007-10-15 Vasiliy Fofanov <fofanov@adacore.com>
9456 Jose Ruiz <ruiz@adacore.com>
9457
9458 * vx_stack_info.c: New file.
9459
9460 * i-forbla-unimplemented.ads: New file.
9461
9462 * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
9463 for unsupported configurations; use it on VMS targets instead of the
9464 real one.
9465 (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
9466 vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
9467 used by VxWorks targets to have access to task-specific data and be
9468 able to extract the stack boundaries for stack checking.
9469 Use system-vms-ia64.ads on ivms.
9470
9471 * Make-lang.in: Update dependencies.
9472
9473 * sysdep.c (__gnat_get_stack_info): Move to a standalone file
9474 (vx_stack_info.c).
9475
94762007-10-15 Vincent Celier <celier@adacore.com>
9477
9478 * snames.adb, snames.ads: Add new standard name runtime_library_dir
9479
9480 * prj.ads (Language_Config): Add new component Runtime_Library_Dir
9481
9482 * prj-attr.adb: Add project level attribute Runtime_Library_Dir
9483
9484 * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
9485 the source is unknown.
9486
9487 * prj-ext.adb: Spelling error fix
9488
9489 * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
9490 95 reserved word in its name.
9491 (Process_Project_Level_Array_Attributes): Process new attribute
9492 Runtime_Library_Dir.
9493
9494 * prj-part.adb (Parse_Single_Project): Do not check the name of the
9495 config project against the user project names.
9496
9497 * prj-proc.adb (Expression): In multi-language mode, indexes that do
9498 not include a dot are always case insensitive.
9499 (Process_Declarative_Items): Ditto
9500 (Process_Project_Tree_Phase_1): Set Success to False in case an error is
9501 detected.
9502
9503 * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
9504 True, compare both indexes in lower case.
9505
95062007-10-15 Robert Dewar <dewar@adacore.com>
9507
9508 * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
9509
95102007-10-15 Gary Dismukes <dismukes@adacore.com>
9511
9512 * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
9513 association for an access component, add an association with null as
9514 the expression. Remove testing for array subtypes and the setting in
9515 that case of Ctyp to the array component type, which prevented proper
9516 inclusion of an association for null-initialized arrays. Collapse
9517 condition that tests for array subtypes into just a test of
9518 Is_Partially_Initialized_Type (which already covers arrays anyway).
9519
95202007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
9521
9522 * sem_ch12.adb: Minor code reformatting.
9523 (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
9524 find the parent package which may have been hidden by local
9525 declarations.
9526
95272007-10-15 Gary Dismukes <dismukes@adacore.com>
9528
9529 * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
9530 flag of derived concurrent types, taking into account the flag setting
9531 on the parent subtype and any new set of discriminants.
9532
95332007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
9534
9535 * sem_ch4.adb: Minor code and comment reformatting.
9536 (Analyze_Allocator): When the designated type of an unconstrained
9537 allocator is a record with unknown discriminants or an array with
9538 unknown range bounds, emit a detailed error message depending on the
9539 compilation mode and whether the designated type is limited.
9540
95412007-10-15 Tristan Gingold <gingold@adacore.com>
9542
9543 * system-vms-ia64.ads: New file.
9544
9545 * system-vms_64.ads: Minor comment fix.
9546
95472007-10-15 Ed Schonberg <schonberg@adacore.com>
9548
9549 * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
9550 body generated for a function with a controlling result that is a null
9551 extension, discard the generated body in favor of the current explicit
9552 one.
9553
95542007-10-15 Ed Schonberg <schonberg@adacore.com>
9555
9556 * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
9557 examining its original form, to handle properly operator calls that
9558 have been rewritten.
9559
95602007-10-15 Olivier Hainque <hainque@adacore.com>
9561
9562 * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
9563 instead of a procedure value in each traceback entry.
9564
9565 * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
9566 instead of procedure value to TBK$SYMBOLIZE.
9567
9568 * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
9569 field.
9570 (TB_Entry_For): Account for the PV/FP renaming.
9571
9572 * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
9573 add comment.
9574 (Null_TB_Entry): Account for change of component name.
9575 (PV_For): Rename as FP_For.
9576
95772007-10-15 Tristan Gingold <gingold@adacore.com>
9578
9579 * trans.c (gnat_to_gnu): Remove the padding structure more often.
9580 This optimize assignment to over-aligned record.
9581
95822007-10-15 Emmanuel Briot <briot@adacore.com>
9583
9584 * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
9585 interfaces.
9586
9587 * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
9588 type, for dispatching calls.
9589
95902007-10-15 Vincent Celier <celier@adacore.com>
9591 Robert Dewar <dewar@adacore.com>
9592
9593 * gnat_ugn.texi: Add documentation for switches --version and --help
9594 for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
9595 gnatxref, gnatfind, gnatls, and gnatclean.
9596 Document -gnatw.o.
9597 Mention attribute Excluded_Source_Dirs
9598 Replace obsolescent attribute Locally_Removed_Files with attribute
9599 Excluded_Source_Files.
9600 Improve documentation of -u (gnatbind)
9601 Document how to do reliable stack checking for the environmental task
9602 on iVMS.
9603
9604 * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
9605 Document attribute Excluded_Source_Files and indicate that attribute
9606 Locally_Removed_Files is obsolescent.
9607
96082007-10-15 Thomas Quinot <quinot@adacore.com>
9609
9610 * g-soccon-vms.ads: Fix value of MSG_WAITALL.
9611
9e81dbc7 9612 * gen-soccon.c:
f0e1e807
AC
9613 Update documentation to note that OpenVMS 8.3 or later must be used
9614 to generate g-soccon-vms.ads.
9615
9616 * atree.adb: Add ??? comment
9617
9618 * exp_util.adb: Minor reformatting.
9619 Add ??? comment in Kill_Dead_Code.
9620
96212007-10-15 Robert Dewar <dewar@adacore.com>
9622
9623 * errout.ads: Comment clarification
9624
9625 * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
9626 (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
9627
9628 * lib.ads: Comment update
9629
9630 * init.c: Minor reformatting.
9631
9632 * sem_attr.adb: Minor formatting
9633
9634 * osint-b.ads: Minor reformatting
9635
9636 * sem_ch9.adb: Implement -gnatd.I switch
9637
9638 * g-comlin.adb: (Start): Fix handling of empty command line.
9639
9640 * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
9641 even when -rules follows the -cargs section.
9642
6524147c
OW
96432007-10-08 Ollie Wild <aaw@google.com>
9644
9645 * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
9646 gnat_return_tree.
9647 (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
9648 gnat_return_tree.
9649 (gnat_eh_runtime_type): Removed.
9650 (gnat_return_tree): New function.
9651
dff6abb2
BE
96522007-10-08 Ben Elliston <bje@au.ibm.com>
9653
9654 PR ada/33454
9655 Revert:
9656 2007-08-31 Ben Elliston <bje@au.ibm.com>
9657
9658 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
9659 when compiling for powerpc64-*-linux.
9660 * system-linux-ppc64.ads: New file.
9661
c3048783
EB
96622007-09-27 Eric Botcazou <ebotcazou@adacore.com>
9663
9664 Mapped location support
9665 * back_end.adb (Call_Back_End): Pass information about source
9666 files instead of units to gigi.
9667 * gigi.h (struct File_Info_Type): New.
9668 (gigi): Rename and change type of number_units parameter, change
9669 type of file_info_ptr parameter.
9670 * trans.c (number_files): New global variable.
9671 (gigi): Rename and change type of number_units parameter, change
9672 type of file_info_ptr parameter.
9673 If mapped location support is enabled, create the isomorphic mapping
9674 between source files and line maps.
9675 (Sloc_to_locus): If mapped location support is enabled, translate
9676 source location into mapped location.
9677 (annotate_with_node): Rename into set_expr_location_from_node.
9678 Call set_expr_location instead of annotate_with_locus.
9679 (Pragma_to_gnu): Adjust for above change.
9680 (Loop_Statement_to_gnu): Likewise.
9681 (call_to_gnu): Likewise.
9682 (Handled_Sequence_Of_Statements_to_gnu): Likewise.
9683 (gnat_to_gnu): Likewise.
9684 (add_stmt_with_node): Likewise.
9685 (add_cleanup): Likewise.
9686 * utils.c (gnat_init_decl_processing): Do not set input_line.
9687
68b72a44
AC
96882007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
9689
9690 * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
9691 (Applicable_Use): Emit a warning when a package tries to use itself.
9692 (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
9693 is already in use or the package where it is declared is in use or is
9694 declared in the current package.
9695 (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
9696
9697 * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
9698 s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
9699 s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
9700
97012007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
9702
9e81dbc7 9703 * a-calend-vms.adb, a-calend.adb:
68b72a44
AC
9704 Add a section on leap seconds control along with two entities used to
9705 enable and disable leap seconds support. The array Leap_Second_Times is
9706 now constant and contains hard time values pre-generated. Remove
9707 all elaboration code used to populate the table of leap seconds.
9708
9e81dbc7 9709 * bindgen.adb:
68b72a44
AC
9710 Add entity Leap_Seconds_Support to the list of global run-time variables
9711 along with a comment on its usage and values.
9712 (Gen_Adainit_Ada): Add code to generate the declaration and import of
9713 Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
9714 or one (enabled) depending on the presence of binder switch "-y".
9715 (Gen_Adainit_C): Add code to generate the declaration of external int
9716 __gl_leap_seconds_support. Set is value to zero (disabled) or one
9717 (enabled) depending on the presence of binder switch "-y".
9718
9719 * init.c: Add __gl_leap_seconds_support to the list of global values
9720 computed by the binder.
9721
97222007-09-26 Jerome Guitton <guitton@adacore.com>
9723
9724 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
9725 s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
9726 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
9727 s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
9728
9729 * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
9730
9731 * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
9732 function which can be called by the debugger to interrupt the tasks of
9733 an Ada application asynchronously, as needed on VxWorks.
9734 (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
9735
9736 * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
9737 renamed from Stop_All_Tasks. Update comments.
9738 (Stop_All_tasks): New function declaration.
9739
97402007-09-26 Olivier Hainque <hainque@adacore.com>
9741
9742 * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
9743 #include <utime.h> and #define GCC_RESOURCE_H before
9744 #include <sys/wait.h>.
9745 Add more protections in __gnat_translate_vms.
9746
9747 * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
9748 #include <sys/wait.h>.
9749
97502007-09-26 Thomas Quinot <quinot@adacore.com>
9751 Sergey Rybin <rybin@adacore.com>
9752
9753 * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
9754
9755 * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
9756 where it belongs.
9757
9758 * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
9759
9760 * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
9761 where it belongs.
9762
9763 * sem_dist.ads: Minor comment fix
9764
9765 * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
9766
97672007-09-26 Javier Miranda <miranda@adacore.com>
9768 Eric Botcazou <ebotcazou@adacore.com>
9769
9e81dbc7 9770 * a-tags.adb:
68b72a44
AC
9771 (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
9772 indirection added to the HT_Link component of the TSD. This is required
9773 to statically allocate the TSD.
9774
9e81dbc7 9775 * a-tags.ads:
68b72a44
AC
9776 Minor reordering of the declarations in the private part. Required to
9777 add a level of indirection to the contents of the TSD component HT_Link.
9778 This is required to statically allocate the TSD.
9779
9780 * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
9781 Is_Statically_Allocated set from constant objects.
9782 Do not make exported constants created by the compiler volatile.
9783 (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
9784 as read-only.
9785
9786 * trans.c (Identifier_to_gnu): For constants, unshare initializers
9787 before returning them.
9788
9789 * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
9790 public part of the package.
9791 (Make_DT): Move HT_Link component out of the TSD record. For this
9792 purpose Make_DT now declares a separate object that stores the
9793 HT_Link value, and initializes the TSD component with the address
9794 of this new object. The addition of this level of indirection is
9795 required to statically allocate the TSD because the TSD cannot
9796 have variable components.
9797 (Expand_Interface_Conversion): Improve the expanded code.
9798 (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
9799
9800 * sem_disp.adb (Check_Dispatching_Operation): In case of a body
9801 declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
9802 if we are building static dispatch tables then we must not generate
9803 extra code to register the primitive because the dispatch table will
9804 be built at the end of the library package; otherwise we notify that
9805 we cannot build the static dispatch table.
9806
98072007-09-26 Robert Dewar <dewar@adacore.com>
9808
9809 * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
9810 overlays.
9811
9812 * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
9813 (Analyze_Record_Representation_Clause): Suppress junk warning for
9814 missing component clause.
9815 (Analyze_Attribute_Definition_Clause, case Address): Apply the special
9816 tests for controlled type overlay to composites with controlled
9817 components.
9818 (Analyze_Record_Representation_Clause): Add reference for component name
9819
98202007-09-26 Javier Miranda <miranda@adacore.com>
9821 Gary Dismukes <dismukes@adacore.com>
9822
9823 * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
9824 for thunks associated with interface types.
9825
9826 * einfo.ads: Improve documentatation of Is_Internal
9827 (Is_Thunk): New attribute applicable to subprograms. True for thunks
9828 associated with interface types.
9829 Extensive comment fixes regarding flags that appear in all entities. The
9830 documentation is now consistent for all such flags (there were a number
9831 of errors in the documentation in this regard).
9832
9833 * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
9834
9835 * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
9836 of these procedures are passed a function call that already has
9837 build-in-place actuals (testing new flag
9838 Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
9839 the case where processing continues.
9840 (Expand_Call): If the call is generated from a thunk body then we
9841 propagate the extra actuals associated with the accessibility
9842 level of the access type actuals.
9843
9844 * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
9845 of each extra formal of a protected operation to reference the
9846 corresponding extra formal of the subprogram denoted by the
9847 operation's Protected_Body_Subprogram.
9e81dbc7 9848
68b72a44
AC
9849 * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
9850 N_Function_Call nodes.
9851
98522007-09-26 Robert Dewar <dewar@adacore.com>
9853
9854 * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
9855
9856 * debug.adb: Add d.s flag.
9857
98582007-09-26 Gary Dismukes <dismukes@adacore.com>
9859
9860 * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
9861 debug variable so that it won't be initialized when pragma
9862 Initialize_Scalars is in effect.
9863
98642007-09-26 Gary Dismukes <dismukes@adacore.com>
9865
9866 * freeze.adb (Freeze_Entity): Remove check for preelaborable
9867 initialization of a full view. This is moved to
9868 Analyze_Package_Specification.
9869
9870 * sem_ch7.adb (Analyze_Package_Specification): Add check for
9871 preelaborable initialization of a full view in entity loop.
9872 (Uninstall_Declarations): If entity is a use-visible compilation unit,
9873 its child units are use-visible only if they are visible child units.
9874
9875 * sem_util.adb (Is_Preelaborable_Expression): New function to determine
9876 whether an expression can be used within a type declaration that
9877 requires preelaborable init.
9878 (Check_Components): Replace inline code that does partial checking for
9879 preelaborable default expressions with call to
9880 Is_Preelaborable_Expression.
9881 (Has_Preelaborable_Initialization): In the case of a generic actual
9882 subtype, (that is, Is_Generic_Actual is True), return the result of
9883 applying Has_Preelaborable_Initialization to the generic actual's base
9884 type.
9885
98862007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
9887
9888 * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
9889 call to Jan_1_Day _Of_Week to optimize its performance.
9890 (Is_Leap): Move the routine to the scope of Week_In_Year.
9891 (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
9892 weekday on which January 1 falls of Year - 1 and Year + 1. This function
9893 avoids calling Time_Of and Split, thus making it more efficent.
9894 (Week_In_Year): Reimplemented in oder to follow ISO 8601.
9895
9896 * g-calend.ads (Week_In_Year): Change comment to reflect new
9897 implementation.
9898
98992007-09-26 Emmanuel Briot <briot@adacore.com>
9900
9901 * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
9902 Command_Line): New types
9903 (Define_Alias, Define_Prefix, Free): New subprograms. These provide
9904 support for defining how switches can be grouped on a command line (as
9905 is the case for -gnatw... for GNAT), and how simple switches can be
9906 used as aliases for more complex switches (-gnatwa is same as
9907 -gnatwbcef...)
9908 (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
9909 (Start, Current_*): New subprograms
9910 Added support for parsing an array of strings in addition to the real
9911 command line.
9912 (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
9913 be moved from the body to the private part of the spec.
9914 (*): All subprograms now have an extra parameter with default value to
9915 specify which parser should be used. For backward compatibility, it
9916 defaults to parsing the command line of the application. They were also
9917 modified to properly handle cases where each of the argument does not
9918 start at index 1 (which is always true for Ada.Command_Line, but not
9919 when processing any Argument_List).
9920 (Free): New subprogram
9921 (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
9922 Argument): New subprograms
9923 (Switch_Parameter_Type): New enum, which clarifies the code. The extra
9924 special characters like ':', '=',... are now handled in a single place,
9925 which makes the code more extensible eventually.
9926 (Getopt, Full_Switch): When the switch was returned as part of the
9927 special character '*', make sure it is prepended by the switch character
9928 ('-' in general), so that the application knows whether "foo" or "-foo"
9929 was specified on the command line.
9930
99312007-09-26 Florian Villoing <villoing@adacore.com>
9932
9933 * g-dirope.adb (Remove_Dir): In case we are removing directories
9934 recursively, make sure that if an exception is raised during the
9935 processing, the current working directory is reset to its initial
9936 value before propagating the exception.
9937
99382007-09-26 Vincent Celier <celier@adacore.com>
9939
9940 * gnatbind.adb: If there are several ALI files specified and there is
9941 a main program to bind, the first ALI is expected to contain the main
9942 subprogram and the names of the binder generated files will be derived
9943 from the first ALI file name.
9944 (Gnatbind): Fix insertion character in invocation of Error_Msg
9945
99462007-09-26 Vincent Celier <celier@adacore.com>
9947
9948 * gnatcmd.adb (Check_Files): Do not include sources that have been
9949 removed by attributes Exclude_Source_Files or Locally_Removed_Files.
9950
99512007-09-26 Ed Schonberg <schonberg@adacore.com>
9952
9953 * lib-xref.ads, lib-xref.adb: The entry for array types now carries
9954 information about each of its index types, following the type
9955 reference for its component type.
9956
99572007-09-26 Vincent Celier <celier@adacore.com>
9958
9959 * make.adb: (Kill): New procedure (__gnat_kill imported)
9960 (Running_Compile, Outstanding_Compiles): Global variables that
9961 were previously local to procedure Compile_Sources.
9962 (Sigint_Intercepted): Send signal SIGINT to all outstanding
9963 compilation processes.
9964
9965 (Gnatmake): If project files are used, create the mapping of all the
9966 sources, so that the correct paths will be found.
9967
9968 * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
9969
99702007-09-26 Vincent Celier <celier@adacore.com>
9971
9972 * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
9973
9974 * prj.ads, prj.adb (Default_Language): Remove function, no longer used
9975 Replace components Compiler_Min_Options and Binder_Min_Options with
9976 Compiler_Required_Switches and Binder_Required_Switches in record
9977 Language_Config.
9978 Remove components Default_Language and Config in Project_Tree_Data,
9979 no longer used.
9980
9981 * prj-attr.adb: New attributes Required_Switches (<language>) in
9982 packages Compiler and Binder.
9983
9984 * prj-nmsc.adb: Major rewrite of the processing of configuration
9985 attributes for gprbuild. No impact on GNAT tools.
9986
9987 * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
9988 process configuration attributes: this is done in Prj.Nmsc.Check.
9989 (Recursive_Process): Make a full copy of packages inherited from project
9990 being extended, instead of a shallow copy.
9991 (Process_Project_Tree_Phase_1): New procedure
9992 (Process_Project_Tree_Phase_1): New procedure
9993 (Process): Implementation now uses the two new procedures
9994
9995 * prj-util.adb (Executable_Of): Get the suffix and the default suffix
9996 from the project config, not the tree config that no longer exists.
9997
99982007-09-26 Vincent Celier <celier@adacore.com>
9999
10000 * Make-lang.in: Update dependencies..
10001
100022007-09-26 Vincent Celier <celier@adacore.com>
10003
10004 * osint.adb, osint.ads: Minor reformatting
10005
10006 * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
10007
100082007-09-26 Gary Dismukes <dismukes@adacore.com>
10009
10010 * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
10011 message to cite use of <> in aggregate component associations rather
10012 than wrongly indicating use of limited aggregates.
10013
100142007-09-26 Robert Dewar <dewar@adacore.com>
10015
10016 * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
10017 Address_Taken.
10018
100192007-09-26 Ed Schonberg <schonberg@adacore.com>
10020
10021 * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
10022 ancestor of the derived type, the operations are inherited from the
10023 primary dispatch table of the parent.
10024 (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
10025 when the context is an explicit type conversion.
10026
100272007-09-26 Ed Schonberg <schonberg@adacore.com>
10028
10029 * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
10030 rule for qualified expressions properly, to detect improper conversions
10031 and resolve some cases of overloading.
10032
100332007-09-26 Ed Schonberg <schonberg@adacore.com>
10034
10035 * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
10036 proper kind of reference to the primitive operation, for better source
10037 navigation.
10038 (Valid_Conversion): A tagged conversion is legal if both operands are
10039 tagged.
10040
100412007-09-26 Robert Dewar <dewar@adacore.com>
10042
10043 * sem_warn.adb (Check_References): Catch more cases of unreferenced
10044 packages.
10045
100462007-09-26 Vincent Celier <celier@adacore.com>
10047
10048 * snames.adb, snames.ads: Change Include_Option to Include_Switches
10049
100502007-09-26 Robert Dewar <dewar@adacore.com>
10051
10052 * s-wchstw.adb: provide messages for run time unit exceptions
10053
10054 * a-witeio.adb: Minor reformatting
10055
10056 * exp_ch13.adb: Minor reformatting
10057
100582007-09-26 Sergey Rybin <rybin@adacore.com>
10059
10060 * vms_data.ads: Revise gnatmetric qualifiers.
10061 Add qualified for the new gnatbind option '-y'
10062
10063 * gnat_ugn.texi: Revise the gnatmetric section.
10064 Add entry for new gnatbind option '-y'.
10065
10066 * gnat_rm.texi: Minor spelling correction.
10067 Document restriction on overlaying controlled types
10068
100692007-09-26 Vincent Celier <celier@adacore.com>
10070
10071 * makegpr.adb (Link_Executables): Do not fail when the root project has
10072 no sources, but is an extending project.
10073
0a86bcc9
EB
100742007-09-25 Eric Botcazou <ebotcazou@adacore.com>
10075
10076 * trans.c: Fix misplaced #define.
10077
b235734c
EB
100782007-09-22 Eric Botcazou <ebotcazou@adacore.com>
10079
10080 * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
10081 the TYPE_REF_CAN_ALIAS_ALL flag to the result.
10082
97237784
OH
100832007-09-21 Olivier Hainque <hainque@adacore.com>
10084
10085 * utils.c (type_for_nonaliased_component_p): Return false for
10086 all AGGREGATE_TYPEs.
10087
2adde4ff
EB
100882007-09-17 Eric Botcazou <ebotcazou@adacore.com>
10089
10090 * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
10091 object covered by 13.3(19) volatile.
10092
b693daa7
EB
100932007-09-12 Eric Botcazou <ebotcazou@adacore.com>
10094
10095 PR ada/26797
10096 PR ada/32407
10097 * utils.c (unchecked_convert): Use a subtype as the intermediate type
10098 in the special VIEW_CONVERT_EXPR case.
10099
82da9a90
AC
101002007-09-12 Robert Dewar <dewar@adacore.com>
10101
10102 * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
10103
10104 * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
10105 lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
10106 s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
10107 s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
10108 s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
10109 s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
10110 s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
160c5065 10111 s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
9e81dbc7
AS
10112 a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
10113 g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
10114 s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
10115 s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
10116 snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
10117 s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
10118 s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
10119 s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
82da9a90
AC
10120 s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
10121 pragma Compiler_Unit and adds it to relevant library units.
10122
101232007-09-12 Ed Schonberg <schonberg@adacore.com>
10124
10125 * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
10126 a box need not correspond to any component.
10127
101282007-09-12 Robert Dewar <dewar@adacore.com>
10129
10130 * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
10131 the tasking version of the Ada run time when foreign threads are
10132 present and there are no explicit Ada tasks or tasking constructs.
10133
10134 * gnat_rm.texi: Clarify documentation of GNAT.Threads.
10135
101362007-09-12 Hristian Kirtchev <kirtchev@adacore.com>
10137
10138 * bindusg.adb (Display): Correct comment for switch -X. Add a line for
10139 the usage of switch -y.
10140
10141 * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
10142 when switch -y is present.
10143
10144 * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
10145 leap seconds in Ada.Calendar and its children.
10146
101472007-09-12 Jose Ruiz <ruiz@adacore.com>
10148
10149 * a-extiti.ads (Timer): The discriminant is a "not null access
10150 constant" in the Reference Manual.
10151 (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
10152
101532007-09-12 Robert Dewar <dewar@adacore.com>
10154
10155 * a-swuwha.adb: Remove junk RM header
10156
101572007-09-12 Vincent Celier <celier@adacore.com>
10158
10159 * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
10160 indicator
10161
10162 * g-bytswa.ads: Minor reformatting
10163
101642007-09-12 Thomas Quinot <quinot@adacore.com>
10165
9e81dbc7 10166 * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
82da9a90
AC
10167 Add new constant Thread_Blocking_IO, always True by default, set False
10168 on a per-runtime basis.
10169 (Need_Netdb_Buffer): New constant.
10170
101712007-09-12 Arnaud Charlet <charlet@adacore.com>
10172
10173 * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
10174 Added renames for corresponding functions in System.Partition_Interface.
10175
101762007-09-12 Doug Rupp <rupp@adacore.com>
10177
10178 * Makefile.in: Remove VMS specific System.CRTL packages which are no
10179 longer needed.
10180
10181 * s-crtl-vms64.ads: Removed.
10182
09528ed9
OH
101832007-09-12 Olivier Hainque <hainque@adacore.com>
10184
10185 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
10186 with discriminant constraints, generalize the code for BIT_FIELDs
10187 to PACKED fields of constant size and propagate DECL_PACKED.
10188
fa89b6ec
EB
101892007-09-11 Eric Botcazou <ebotcazou@adacore.com>
10190
10191 * decl.c (array_type_has_nonaliased_component): New predicate.
10192 (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
10193 set the TYPE_NONALIASED_COMPONENT flag on the type.
10194 <E_Array_Subtype>: Likewise.
10195 * gigi.h (type_for_nonaliased_component_p): Declare.
10196 * utils.c (type_for_nonaliased_component_p): New predicate.
10197 (create_field_decl): Invoke the above predicate to set the
10198 DECL_NONADDRESSABLE_P flag on the field.
10199
e18d6a15
JM
102002007-09-11 Javier Miranda <miranda@adacore.com>
10201
10202 * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
10203 in library level record type entities if we are generating statically
10204 allocated dispatch tables.
10205
10206 * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
10207 importing/exporting the _tag declaration by new code
10208 importing/exporting the dispatch table wrapper. This change allows us
10209 to statically allocate of the TSD.
10210 (Make_DT.Export_DT): New procedure.
10211 (Build_Static_DT): New function.
10212 (Has_DT): New function.
10213
10214 * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
10215 True_Constant and Current_Value. Required to statically
10216 allocate the dispatch tables.
10217 (Check_Allocator): Make function iterative instead of recursive.
10218 Also return inner allocator node, when present, so that we do not have
10219 to look for that node again in the caller.
10220
9e94c78f 102212007-09-11 Jan Hubicka <jh@suse.cz>
e89d6010
JH
10222
10223 * misc.c (gnat_expand_body): Kill.
10224 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
10225
281b604e
AC
102262007-09-10 Robert Dewar <dewar@adacore.com>
10227
10228 * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
10229 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
10230 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
10231 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
10232 ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
10233 bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
10234 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
10235 butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
10236 comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
10237 elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
10238 err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
10239 exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
10240 exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
10241 exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
10242 exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
10243 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
10244 exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
10245 exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
10246 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
10247 exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
10248 exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
10249 exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
10250 fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
10251 get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
10252 gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
10253 gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
10254 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
10255 gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
10256 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
10257 gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
10258 inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
10259 lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
10260 lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
10261 make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
10262 mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
10263 mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
10264 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
10265 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
10266 osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
10267 osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
10268 par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
10269 par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
10270 par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
10271 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
10272 par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
10273 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
10274 prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
10275 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
10276 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
10277 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
10278 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
10279 prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
10280 rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
10281 scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
10282 sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
10283 sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
10284 sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
10285 sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
10286 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
10287 sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
10288 sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
10289 sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
10290 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
10291 sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
10292 sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
10293 sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
10294 sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
10295 sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
10296 stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
10297 styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
10298 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
10299 switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
10300 tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
10301 treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
10302 types.h, uintp.h, urealp.h, usage.adb, usage.ads,
10303 validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
10304 xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
10305 xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
10306 gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
10307 mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
10308 symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
10309 mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
10310 mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
10311
103122007-09-10 Emmanuel Briot <briot@adacore.com>
10313
10314 * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
10315 classes ("[]").
10316
103172007-09-10 Vasiliy Fofanov <fofanov@adacore.com>
10318
10319 * adaint.c (__gnat_translate_vms): new function.
10320
103212007-09-10 Gary Dismukes <dismukes@adacore.com>
10322 Thomas Quinot <quinot@adacore.com>
10323
10324 * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
10325 create an abstract subprogram in the case of 'Input. For 'Output we now
10326 create a real spec/body when the type is abstract, since it can
10327 potentially be called.
10328 (Predefined_Primitive_Bodies): Now allow the creation of a predefined
10329 body for 'Output when the type is abstract (only the creation of the
10330 body for 'Input is excluded when the type is abstract).
10331 (Stream_Operation_OK): Add an additional condition in the return
10332 statement, so that False will be returned for TTS_Stream_Input if the
10333 associated tagged type is an abstract extension. Add comments for
10334 return statement.
10335 (Expand_N_Object_Declaration): For the case of a shared passive
10336 variable, insert init proc call only after the shared variable
10337 procedures have been processed, because the IP call needs to undergo
10338 shared passive variable reference expansion, which requires these
10339 procedures to be available (and elaborated).
10340
103412007-09-10 Vincent Celier <celier@adacore.com>
10342
10343 * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
10344 parameter Runtime_Project.
10345
103462007-09-10 Ed Schonberg <schonberg@adacore.com>
10347
10348 * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
10349 given a box association, the type of the component is discriminated,
10350 and the value of the discriminant is the discriminant of the enclosing
10351 type, retrieve its value from the aggregate itself, where it must have
10352 been supplied.
10353
10354 * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
10355 to remove other spurious ambiguities on arithmetic operations involving
10356 literals and addresses, on systems where Address is a visible integer
10357 type, when the operator is called in functional notation.
10358 (Try_Primitive_Operation): Within an instance, a call in prefixed form
10359 is legal when the types match, even if the operation is currently
10360 hidden.
10361
103622007-09-10 Ed Schonberg <schonberg@adacore.com>
10363
10364 * sem_ch12.adb (Build_Local_Package): A formal package with no
10365 associations is legal if all formals have defaults. It is not
10366 equivalent to a formal declared with a box.
10367
103682007-09-10 Sergey Rybin <rybin@adacore.com>
10369
10370 * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
10371
103722007-09-10 Sergey Rybin <rybin@adacore.com>
10373
10374 * gnat_ugn.texi: Add description of the new '-lratio' option
10375 Update 7.3.1 section about availability of the feature.
10376
103772007-09-10 Thomas Quinot <quinot@adacore.com>
10378
10379 * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
10380 inserted node.
10381
103822007-09-10 Olivier Hainque <hainque@adacore.com>
10383
10384 * Makefile.in: (mips-irix section): Activate build of libgmem.
10385
a56955b1
EB
103862007-09-10 Eric Botcazou <ebotcazou@adacore.com>
10387
10388 * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
10389 x87 registers.
10390
c03550f6
EB
103912007-09-10 Eric Botcazou <ebotcazou@adacore.com>
10392
10393 * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
10394 a debug renaming declaration specially.
10395
79646678
EB
103962007-09-08 Eric Botcazou <ebotcazou@adacore.com>
10397
10398 * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
10399 which a constant renaming is treated as a normal object declaration.
10400 * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
10401 the N_Indexed_Component case.
10402 <N_Indexed_Component>: Fall through to above case.
10403 <N_Object_Renaming_Declaration>: Return true for all composite types.
10404
d9e161ce
EB
104052007-09-08 Eric Botcazou <ebotcazou@adacore.com>
10406
10407 * decl.c (make_packable_type): If the new type has been given BLKmode,
10408 try again to get an integral mode for it.
10409
0ab29e91 104102007-09-07 Eric Botcazou <ebotcazou@adacore.com>
6ef9a246 10411
0ab29e91 10412 Re-apply accidentally reverted change:
6ef9a246 10413
0ab29e91 10414 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
6ef9a246 10415
0ab29e91 10416 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
9e81dbc7 10417 get_action_description_for): Replace _Unwind_Word with _uleb128_t
0ab29e91 10418 and _Unwind_SWord with _sleb128_t.
4b459ae4 10419
38f1f8cb
EB
104202007-09-06 Eric Botcazou <ebotcazou@adacore.com>
10421
10422 * trans.c (convert_with_check): Update call to real_2expN.
10423
db2960f4
SL
104242007-09-05 Sandra Loosemore <sandra@codesourcery.com>
10425
10426 * trans.c (Compilation_unit_to_gnu): Use set_cfun.
10427 * utils.c (end_subprog_body): Likewise.
10428
d70c0bd6
NC
104292007-09-03 Nick Clifton <nickc@redhat.com>
10430
10431 * Make-lang.in: Change copyright header to refer to version 3 of
10432 the GNU General Public License and to point readers at the
10433 COPYING3 file and the FSF's license web page.
10434 * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
10435 Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
10436 namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
10437 treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
10438 Likewise.
10439
8a26ebb6
AC
104402007-08-31 Vincent Celier <celier@adacore.com>
10441
10442 PR ada/4720
10443
9e81dbc7 10444 * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
8a26ebb6
AC
10445 gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
10446 (Check_Version_And_Help): New procedure in package Switch to process
10447 switches --version and --help.
10448 Use Check_Version_And_Help in GNAT tools
10449
10450 * make.adb: Ditto.
10451 (Compile_Sources): Make sure that sources that are "excluded" are not
10452 compiled.
10453 (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
10454 project file is used.
10455 (Version_Switch): Remove, moved to Switch
10456 (Help_Switch): Remove, moved to Switch
10457 (Display_Version): Remove, moved to Switch
10458
10459 * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
10460 package Switch to process switches --version and --help.
10461 (Display_Version): New procedure
10462
10463 * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
10464
104652007-08-31 Javier Miranda <miranda@adacore.com>
10466
10467 * a-tags.adb (Internal_Tag): Protect the run-time against wrong
10468 internal tags.
10469
104702007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
10471
10472 * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
10473 (Mark_Non_Null): If the node for which we just generated an access check
10474 is a reference to an *in* parameter and the reference appears in the
10475 declarative part of a subprogram body, mark the node as known non null.
10476
104772007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
10478
10479 * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
10480 structure of E_Exception to reflect the new flag.
10481 (Is_Raised, Set_Is_Raised): New inlined routines.
10482 Update the usage of available flag to reflect the addition of Is_Raised.
10483 (Is_Raised, Set_Is_Raised): Bodies of new routines.
10484 (Write_Entity_Flags): Write the status of flag Is_Raised.
10485 (Is_Descendent_Of_Address): New entity flag, to simplify handling of
10486 spurious ambiguities when integer literals appear in the context of an
10487 address type that is a visible integer type.
10488
10489 * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
10490 exceptions never being raised.
10491 (Analyze_Raise_Statement): When analyzing an exception, mark it as being
10492 explicitly raised.
10493
104942007-08-31 Javier Miranda <miranda@adacore.com>
10495
10496 * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
10497 statement when compiling under restriction No_Exceptions_Proparation.
10498
104992007-08-31 Ed Schonberg <schonberg@adacore.com>
10500
10501 * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
10502 initialization aggregate for the type, generate itype references for
10503 thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
10504
105052007-08-31 Gary Dismukes <dismukes@adacore.com>
10506
10507 * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
10508 library-level package renaming, pass the declaration associated with
10509 the renaming's special debug variable to Qualify_Entity_Names to ensure
10510 that its encoded name is properly qualified.
10511
10512 * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
10513 occurring in the list of entities to qualify, and do not attempt to
10514 traverse an entity list in that case. Variables associated with
10515` library-level package renamings can now occur in the table.
10516
10517 * exp_dbug.ads: Revise documentation of the encoding for renaming
10518 declarations.
10519
105202007-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10521
10522 * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
10523 access type points to an unconstrained array.
10524
105252007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
10526
9e81dbc7 10527 * restrict.adb, namet.adb, par-util.adb: Remove redundant type
8a26ebb6
AC
10528 conversion.
10529
10530 * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
10531 simple redundant qualifications. The check is performed whenever the
10532 expression is a non-overloaded identifier.
10533 (Resolve_Type_Conversion): Enchance the redundant type conversion check
10534 to include loop parameters.
10535 (Valid_Conversion): Avoid generation of spurious error message.
10536
105372007-08-31 Bob Duff <duff@adacore.com>
10538
10539 * par-ch4.adb (P_Simple_Expression): Fold long sequences of
10540 concatenations of string literals into a single literal, in order to
10541 avoid very deep recursion in the front end, which was causing stack
10542 overflow.
10543
10544 * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
10545 string, and the right operand is a string literal (the case of "" &
10546 "..."), optimize by avoiding copying the right operand -- just use the
10547 value of the right operand directly.
10548
10549 * stringt.adb (Store_String_Chars): Optimize by growing the
10550 String_Chars table all at once, rather than appending characters one by
10551 one.
10552 (Write_String_Table_Entry): If the string to be printed is very long,
10553 just print the first few characters, followed by the length. Otherwise,
10554 doing "pn(n)" in the debugger can take an extremely long time.
10555
10556 * sem_prag.adb (Process_Interface_Name): Replace loop doing
10557 Store_String_Char with Store_String_Chars.
10558
105592007-08-31 Vincent Celier <celier@adacore.com>
10560
10561 * prj-attr.adb: Add new attribute Excluded_Source_Files
10562
10563 * prj-nmsc.adb: Use attribute Excluded_Source_Files before
10564 Locally_Removed_Files.
10565
10566 * snames.ads, snames.adb: New standard name Excluded_Source_Files
10567
105682007-08-31 Ed Schonberg <schonberg@adacore.com>
10569
10570 * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
10571 clauses of subunits, ignore limited_with_clauses that are illegal and
10572 have not been fully analyzed.
10573
105742007-08-31 Ed Schonberg <schonberg@adacore.com>
10575
10576 * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
10577 flag, for effiency. It is called when analyzing arithmetic operators
10578 and also for actuals in calls that are universal_integers. The flag is
10579 set for the predefined type address, and for any type or subtype
10580 derived from it.
10581
10582 * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
10583 Universal_Integer, when the formal is a descendent of address and the
10584 call appears in user code.
10585 (Analyze_Selected_Component): if the prefix is a private extension, the
10586 tag component is visible.
10587
10588 * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
10589 entity flag.
10590
105912007-08-31 Robert Dewar <dewar@adacore.com>
10592
10593 * s-fileio.adb (Open): Normalize file name to lower case in non-case
10594 sensitive file name systems to avoid unexpected mismatch in Vista.
10595
105962007-08-31 Vincent Celier <celier@adacore.com>
10597
10598 * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
10599
106002007-08-31 Vincent Celier <celier@adacore.com>
10601
10602 * symbols-vms.adb (Initialize): Read symbol files with continuation
10603 lines
10604 (Finalize): If symbol is long, split the line
10605
106062007-08-31 Vincent Celier <celier@adacore.com>
10607
10608 * fmap.ads: Minor comment updates
10609
106102007-08-31 GNAT Script <nobody@adacore.com>
10611
10612 * Make-lang.in: Makefile automatically updated
10613
106142007-08-31 Bob Duff <duff@adacore.com>
10615
10616 * sinfo.ads: Minor comment fix.
10617
106182007-08-31 Thomas Quinot <quinot@adacore.com>
10619
10620 * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
10621 with implementation.
10622 Documentation cleanup only.
10623
106242007-08-31 Sergey Rybin <rybin@adacore.com>
10625
10626 * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
10627 gnatpp '--separate-stmt-name' option.
10628 Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
10629 option.
10630
10631 * gnat_ugn.texi: Add description for the new gnatpp
10632 '--separate-stmt-name' and '--use-on-new-line' options.
10633
22d2aa96
BE
106342007-08-31 Ben Elliston <bje@au.ibm.com>
10635
10636 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
10637 when compiling for powerpc64-*-linux.
10638 * system-linux-ppc64.ads: New file.
10639
51743df8
KW
106402007-08-22 Krister Walfridsson <cato@df.lth.se>
10641
10642 * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
10643 NetBSD.
10644
ac7d7749
KG
106452007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10646
10647 * misc.c (gnat_type_max_size): Constify.
10648
833eddff
AC
106492007-08-16 Gary Dismukes <dismukes@adacore.com>
10650
10651 * cstand.adb (Create_Standard): Create an entity for a zero-sized type
10652 associated with Standard_Debug_Renaming_Type, to be used as the type of
10653 the special variables whose names provide debugger encodings for
10654 renaming declarations.
10655
10656 * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
10657 (Set_Debug_Renaming_Link): Change to set Node25.
10658 (Write_Field13_Name): Remove case for E_Enumeration_Literal.
10659 (Write_Field25_Name): Add case for E_Variable to output
10660 "Debug_Renaming_Link".
10661 (Write_Field23_Name): Correct the output string for "Limited_View".
10662
10663 * exp_dbug.adb: Add with and use of Tbuild.
10664 (Debug_Renaming_Declaration): Replace creation of an enumeration type
10665 and literal with creation of a variable of type
10666 Standard_Debug_Renaming_Type whose name encodes both the renamed object
10667 and the entity of the renaming declaration.
10668 (Qualify_Entity_Name): Add the delayed qualification of the entity name
10669 part of the name of a variable that has a Debug_Renaming_Link.
10670
10671 * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
10672 special type to be associated with variables that provide debugger
10673 encodings for renaming declarations.
10674
106752007-08-16 Gary Dismukes <dismukes@adacore.com>
10676 Ed Schonberg <schonberg@adacore.com>
10677 Javier Miranda <miranda@adacore.com>
10678
10679 * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
10680 ancestor part given by an aggregate to test for an unchecked conversion,
10681 since this can occur in some cases when the ancestor part is a function
10682 call, and we don't want to fall into the recursive call to this
10683 procedure in that case.
10684
10685 * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
10686 stream attributes on limited types to account for user-specified
10687 attributes as well as whether Input (resp. Output) becomes available
10688 due to Read (resp. Write) being available for the type. Change Boolean
10689 variable to the more accurate name
10690 Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
10691 double-"not" predicate at beginning of return statement to more
10692 understandable form.
10693
10694 * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
10695 return has an associated N_Handled_Sequence_Of_Statements, then wrap it
10696 in a block statement and use that as the first statement of the
10697 expanded return rather than incorrectly using the handled sequence as
10698 the first statement.
10699
10700 * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
10701 operation, generate an explicit freeze node for it rather than
10702 generating extra formals, to ensure that gigi has the proper order of
10703 elaboration for anonymous subtypes in the signature of the subprograms.
10704 (Build_In_Place_Formal): Move assertion to beginning of loop.
10705 (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
10706 applied to a function call (occurs for some cases of 'Input).
10707 (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
10708 applied to a function call (occurs for some cases of 'Input).
10709
10710 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
10711 2005, generate an extended return statement enclosing the result object
10712 and 'Read call.
10713
10714 * freeze.adb (Freeze_Record_Type): Extend the current management of
10715 components that are access type with an allocator as default value: add
10716 missing support to the use of qualified expressions of the
10717 allocator (which also cause freezing of the designated type!)
10718 (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
10719 dispatching operation, since extra formals may be needed by calls to
10720 build-in-place functions (such as stream 'Input).
10721
10722 * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
10723 formals for 'Constrained and accessibility level in the case of a
10724 predefined dispatching operation.
10725
10726 * exp_util.adb (Insert_Actions): A protected body is a valid insertion
10727 point, no need to find the parent node.
10728
107292007-08-16 Javier Miranda <miranda@adacore.com>
10730
10731 * exp_attr.adb (Attribute_Priority): Add missing support for entries
10732 and entry barriers.
10733
107342007-08-16 Javier Miranda <miranda@adacore.com>
10735
10736 * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
10737 is not really required and can introduce regression with the debugger.
10738 The original problem is fixed with the patch written for checks.adb.
10739
107402007-08-16 Thomas Quinot <quinot@adacore.com>
10741
10742 * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
10743 Range_Check on Allocated_Table.
10744
107452007-08-16 Vincent Celier <celier@adacore.com>
10746
10747 * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
10748 Including_Non_Switch set to False.
10749 (Gnatmake): For the compiler, call Test_If_Relative_Path with
10750 Including_Non_Switch set to False.
10751
10752 * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
10753 parameter Including_Non_Switch, defaulted to True. When
10754 Including_Non_Switch is False, options that are not switches and
10755 appear as relative path are not converted to absolute paths.
10756
107572007-08-16 Nicolas Roche <roche@adacore.com>
10758
10759 * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
10760 makefiles
10761
10762 * Make-lang.in: Update dependencies
10763
107642007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
10765
10766 * sem_ch10.adb (Has_With_Clause): If the name of the with clause
10767 currently inspected is a selected component, retrieve the entity of
10768 its selector.
10769 (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
10770 from the immediate ancestor of Main_Unit_Entity.
10771 (Install_Limited_Withed_Unit): Do not install the limited view of
10772 package P if P is reachable through an ancestor chain from package C
10773 and C also has a with clause for P in its body.
10774 (Has_Limited_With_Clause): New routine.
10775 (Has_With_Clause): New routine.
10776
107772007-08-16 Ed Schonberg <schonberg@adacore.com>
10778
10779 * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
10780 generic for an enclosing instance is a global reference, even though
10781 its scope is the enclosing instance.
10782
107832007-08-16 Gary Dismukes <dismukes@adacore.com>
10784 Javier Miranda <miranda@adacore.com>
10785
10786 * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
10787 initialize a limited object.
10788 (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
10789 13/2 and 14/2.
10790 Make sure Has_Complex_Representation is inherited by derived type.
10791
107922007-08-16 Robert Dewar <dewar@adacore.com>
10793
10794 * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
10795 exception case
10796
107972007-08-16 Ed Schonberg <schonberg@adacore.com>
10798
10799 * sem_disp.adb (Check_Dispatching_Operation): If the operation
10800 implements an operation inherited from a progenitor interface, verify
10801 that they are subtype-conformant.
10802
108032007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
10804 Bob Duff <duff@adacore.com>
10805 Nicolas Setton <setton@adacore.com>
10806
10807 * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
10808 (Resolve): Alphabetize local variables. Add new variable From_Lib. When
10809 the statement which is being resolved comes from a predefined library
10810 unit, all non-predefined library interpretations are skipped.
10811 (Resolve_Op_Concat): If string concatenation was folded in the parser,
10812 but the "&" is user defined, give an error, because the folding would
10813 be wrong.
10814
10815 * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
10816 the parser has folded a long sequence of concatenations of string
10817 literals.
10818
10819 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
10820 and "JMP_BUF" variables as artificial.
10821 (N_String_Literal): Do not use alloca for very long string literals. Use
10822 xmalloc/free instead. Otherwise the stack might overflow.
10823
10824 * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
10825 compiler.
10826
108272007-08-16 Vincent Celier <celier@adacore.com>
10828
10829 * vms_conv.adb (Process_Argument): Ensure that project related options
10830 are not put in the -cargs section when using GNAT COMPILE.
10831
108322007-08-16 Robert Dewar <dewar@adacore.com>
10833
10834 * gnat_ugn.texi: Add note on preprocessing (output file not written)
10835
108362007-08-16 Thomas Quinot <quinot@adacore.com>
10837
10838 * a-tags.adb: Minor reformatting.
10839
108402007-08-16 Bob Duff <duff@adacore.com>
10841
10842 * sem_type.ads, sem_ch4.adb: Minor reformatting.
10843
ab6328d0
AC
108442007-08-14 Thomas Quinot <quinot@adacore.com>
10845
9e81dbc7 10846 * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
ab6328d0
AC
10847 s-osinte-interix.ads, system-interix.ads: Removed.
10848
108492007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
10850
10851 * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
10852 calls to Check_Within_Time_Bounds.
10853 ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
10854 (Difference): Account for possible rounding of the resulting difference
10855
108562007-08-14 Robert Dewar <dewar@adacore.com>
10857
10858 * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
10859 par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
10860 s-osinte-solaris.adb, s-osinte-solaris.ads,
10861 s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
10862
10863 * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
10864 switch -gnatyS. Enable -gnatyS in GNAT style check mode
10865
108662007-08-14 Robert Dewar <dewar@adacore.com>
10867 Ed Schonberg <schonberg@adacore.com>
10868
9e81dbc7 10869 * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
ab6328d0
AC
10870 Suppress unmodified in-out parameter warning in some cases
10871 This patch is a also fairly significant change to the way suppressible
10872 checks are handled.
10873
10874 * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
10875 needed for access to concurrent record types generated by the expander.
10876 (Generate_Range_Check): When generating a temporary to capture the
10877 value of a conversion that requires a range check, set the type of the
10878 temporary before rewriting the node, so that the type is always
10879 properly placed for back-end use.
10880 (Apply_Float_Conversion_Check): Handle case where the conversion is
10881 truncating.
10882 (Get_Discriminal): Code reformatting. Climb the scope stack looking
10883 for a protected type in order to examine its discriminants.
10884
108852007-08-14 Robert Dewar <dewar@adacore.com>
10886 Gary Dismukes <dismukes@adacore.com>
10887 Ed Schonberg <schonberg@adacore.com>
10888 Thomas Quinot <quinot@adacore.com>
10889
9e81dbc7 10890 * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
ab6328d0
AC
10891 a-stwisu.adb, a-strsup.adb: Fix warnings for range
10892 tests optimized out.
10893
10894 * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
10895 (Get_Allocator_Final_List): For the case of an anonymous access type
10896 that has a specified Associated_Final_Chain, do not go up to the
10897 enclosing scope.
10898 (Expand_N_Type_Conversion): Test for the case of renamings of access
10899 parameters when deciding whether to apply a run-time accessibility
10900 check.
10901 (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
10902 aggregate code before allocator, and ahead of declaration for
10903 temporary, to prevent access before elaboration when the allocator is
10904 an actual for an access parameter.
10905 (Expand_N_Type_Conversion): On an access type conversion involving an
10906 access parameter, do not apply an accessibility check when the
10907 operand's original node was an attribute other than 'Access. We now
10908 create access conversions for the expansion of 'Unchecked_Access and
10909 'Unrestricted_Access in certain cases and clearly accessibility should
10910 not be checked for those.
10911
10912 * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
10913 includes a type conversion of a packed component that has been expanded,
10914 recover the original expression for the object, and use this expression
10915 in the post-call assignment statement, so that the assignment is made
10916 to the object and not to a back-end temporary.
10917 (Freeze_Subprogram): In case of primitives of tagged types not defined
10918 at the library level force generation of code to register the primitive
10919 in the dispatch table. In addition some code reorganization has been
10920 done to leave the implementation clear.
10921 (Expand_Call): When expanding an inherited implicit conversion,
10922 preserve the type of the inherited function after the intrinsic
10923 operation has been expanded.
10924
10925 * exp_ch2.ads, exp_ch2.adb
10926 (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
10927 of an entry formal appearing in an assignment statement does not assign
10928 to the formal.
10929 (Expand_Current_Value): Instead of calling a routine to determine
10930 whether the prefix of an attribute reference should be optimized or
10931 not, prevent the optimization of such prefixes all together.
10932
10933 * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
10934 component whose prefix is known to be of an access type is an implicit
10935 dereference and does not assign to the prefix.
10936
109372007-08-14 Ed Schonberg <schonberg@adacore.com>
10938 Robert Dewar <dewar@adacore.com>
10939
10940 * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
10941 itype is visited, make an entry into table to link associated node and
10942 new itype.
10943 Add comments and correct harmless error in Build_NCT_Hash_Tables
10944 (Array_Aggr_Subtype): Associate each itype created for an index type to
10945 the corresponding range construct, and not to the aggregate itself. to
10946 maintain a one-to-one correspondence between itype and its associated
10947 node, to prevent errors when complex expression is copied.
10948 Fix mishandling of multiple levels of parens
10949
10950 * sem_aggr.adb: Create a limited view of an incomplete type, to make
10951 treatment of limited views uniform for all visible declarations in a
10952 limited_withed package.
10953 (New_Copy_Tree): If hash table is being used and itype is visited,
10954 make an entry into table to link associated node and new itype.
10955 (Resolve_Record_Aggregate): Do not add an others box association for a
10956 discriminated record component that has only discriminants, when there
10957 is a box association for the component itself.
10958
10959 * par-ch4.adb: Fix mishandling of multiple levels of parens
10960
109612007-08-14 Robert Dewar <dewar@adacore.com>
10962
10963 * comperr.adb: Fix problem with suppressing warning messages from gigi
10964
9e81dbc7 10965 * erroutc.ads, erroutc.adb, errout.ads,
ab6328d0
AC
10966 errout.adb (Write_Eol): Remove trailing spaces before writing the line
10967 (Write_Eol_Keep_Blanks): New procedure to write a line, including
10968 possible trailing spaces.
10969 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
10970 Fix problem with suppressing warning messages from back end
10971 Improve handling of deleted warnings
10972
9e81dbc7 10973 * gnat1drv.adb:
ab6328d0
AC
10974 Fix problem with suppressing warning messages from back end
10975 Handle setting of Static_Dispatch_Tables flag.
10976
9e81dbc7 10977 * prepcomp.adb:
ab6328d0
AC
10978 Fix problem with suppressing warning messages from back end
10979
10980 * exp_intr.adb: Improve handling of deleted warnings
10981
109822007-08-14 Robert Dewar <dewar@adacore.com>
10983
10984 * debug.adb: Improve -gnatdI to cover all cases of serialization
10985 Add documentation of dZ, d.t
10986
10987 * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
10988 serialization.
10989 (Sprint_Node_Actual): Generate new output associated with implicit
10990 importation and implicit exportation of object declarations.
10991
109922007-08-14 Ed Schonberg <schonberg@adacore.com>
10993 Robert Dewar <dewar@adacore.com>
10994 Javier Miranda <miranda@adacore.com>
10995 Gary Dismukes <dismukes@adacore.com>
10996
10997 * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
10998 to make treatment of limited views uniform for all visible declarations
10999 in a limited_withed package.
11000 Improve warnings for in out parameters
11001 (Set_Related_Interaface/Related_Interface): Allow the use of this
11002 attribute with constants.
11003 (Write_Field26_Name): Handle attribute Related_Interface in constants.
11004 Warn on duplicate pragma Preelaborable_Initialialization
11005
11006 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
11007 generation of a freezing node to ensure proper management of null
11008 excluding access types in the backend.
11009 (Create_Extra_Formals): Test base type of the formal when checking for
11010 the need to add an extra accessibility-level formal. Pass the entity E
11011 on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
11012 originally being done in a couple of cases), to ensure that the
11013 Extra_Formals list gets set on the entity E when the first entity is
11014 added.
11015 (Conforming_Types): Add missing calls to Base_Type to the code that
11016 handles anonymous access types. This is required to handle the
11017 general case because Process_Formals builds internal subtype entities
11018 to handle null-excluding access types.
11019 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
11020 functions that need it, even when not marked Requires_Overriding.
11021 Improve warnings for in out parameters
11022 (Analyze_Function_Return): Warn for disallowed null return
11023 Warn on return from procedure with unset out parameter
11024 Ensure consistent use of # in error messages
11025 (Check_Overriding_Indicator): Add in parameter Is_Primitive.
11026 (Analyze_Function_Return): Move call to Apply_Constraint_Check before
11027 the implicit conversion of the expression done for anonymous access
11028 types. This is required to generate the code of the null excluding
11029 check (if required).
11030
11031 * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
11032 A formal parameter is never publicly referenceable outside of its body.
11033 (Check_References): For an unreferenced formal parameter in an accept
11034 statement, use the same warning circuitry as for subprogram formal
11035 parameters.
11036 (Warn_On_Unreferenced_Entity): New subprogram, taken from
11037 Output_Unreferenced_Messages, containing the part of that routine that
11038 is now reused for entry formals as described above.
11039 (Goto_Spec_Entity): New function
11040 (Check_References): Do not give IN OUT warning for dispatching operation
11041 Improve warnings for in out parameters
11042 (Test_Ref): Check that the entity is not undefinite before calling
11043 Scope_Within, in order to avoid infinite loops.
11044 Warn on return from procedure with unset out parameter
11045 Improved warnings for unused variables
11046
110472007-08-14 Robert Dewar <dewar@adacore.com>
11048 Javier Miranda <miranda@adacore.com>
11049 Gary Dismukes <dismukes@adacore.com>
11050
11051 * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
11052 (Expand_N_Attribute_Reference): Further unify the handling of the
11053 three forms of access attributes, using common code now for all three
11054 cases. Add a test for the case of applying an access attribute to
11055 an explicit dereference when the context is an access-to-interface
11056 type. In that case we need to apply the conversion to the prefix
11057 of the explicit dereference rather than the prefix of the attribute.
11058 (Attribute_Version, UET_Address): Set entity as internal to ensure
11059 proper dg output of implicit importation.
11060 (Expand_Access_To_Type): Removed.
11061 (Expand_N_Attribute_Reference): Merge the code from the three cases
11062 of access attributes, since the processing is largely identical for
11063 these cases. The substantive fix here is to process the case of a
11064 type name prefix (current instance case) before handling the case
11065 of interface prefixes.
11066
110672007-08-14 Thomas Quinot <quinot@adacore.com>
11068 Ed Schonberg <schonberg@adacore.com>
11069 Javier Miranda <miranda@adacore.com>
11070 Robert Dewar <dewar@adacore.com>
11071
11072 * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
11073 (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
11074 type that is an anonymous access to controlled object, establish
11075 an associated finalization chain to avoid corrupting the global
11076 finalization list when a dynamically allocated object designated
11077 by such a component is deallocated.
11078 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
11079 functions that need it, even when not marked Requires_Overriding.
11080 (Initialize_Tag): Replace call to has_discriminants by call to
11081 Is_Variable_Size_Record in the circuitry that handles the
11082 initialization of secondary tags.
11083 (Is_Variable_Size_Record): New implementation.
11084 (Expand_N_Object_Declaration): Suppress call to init proc if there is a
11085 Suppress_Initialization pragma for a derived type.
11086 (Is_Variable_Size_Record): New subprogram.
11087 (Build_Offset_To_Top_Functions): New implementation that simplifies the
11088 initial version of this routine and also fixes problems causing
11089 incomplete initialization of the table of interfaces.
11090 (Build_Init_Procedure): Improve the generation of code to initialize the
11091 the tag components of secondary dispatch tables.
11092 (Init_Secondary_Tags): New implementation that simplifies the previous
11093 version of this routine.
11094 (Make_DT): Add parameter to indicate when type has been frozen by an
11095 object declaration, for diagnostic purposes.
11096 (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
11097 diagnose attemps to freeze a subprogram when some untagged type of its
11098 profile is a private type whose full view has not been analyzed yet.
11099 (Freeze_Array_Type): Generate init proc for packed array if either
11100 Initialize or Normalize_Scalars is set.
11101 (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
11102 constructing the new profile, copy the null_exclusion indicator for each
11103 parameter, to ensure full conformance of the new body with the spec.
11104
11105 * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
11106 Create wrappers for constructor functions that need it, even when not
11107 marked Requires_Overriding.
11108 (Covers): Handle properly designated types of anonymous access types,
11109 whose non-limited views are themselves incomplete types.
11110 (Add_Entry): Use an entity to store the abstract operation which hides
11111 an interpretation.
11112 (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
11113 (Collect_Interps): Use Empty as an actual for Abstract_Op in the
11114 initialization aggregate.
11115 (Function_Interp_May_Be_Hidden): Rename to
11116 Function_Interp_Has_Abstract_Op.
11117 (Has_Compatible_Type): Remove machinery that skips interpretations if
11118 they are labeled as potentially hidden by an abstract operator.
11119 (Has_Hidden_Interp): Rename to Has_Abstract_Op.
11120 (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
11121 (Write_Overloads): Output the abstract operator if present.
11122 (Add_Entry): Before inserting a new entry into the interpretation table
11123 for a node, determine whether the entry will be disabled by an abstract
11124 operator.
11125 (Binary_Op_Interp_May_Be_Hidden): New routine.
11126 (Collect_Interps): Add value for flag May_Be_Hidden in initialization
11127 aggregate.
11128 (Function_Interp_May_Be_Hidden): New routine.
11129 (Has_Compatible_Type): Do not consider interpretations hidden by
11130 abstract operators when trying to determine whether two types are
11131 compatible.
11132 (Has_Hidden_Interp): New routine.
11133 (Set_May_Be_Hidden_Interp): New routine.
11134 (Write_Overloads): Write the status of flag May_Be_Hidden.
11135
111362007-08-14 Ed Schonberg <schonberg@adacore.com>
11137 Javier Miranda <miranda@adacore.com>
11138
11139 * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
11140 types declared in the declarative part of a nested package body or in
11141 the proper body of a stub.
11142 (Set_All_DT_Position): Add missing check to avoid wrong assignation
11143 of the same dispatch table slot to renamed primitives.
11144 (Make_Select_Specific_Data_Table): Handle private types.
11145 (Tagged_Kind): Handle private types.
11146 (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
11147 output of implicit importation and exportation.
11148 (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
11149 first formal of the thunk is always associated with the controlling
11150 type. In addition perform the following code cleanup: remove formal
11151 Thunk_Alias which is no longer required, cleanup evaluation of the
11152 the controlling type, and update the documentation.
11153 Replace occurrence of Default_Prim_Op_Count by
11154 Max_Predef_Prims. Addition of compile-time check to verify
11155 that the value of Max_Predef_Prims is correct.
11156 (Check_Premature_Freezing): Apply check in Ada95 mode as well.
11157 (Make_DT): Add parameter to indicate when type has been frozen by an
11158 object declaration, for diagnostic purposes.
11159 (Build_Static_Dispatch_Tables): New subprogram that takes care of the
11160 construction of statically allocated dispatch tables.
11161 (Make_DT): In case of library-level tagged types export the declaration
11162 of the primary tag. Remove generation of tags (now done by Make_Tags).
11163 Additional modifications to handle non-static generation of dispatch
11164 tables. Take care of building tables for asynchronous interface types
11165 (Make_Tags): New subprogram that generates the entities associated with
11166 the primary and secondary tags of Typ and fills the contents of Access_
11167 Disp_Table. In case of library-level tagged types imports the forward
11168 declaration of the primary tag that will be declared later by Make_DT.
11169 (Expand_Interface_Conversion): In case of access types to interfaces
11170 replace an itype declaration by an explicit type declaration to avoid
11171 problems associated with the scope of such itype in transient blocks.
11172
111732007-08-14 Robert Dewar <dewar@adacore.com>
11174 Ed Schonberg <schonberg@adacore.com>
11175 Javier Miranda <miranda@adacore.com>
11176
9e81dbc7 11177 * exp_util.ads, exp_util.adb:
ab6328d0
AC
11178 This patch replaces a number of occurrences of explicit tests for N_Null
11179 with calls to Known_Null. This improves tracking of null values, since
11180 Known_Null also catches null constants, and variables currently known to
11181 be null, so we get better tracking.
11182 (Ensure_Defined): create an itype reference only in the scope of the
11183 itype.
11184 (Side_Effect_Free): A selected component of an access type that
11185 denotes a component with a rep clause must be treated as not
11186 side-effect free, because if it is part of a linked structure its
11187 value may be affected by a renaming.
11188 (Expand_Subtype_From_Expr): For limited objects initialized with build
11189 in place function calls, do nothing; otherwise we prematurely introduce
11190 an N_Reference node in the expression initializing the object, which
11191 breaks the circuitry that detects and adds the additional arguments to
11192 the called function. Bug found working in the new patch for statically
11193 allocated dispatch tables.
11194 (Is_Library_Level_Tagged_Type): New subprogram.
11195 (Remove_Side_Effects): If the expression of an elementary type is an
11196 operator treat as a function call.
11197 (Make_Literal_Range): If the index type of the array is not integer, use
11198 attributes properly to compute the constraint on the resulting aggregate
11199 which is a string.
11200
11201 * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
11202 class-wide type whose base type is an incomplete private type, leave
11203 class-wide type unfrozen so that freeze nodes can be generated
11204 properly at a later point.
11205 (Freeze_Entity, array case): Handle case of pragma Pack and component
11206 size attributre clause for same array.
11207
112082007-08-14 Vincent Celier <celier@adacore.com>
11209
11210 * prj.ads, prj.adb: Update Project Manager to new attribute names for
11211 gprbuild.
11212 Allow all valid declarations in configuration project files
11213 (Reset): Initialize all tables and hash tables in the project tree data
11214 Major update of the Project Manager and of the project aware tools,
11215 including gprmake, so that the same sources in the GNAT repository
11216 can be used by gprbuild.
11217 (Slash_Id): Change type to be Path_Name_Type
11218 (Slash): Return a Path_Name_Type instead of a File_Name_Type
11219
11220 * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
11221 gprbuild.
11222 Update Project Manager to new attribute names for ghprbuild
11223 Allow all valid declarations in configuration project files
11224 Major update of the Project Manager and of the project aware tools,
11225 including gprmake, so that the same sources in the GNAT repository
11226 can be used by gprbuild.
11227
9e81dbc7 11228 * prj-com.ads:
ab6328d0
AC
11229 Major update of the Project Manager and of the project aware tools,
11230 including gprmake, so that the same sources in the GNAT repository
11231 can be used by gprbuild.
11232
11233 * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
11234 insensitive flag for attributes with optional index.
11235 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
11236 array attribute, put the index in lower case.
11237 Update Project Manager to new attribute names for ghprbuild
11238 Allow all valid declarations in configuration project files
11239 Major update of the Project Manager and of the project aware tools,
11240 including gprmake, so that the same sources in the GNAT repository
11241 can be used by gprbuild.
11242
9e81dbc7 11243 * prj-env.ads, prj-env.adb:
ab6328d0
AC
11244 Major update of the Project Manager and of the project aware tools,
11245 including gprmake, so that the same sources in the GNAT repository
11246 can be used by gprbuild.
11247 (Get_Reference): Change type of parameter Path to Path_Name_Type
11248
11249 * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
11250 removing '-' from the path to start with the first character of the
11251 next directory.
11252 Major update of the Project Manager and of the project aware tools,
11253 including gprmake, so that the same sources in the GNAT repository
11254 can be used by gprbuild.
11255 Major update of the Project Manager and of the project aware tools,
11256 including gprmake, so that the same sources in the GNAT repository
11257 can be used by gprbuild.
11258
9e81dbc7 11259 * prj-nmsc.ads, prj-nmsc.adb:
ab6328d0
AC
11260 Update Project Manager to new attribute names for ghprbuild
11261 Allow all valid declarations in configuration project files
11262 (Search_Directories): Detect subunits that are specified with an
11263 attribute Body in package Naming. Do not replace a source/unit in the
11264 same project when the order of the source dirs are known. Detect
11265 duplicate sources/units in the same project when the order of the
11266 source dirs are not known.
11267 (Check_Ada_Name): Allow all identifiers that are not reserved words
11268 in Ada 95.
11269 Major update of the Project Manager and of the project aware tools,
11270 including gprmake, so that the same sources in the GNAT repository
11271 can be used by gprbuild.
11272 (Look_For_Sources): If the list of sources is empty, set the object
11273 directory of non extending project to nil.
11274 Change type of path name variables to be Path_Name_Type
11275 (Locate_Directory): Make sure that on Windows '/' is converted to '\',
11276 otherwise creating missing directories will fail.
11277
9e81dbc7 11278 * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
ab6328d0
AC
11279 prj-part.ads, prj-part.adb:
11280 Major update of the Project Manager and of the project aware tools,
11281 including gprmake, so that the same sources in the GNAT repository
11282 can be used by gprbuild.
11283
11284 * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
11285 insensitive flag for attributes with optional index.
11286 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
11287 array attribute, put the index in lower case.
11288 (Parse_Variable_Reference): Allow the current project name to be used in
11289 the prefix of an attribute reference.
11290
11291 * prj-util.ads, prj-util.adb
11292 (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
11293 defaulted to False. When True, always check against indexes in lower
11294 case.
11295
9e81dbc7 11296 * snames.ads, snames.h, snames.adb:
ab6328d0
AC
11297 Update Project Manager to new attribute names for gprbuild
11298 Allow all valid declarations in configuration project files
11299
113002007-08-14 Robert Dewar <dewar@adacore.com>
11301 Ed Schonberg <schonberg@adacore.com>
11302
11303 * opt.ads: Warning for non-local exception propagation now off by
11304 default
11305 New switch -gnatI to disable representation clauses
11306 Implement new pragma Implicit_Packing
11307
9e81dbc7 11308 * usage.adb:
ab6328d0
AC
11309 Warning for non-local exception propagation now off by default
11310 Add warning for unchecked conversion of pointers wi different
11311 conventions.
11312 New switch -gnatI to disable representation clauses
11313
11314 * usage.adb: new switch -gnatyS
11315
11316 * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
11317 note that aggregates of anonymous array types are not flagged.
11318 -gnatwc now includes membership tests optimized away
11319 -gnatw.x warnings are now off by default
11320 Added conditional compilation Appendix
11321 Add documentation of -gnatI
11322 Add documentation for new -gnatyS style check
11323 Update documentation about SAL and auto-init on Windows.
11324
9e81dbc7 11325 * gnat_rm.texi:
ab6328d0
AC
11326 Add documentation for pragma Check_Name and 'Enabled attribute
11327 Document that Eliminate on dispatching operation is ignored
11328 Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
11329 Document pragma Main
11330 Document pragma Implicit_Packing
11331
11332 * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
11333 different conventions
11334 New switch -gnatI to disable representation clauses
11335
11336 * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
11337 recognized, report the invalid characters including "-gnat" instead of
11338 just the first character in the switch.
11339 New switch -gnatI to disable representation clauses
11340 Set Warn_On_Object_Renames_Function true for -gnatg
11341
11342 * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
11343 Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
11344 Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
11345 to switch -aP (add directory to project search dir).
11346
11347 * par-prag.adb: Implement new pragma Implicit_Packing
11348
11349 * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
11350 type as having a non-standard representation, to force expansion on
11351 conversion to related types.
11352 (Analyze_Pragma): Warn on misspelled pragma
11353 (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
11354 Ensure consistent use of # in error messages
11355 Implement pragma Implicit_Packing
11356
113572007-08-14 Olivier Hainque <hainque@adacore.com>
11358 Eric Botcazou <ebotcazou@adacore.com>
11359
11360 * targtyps.c (get_target_maximum_default_alignment): New function.
11361 Maximum alignment
11362 that the compiler might choose by default for a type or object.
11363 (get_target_default_allocator_alignment): New function. Alignment known
11364 to be honored by the target default allocator.
11365 (get_target_maximum_allowed_alignment): New function. Maximum alignment
11366 we might accept for any type or object on the target.
11367 (get_target_maximum_alignment): Now synonym of maximum_default_alignment
11368
11369 * gigi.h (get_target_maximum_default_alignment): Declare new function.
11370 (get_target_default_allocator_alignment): Likewise.
11371 (get_target_maximum_allowed_alignment): Likewise.
11372
11373 PR ada/19037
11374 * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
11375 result of a function call, first try to use a stabilized reference for
11376 a constant renaming too.
11377 (validate_alignment): Use target_maximum_allowed_alignment instead of
11378 MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
11379 (gnat_to_gnu_entity): Use common nodes directly.
11380 (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
11381 alignment and size for the object.
11382 (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
11383 and N_Procedure_Call_Statement.
11384 (takes_address): Rename to lvalue_required_p, add third parameter
11385 'aliased' and adjust recursive calls.
11386 <N_Indexed_Component>: Update 'aliased' from the array type.
11387 <N_Selected_Component>: New case.
11388 <N_Object_Renaming_Declaration>: New Likewise.
11389 (Identifier_to_gnu): Adjust for above changes.
11390 (maybe_stabilize_reference) <CONST_DECL>: New case.
11391
11392 * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
11393 between type variants.
11394 (build_simple_component_ref): Likewise.
11395 (build_call_alloc_dealloc): Use target_default_allocator_alignment
11396 instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
11397 aligning type circuitry for allocations from the default storage pool.
11398 (build_allocator): Likewise.
11399 (build_simple_component_ref): Manually fold the reference for a
11400 constructor if the record type contains a template.
11401
11402 * utils.c (value_zerop): Delete.
11403 (gnat_init_decl_processing): Emit debug info for common types.
11404 (rest_of_record_type_compilation): If a union contains a field
11405 with a non-constant qualifier, treat it as variable-sized.
11406 (finish_record_type): Give the stub TYPE_DECL a name.
11407 (rest_of_record_type_compilation): Likewise.
11408 (convert) <CONSTRUCTOR>: New case. Build a new constructor if
11409 types are equivalent array types.
11410 (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
11411 even if the type is not passed by reference.
11412 (static_ctors, static_dtors): Delete.
11413 (end_subprog_body): Do not record constructors and destructors.
11414 (build_global_cdtor): Delete.
11415 (gnat_write_global_declarations): Do not call build_global_cdtor.
11416
0ab29e91 11417 * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
ab6328d0
AC
11418 -fRTS=rtp is specified.
11419 If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
11420 specified.
11421
11422 * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
11423 of the personality function with SJLJ exceptions.
11424
9e81dbc7 11425 * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
ab6328d0
AC
11426 the name of the personality function with SJLJ exceptions.
11427
114282007-08-14 Robert Dewar <dewar@adacore.com>
11429 Ed Schonberg <schonberg@adacore.com>
11430
11431 * par.ads, par.adb: Improve handling of extra right parens.
11432 (Par): Remove flag From_Limited_With_Clause.
11433
11434 * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
11435 Improve handling of extra right parens.
11436
114372007-08-14 Robert Dewar <dewar@adacore.com>
11438
11439 * par-tchk.adb (TF_Semicolon): Improve error recovery
11440
114412007-08-14 Robert Dewar <dewar@adacore.com>
11442 Ed Schonberg <schonberg@adacore.com>
11443
11444 * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
11445 enumeration type, mark all literals as referenced.
11446 (Eval_Attribute, case 'Image): If the argument is an enumeration
11447 literal and names are available, constant-fold but mark nevertheless as
11448 non-static.
11449 Clean up function names.
11450 (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
11451 comment.
11452 (Requires_Simple_Name_Prefix): Removed.
11453
114542007-08-14 Robert Dewar <dewar@adacore.com>
11455 Ed Schonberg <schonberg@adacore.com>
11456
11457 * sem_ch11.adb: Improved warnings for unused variables
11458
11459 * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
11460 is a synchronized interface, the derived type is limited.
11461 (Analyze_Object_Declaration): Mark the potential coextensions in the
11462 definition and expression of an object declaration node.
11463 (Build_Derived_Type): For the completion of a private type declaration
11464 with a derived type declaration, chain the parent type's representation
11465 items to the last representation item of the derived type (not the
11466 first one) if they are not present already.
11467 (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
11468 object declaration of forward references to tags.
11469 (Access_Subprogram_Declaration): In Ada2005, anonymous access to
11470 subprogram types can appear as access discriminants of synchronized
11471 types.
11472 (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
11473 given in prefixed form as a selected component.
11474 (Process_Discriminants): If not all discriminants have defaults, place
11475 error message on a default that is present.
11476 (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
11477 extend a synchronized tagged type.
11478 Improved warnings for unused variables
11479 (Is_Visible_Component): Fix a visibility hole on a component inherited
11480 by a private extension when parent is itself declared as a private
11481 extension, and the derivation is in a child unit.
11482 (Find_Hidden_Interface): Move spec from the package body.
11483
114842007-08-14 Robert Dewar <dewar@adacore.com>
11485 Ed Schonberg <schonberg@adacore.com>
11486
11487 * sem_ch5.adb: Improve warnings on redundant assignments
11488
11489 * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
11490 parameter
11491 (Is_Synchronized_Tagged_Type): New subprogram that returns true
11492 in case of synchronized tagged types (AARM 3.9.4 (6/2)).
11493 (Safe_To_Capture_Value): Can now return True for constants, even if Cond
11494 is set to False. Improves handling of Known_[Not_]Null.
11495 (Wrong_Type): Special case address arithmetic attempt
11496 (Collect_Abstract_Interfaces): Add new formal to allow collecting
11497 abstract interfaces just using the partial view of private types.
11498 (Has_Abstract_Interfaces): Add new formal to allow checking types
11499 covering interfaces using the partial view of private types.
11500 (Is_Fully_Initialized_Type): Special VM case for uTag component. This
11501 component still needs to be defined in this case, but is never
11502 initialized as VMs are using other dispatching mechanisms.
11503 (Abstract_Interface_List): For a protected type, use base type to get
11504 proper declaration.
11505 Improve warnings on redundant assignments
11506 (Is_Variable): Handle properly an implicit dereference of a prefixed
11507 function call.
11508 (Build_Actual_Subtype): If this is an actual subtype for an
11509 unconstrained formal parameter, use the sloc of the body for the new
11510 declaration, to prevent anomalises in the debugger.
11511
115122007-08-14 Robert Dewar <dewar@adacore.com>
11513
11514 * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
11515 dispatching operation
11516
115172007-08-14 Ed Schonberg <schonberg@adacore.com>
11518 Gary Dismukes <dismukes@adacore.com>
11519
9e81dbc7 11520 * exp_aggr.ads,
ab6328d0
AC
11521 exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
11522 expanded aggregate code before allocator, and ahead of declaration for
11523 temporary, to prevent access before elaboration when the allocator is
11524 an actual for an access parameter.
11525 (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
11526 the TSD and the table of interfaces.
11527 (Convert_To_Assignments): Augment the test for delaying aggregate
11528 expansion for limited return statements to include the case of extended
11529 returns, to prevent creation of an unwanted transient scope.
11530 (Is_Static_Dispatch_Table_Aggregate): New subprogram.
11531 (Expand_Array_Aggregate): Handle aggregates associated with
11532 statically allocated dispatch tables.
11533 (Expand_Record_Aggregate): Handle aggregates associated with
11534 statically allocated dispatch tables.
11535 (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
11536 of anonymous access type.
11537
115382007-08-14 Ed Schonberg <schonberg@adacore.com>
11539
11540 * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
11541 is a variable that renames a slice, use the variable itself in the
11542 expannsion when the renamed expression itself may be modified between
11543 the declaration of the renaming and the array assignment.
11544
115452007-08-14 Jerome Guitton <guitton@adacore.com>
11546
9e81dbc7
AS
11547 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
11548 s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
ab6328d0
AC
11549 s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
11550 New functions; dummy implementations.
11551
11552 * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
11553 functions, used to implement the multi-tasks mode routines on VxWorks.
11554
11555 * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
11556 New functions, thin
11557 binding to the VxWorks routines which have changed between VxWorks 5
11558 and 6.
11559 (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
11560 which are not callable from a RTP.
11561
11562 * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
11563 implemented for the multi-tasks mode on VxWorks 5 and 6.
11564
11565 * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
11566
11567 * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
11568 functions.
11569
115702007-08-14 Vincent Celier <celier@adacore.com>
11571
9e81dbc7 11572 * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
ab6328d0 11573 gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
9e81dbc7
AS
11574 mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
11575 mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
11576 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
ab6328d0
AC
11577 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
11578 mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
11579 procedure.
11580 (Major_Id_Name): New function.
11581 mlib-tgt.ads/mlib.tgt.adb:
11582 (Library_Major_Minor_Id_Supported): New function, default returns True
11583 Most mlib-tgt-*.adb that support shared libraries and symbolic links:
11584 (Build_Dynamic_Library): Add support for major/minor ids for shared libs
11585 Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
11586 Implementation of Library_Major_Minor_Id_Supported returns False
11587 clean.adb:
11588 (Clean_Library_Directory): If major/minor ids are supported, clean all
11589 library files.
11590 Major update of the Project Manager and of the project aware tools,
11591 including gprmake, so that the same sources in the GNAT repository
11592 can be used by gprbuild.
11593
115942007-08-14 Olivier Hainque <hainque@adacore.com>
11595
11596 * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
11597 (GCC_ZCX_Support): Switch to True.
9e81dbc7 11598
ab6328d0
AC
11599 * s-intman-solaris.adb (Notify_Exception): Call
11600 Adjust_Context_For_Raise before raising, as expected for signal
11601 handlers in general.
9e81dbc7 11602
ab6328d0
AC
11603 * s-intman-posix.adb (Notify_Exception): Remove declaration of
11604 Adjust_Context_For_Raise, moved to the spec of this unit to be visible
11605 to other implementation bodies.
9e81dbc7 11606
ab6328d0
AC
11607 * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
11608 be visible by multiple implementation bodies.
9e81dbc7 11609
ab6328d0
AC
11610 * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
11611 only for conditions coming from hardware.
11612 [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
11613 adjustments to signal context prior to exception raise from signal
11614 handler.
11615 (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
11616 mode.
11617 Solaris section: (__gnat_adjust_context_for_raise): New function.
11618 Implementation of the machine context adjustments to perform prior to
11619 raise from a signal handler. Version for both sparc and x86.
11620 (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
11621 (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
11622 prior to raising as expected for any handler, before possible nested
11623 faults to make sure all the contexts in a chain have been adjusted by
11624 the time we propagate.
11625
116262007-08-14 Pascal Obry <obry@adacore.com>
11627
11628 * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
11629 (SYSTEM_INFO): New record.
11630 (SetThreadIdealProcessor): New imported routine needed for supporting
11631 task_info pragma on Windows.
11632
11633 * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
11634 info can be applied to the current host.
11635 (Create_Task): Set the ideal processor if information is present.
11636
11637 * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
11638 a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
11639
116402007-08-14 Olivier Hainque <hainque@adacore.com>
11641
11642 * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
11643 stack size and initial stack pointer value for a given task.
11644 (Enter_Task): Get the stack attributes of the task we are entering and
11645 let the stack checking engine know about them.
11646
11647 * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
11648 Let the stack-checking engine know about the initial sp value and stack
11649 size associated with the current task.
11650 (Set_Stack_Info): If a stack base has been notified for the current
11651 task, honor it. Fallback to the previous less accurate method otherwise.
11652
11653 * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
11654
116552007-08-14 Ed Schonberg <schonberg@adacore.com>
11656
11657 * sem_ch10.adb: Create a limited view of an incomplete type, to make
11658 treatment of limited views uniform for all visible declarations in a
11659 limited_withed package.
11660 Set flag indicating that a subprogram body for a child unit has a
11661 generated spec.
11662 (Analyze_Compilation_Unit): If unit is a subprogram body that has no
11663 separate declaration, remove the unit name from visibility after
11664 compilation, so that environment is clean for subsequent compilations.
11665 (Install_Limited_Context_Clauses): Do not install a
11666 limited_private_with_clause unless the current unit is a body or a
11667 private child unit.
11668 (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
11669 in the same fashion.
11670 (Install_Limited_Withed_Unit): Do not install a limited with clause if
11671 it applies to the declaration of the current package body.
11672 (Remove_Private_With_Clauses): If there is a regular with_clause for
11673 the unit, delete Private_With_Clause from context, to prevent improper
11674 hiding when processing subsequent nested packages and instantiations.
11675
116762007-08-14 Jose Ruiz <ruiz@adacore.com>
11677
11678 * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
11679 dir/file, device:/dir/file, and device:drive_letter:/dir/file as
11680 representing absolute path names.
11681 __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
11682
11683 * cstreams.c (__gnat_full_name for VxWorks): Use
11684 __gnat_is_absolute_path to detect whether we need to add the current
11685 directory to normalize the path.
11686
116872007-08-14 Javier Miranda <miranda@adacore.com>
11688
9e81dbc7 11689 * a-tags.ads,
ab6328d0
AC
11690 a-tags.adb (Displace): Associate a message with the raised CE
11691 exception.
11692 (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
11693 To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
11694 To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
11695 spec.
11696 (Default_Prim_Op_Count): Removed.
11697 (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
11698 Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
11699 Remove pragma Inline_Always.
11700
11701 * rtsfind.ads (Default_Prim_Op_Count): Removed
11702 (Max_Predef_Prims): New entity
11703 (RE_Expanded_Name): Removed
11704 (RE_HT_Link): Removed
11705 (RE_Iface_Tag): Remmoved
11706 (RE_Ifaces_Table): Removed
11707 (RE_Interfaces_Array): Removed
11708 (RE_Interface_Data_Element): Removed
11709 (RE_Nb_Ifaces): Removed
11710 (RE_RC_Offset): Removed
11711 (RE_Static_Offset_To_Top): Removed
11712
11713 * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
11714 formal.
11715 (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
11716 Prim_Op_Count by Max_Predef_Prims.
11717
117182007-08-14 Thomas Quinot <quinot@adacore.com>
11719 Vincent Celier <celier@adacore.com>
11720
11721 * binde.adb (Elab_All_Links): Remove unnecessary call to
11722 Generic_Separately_Compiled (if a unit satisfies this predicate, there
11723 won't be an associated Afile).
11724 (Elab_All_Links): Fail if a referenced unit cannot be found
11725
9e81dbc7 11726 * bindgen.adb:
ab6328d0
AC
11727 Fix comments in bindgen regarding consistency checks done in Bcheck:
11728 the checks are made across units within a partition, not across several
11729 partitions.
11730 Fix generation of C binder file for VxWorks.
11731
11732 * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
11733 Generic_May_Lack_ALI, more descriptive of the current use of the
11734 predicate, and update documentation.
11735
11736 * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
11737 reorganization and documentation update for the case of predefined
11738 library generics (for which we do not reference an Afile).
11739
117402007-08-14 Robert Dewar <dewar@adacore.com>
11741
11742 * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
11743 s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
11744 s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
11745 s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
11746 s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
11747 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
11748 s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
11749 s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
11750 exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
11751 s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
11752 s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
11753 a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
11754 s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
11755 g-altcon.adb: Minor reformatting
11756
11757 ada-tree.h: Delete empty line.
11758
11759 ali.ads: Minor reformatting
11760 Clarification of comments.
11761 Minor spelling correction
11762
11763 * exp_dbug.adb: Add Warnings Off to suppress new warning
11764
11765 * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
11766 formal
11767
11768 * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
11769 value
11770
11771 * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
11772
11773 * a-textio.ads: Reorder the standard input/output/error declarations
11774 for consistency.
11775
11776 * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
11777
11778 * par-ch2.adb: Recognize RM specially in errout
11779 Change 'R'M to RM in all error messages
11780
11781 * scng.adb: Recognize RM specially in errout
11782
11783 * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
11784 N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
11785
11786 * s-direio.adb: Add missing routine header box.
11787
11788 * sem_attr.ads: Add ??? comments
11789
11790 * sem_eval.adb: Recognize RM specially in errout
11791 Change 'R'M to RM in all error messages
11792
11793 * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
11794
11795 * s-tasinf.ads: Fix minor comment typo.
11796
11797 * a-cihama.adb: Minor comment addition
11798
11799 * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
11800 formal
11801
11802 * s-tasinf-tru64.ads: Fix minor comment typo.
11803
11804 * itypes.ads: Comment update.
11805
11806 * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
11807 anymore.
11808
11809 * argv.c: Added protection against null gnat_argv and gnat_envp.
11810
11811 * bcheck.adb (Check_Consistency): Use correct markup character ({) in
11812 warning message when Tolerate_Consistency_Errors is True.
11813
11814 * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
11815 Any_Id, as this subprogram is only applicable to *type* entities (it
11816 sets RM_Size). Instead initialize just Esize and Alignment.
11817
118182007-08-14 Bob Duff <duff@adacore.com>
11819
9e81dbc7
AS
11820 * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
11821 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
11822 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
ab6328d0
AC
11823 a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
11824 a-coorse.ads (Next): Applied pragma Inline.
11825 Make all Containers packages Remote_Types (unless they are already
11826 Pure).
11827 (Previous): applied pragma Inline
11828 (Elements_Type): is now a record instead of an array
11829
118302007-08-14 Thomas Quinot <quinot@adacore.com>
11831
11832 * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
11833 of Set_Item.
11834 (Set_Item): When the new item is an element of the currently allocated
11835 table passed by reference, save a copy on the stack if we're going
11836 to reallocate. Also, in Table.Set_Item, make sure we test the proper
11837 variable to determine whether to call Set_Last.
11838
11839 * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
11840 symbols-vms.adb, symbols-processing-vms-alpha.adb,
11841 symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
11842 some occurrences of the pattern
11843 T.Increment_Last;
11844 T.Table (T.Last) := Value;
11845 with a cleaner call to
11846 T.Append (Value);
11847
118482007-08-14 Ed Schonberg <schonberg@adacore.com>
11849 Gary Dismukes <dismukes@adacore.com>
11850 Thomas Quinot <quinot@adacore.com>
11851
11852 * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
11853 derived type with interface progenitors use the analyzed formal as the
11854 parent of the actual, to create renamings for all the inherited
11855 operations in Derive_Subprograms.
11856 (Collect_Previous_Instances): new procedure within of
11857 Load_Parent_Of_Generic, to instantiate all bodies in the compilation
11858 unit being loaded, to ensure that the generation of global symbols is
11859 consistent in different compilation modes.
11860 (Is_Tagged_Ancestor): New function testing the ancestor relation that
11861 takes progenitor types into account.
11862 (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
11863 traversing over the primitives of the formal and actual types to locate
11864 any abstract subprograms of the actual type that correspond to a
11865 nonabstract subprogram of the formal type's ancestor type(s), and issue
11866 an error if such is found.
11867 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
11868 Instantiate_Package_Body, Instantiate_Subprogram_Body):
11869 Remove bogus guard around calls to Inherit_Context.
11870 (Reset_Entity): If the entity is the selector of a selected component
11871 that denotes a named number, propagate constant-folding to the generic
11872 template only if the named number is global to the generic unit.
11873 (Set_Instance_Env): Only reset the compilation switches when compiling
11874 a predefined or internal unit.
11875
118762007-08-14 Ed Schonberg <schonberg@adacore.com>
11877
11878 * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
11879 parameter to determine whether operation applies to the prefix.
11880 (Complete_Object_Operation): If actual has an access type and
11881 controlling formal is not an in_parameter, reject the actual if it is
11882 an access_to_constant type.
11883 (Try_Primitive_Operation): If the type of the prefix is a formal tagged
11884 type, the candidate operations are found in the scope of declaration of
11885 the type, because the type has no primitive subprograms.
11886 (Analyze_Selected_Component): If prefix is class-wide, and root type is
11887 a private extension, only examine visible components before trying to
11888 analyze as a prefixed call.
11889 Change Entity_List to Type_To_Use, for better readability.
11890 (Has_Fixed_Op): Use base type when checking whether the type of an
11891 operator has a user-defined multiplication/division
11892 (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
11893 user-defined operators are available for fixed-point types.
11894
118952007-08-14 Thomas Quinot <quinot@adacore.com>
11896 Ed Schonberg <schonberg@adacore.com>
11897
11898 * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
11899 formal At_Any_Place indicating, when True, that we want to test for
11900 availability of the stream attribute at any place (as opposed to the
11901 current visibility context only).
11902 (Missing_Read_Write_Attributes): A stream attribute is missing for the
11903 purpose of enforcing E.2.2(8) only if it is not available at any place.
11904 Take into account the Ada2005 pragma Has_Preelaborable_Initialization
11905 when checking the legality of an extension aggregate in a preelaborable
11906 package. Treat the literal null as a valid default expression in a
11907 component declaration for a type with preelaborable initialization.
11908 A limited interface is a legal progenitor for the designated type of a
11909 remote access to class-wide type.
11910
119112007-08-14 Thomas Quinot <quinot@adacore.com>
11912 Ed Schonberg <schonberg@adacore.com>
11913
11914 * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
11915 reference): Use correct entity as denoted entity for the selector of
11916 the rewritten node.
11917 (Find_Direct_Name): Add comment about Generate_Reference incorrectly
11918 setting the Referenced_As_LHS flag for entities that are implicitly
11919 dereferenced.
11920 (Find_Type): If the type is an internally generated incomplete type,
11921 mark the full view as referenced, to prevent spurious warnings.
11922 (Find_Selected_Component, Has_Components): Handle properly non-limited
11923 views that are themselves incomplete types.
11924 Handle interfaces visible through limited-with clauses.
11925 (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
11926 subprogram generic actual for which we have generated a renaming.
11927 Warn when the renaming introduces a homonym of
11928 the renamed entity, and the renamed entity is directly visible.
11929
119302007-08-14 Ed Schonberg <schonberg@adacore.com>
11931 Hristian Kirtchev <kirtchev@adacore.com>
11932
11933 * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
11934 appear in the subtree to the current allocator if it is not a static
11935 coextension.
11936 (Resolve_Allocator): Perform cleanup if resolution has determined that
11937 the allocator is not a coextension.
11938 (Resolve): Skip an interpretation hidden by an abstract operator only
11939 when the type of the interpretation matches that of the context.
11940 (Resolve): When looping through all possible interpretations of a node,
11941 do not consider those that are hidden by abstract operators.
11942 (Resolve_Actuals): When verifying that an access to class-wide object
11943 is an actual for a controlling formal, ignore anonymous access to
11944 subprograms whose return type is an access to class_wide type.
11945 (Resolve_Slice): If the prefix of the slice is a selected component
11946 whose type depends on discriminants, build its actual subtype before
11947 applying range checks on the bounds of the slice.
11948 (Valid_Conversion): In an instance or inlined body, compare root types,
11949 to prevent anomalies between private and public views.
11950 (Resolve): Improve error message for ambiguous fixed multiplication
11951 expressions that involve universal_fixed multiplying operations.
11952
119532007-08-14 Javier Miranda <miranda@adacore.com>
11954 Hristian Kirtchev <kirtchev@adacore.com>
11955
11956 * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
11957 location to allow the correct generation of errors in case of
11958 restrictions applied to the expanded code.
11959 (Expand_Entry_Barrier): Remove all generated renamings for a barrier
11960 function if the condition does not reference them.
11961 (Expand_Entry_Body_Declarations): Mark the index constant as having a
11962 valid value.
11963
119642007-08-14 Thomas Quinot <quinot@adacore.com>
8a57e48f 11965 Pablo Oliveira <oliveira@adacore.com>
ab6328d0
AC
11966
11967 * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
11968 typecode parameters for a union (in a variant record), remove
11969 extraneous layer of Any wrapping for member label.
11970 (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
11971 elabration statements, register the package with the name server
11972 at the beginning, not at the end, of the elaboration statements so
11973 that they can create remote access to subprogram values that designate
11974 remote subprograms from the package.
11975
119762007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
11977
11978 * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
11979 values to compute the number of seconds since the Unix Epoc in order to
11980 account for Daylight Savings Time. Perform special processing for dates
11981 that are earlier than the Unix Epoc to obtain a negative number.
11982
119832007-08-14 Emmanuel Briot <briot@adacore.com>
11984
11985 * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
11986 switches.
11987
119882007-08-14 Eric Botcazou <ebotcazou@adacore.com>
11989
11990 * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
11991 binder-generated file is not in Ada.
11992 Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
11993 recorded in the ALI file.
11994 Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
11995
119962007-08-14 Vincent Celier <celier@adacore.com>
11997
11998 * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
11999 (Output_Source): Do nothing if parameter is No_Sdep_Id
12000
12001 * make.adb (Gnatmake): Do not rebuild an archive simply because a
12002 shared library it imports has a later time stamp.
12003 (Check): Resolve the symbolic links in the path name of the object
12004 directory.
12005 Check that the ALI file is in the correct object directory
12006 Check if a file name does not correspond to the mapping of units
12007 to file names.
12008 (Display_Version): New procedure
12009 (Initialize): Process switches --version and --help
12010 Use type Path_Name_Type for path name
12011
120122007-08-14 Paul Hilfinger <hilfinger@adacore.com>
12013
12014 * impunit.adb: Re-organize System.Random_Numbers and
12015 GNAT.Random_Numbers and add to builds.
12016
12017 * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
12018
12019 * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
12020
12021 * a-assert.ads, a-assert.adb: New files.
12022
120232007-08-14 Gary Dismukes <dismukes@adacore.com>
12024
12025 * layout.adb (Layout_Type): In the case of access-to-subprogram types,
12026 if AAMP_On_Target is True, then the size of the type encompasses two
12027 addresses (a static link and a subprogram address), except in the case
12028 of library-level access types.
12029
120302007-08-14 Vincent Celier <celier@adacore.com>
12031
12032 * output.ads, output.adb (Write_Eol): Remove trailing spaces before
12033 writing the line.
12034 (Write_Eol_Keep_Blanks): New procedure to write a line, including
12035 possible trailing spaces.
12036 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
12037
120382007-08-14 Javier Miranda <miranda@adacore.com>
12039
12040 * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
12041 null-excluding access types.
12042
120432007-08-14 Javier Miranda <miranda@adacore.com>
12044
12045 * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
12046 that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
12047 of private types add missing check on matching interfaces in the
12048 partial and full declarations.
12049 (Analyze_Protected_Type): Code cleanup.
12050 (Analyze_Task_Type): Code cleanup.
12051
120522007-08-14 Javier Miranda <miranda@adacore.com>
12053
12054 * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
12055 generated interface thunk.
12056
120572007-08-14 Ed Schonberg <schonberg@adacore.com>
12058
12059 * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
12060 obsolescent warning on application of 'Class to an incomplete type.
12061
12062 * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
12063 prevent obsolescent warning on application of 'Class to an incomplete
12064 type.
12065
120662007-08-14 Pascal Obry <obry@adacore.com>
12067
12068 * s-fileio.adb (Is_Open): Add check for usability of the underlying
12069 file stream.
12070
120712007-08-14 Cyrille Comar <comar@adacore.com>
12072
12073 * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
12074 since it is potentially used in cases implying double finalization of
12075 the same object.
12076
120772007-08-14 Jose Ruiz <ruiz@adacore.com>
12078
12079 * s-tasini.adb (Get_Stack_Info): Move this function to
12080 System.Soft_Links.Tasking because it is common to the full and the
12081 restricted run times.
12082 (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
12083 in SSL.Tasking.Init_Tasking_Soft_Links.
12084
12085 * s-solita.adb (Get_Stack_Info): Function moved from
12086 System.Tasking.Initialization because it is common to the full and the
12087 restricted run times.
12088 (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
12089
120902007-08-14 Arnaud Charlet <charlet@adacore.com>
12091
12092 * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
12093 s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
12094 (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
12095 parameter.
12096
12097 * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
12098 guard to 12K.
12099
121002007-08-14 Gary Dismukes <dismukes@adacore.com>
12101
12102 * s-veboop.adb (SU): New named number initialized to
12103 System.Storage_Unit.
12104 (True_Val): The initialization expression is revised to use SU (=
12105 Storage_Unit) rather than assuming 8 for the component size of an
12106 unpacked Boolean array.
12107
121082007-08-14 Tristan Gingold <gingold@adacore.com>
12109
12110 * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
12111
12112 * tb-ivms.c: New file.
12113
12114 * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
12115
121162007-08-14 Geert Bosch <bosch@adacore.com>
12117
12118 * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
12119 s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
12120 Add required linker pragmas for automatically linking with the gnalasup
12121 linear algebra support library, and the systems math library.
12122 Rename cdot to cdotu and zdot to zdotu.
12123 Update header comment to describe purpose of package.
12124
121252007-08-14 Thomas Quinot <quinot@adacore.com>
12126
12127 * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
12128 an explicitly specified Associated_Final_Chain, use that list.
12129 (Expand_N_Package_Body): Build dispatch tables of library level tagged
12130 types.
12131 (Expand_N_Package_Declaration): Build dispatch tables of library level
12132 tagged types. Minor code cleanup.
12133
121342007-08-14 Vincent Celier <celier@adacore.com>
12135
12136 * gnatchop.adb (Terminate_Program): Remove exception and use
12137 Types.Terminate_Program instead.
12138
12139 * osint.ads, osint.adb (Current_Exit_Status): New global variable
12140 (Find_Program_Name): Added protection against empty name.
12141 (OS_Exit_Through_Exception): New procedure
12142
12143 * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
12144 (OS_Exit_Default): New procedure that contains the previous
12145 implementation of procedure OS_Exit.
12146 (Final_Value): Remove obsolete Interix stuff.
12147
121482007-08-14 Thomas Quinot <quinot@adacore.com>
12149
12150 * g-socket.ads: Reorganize example code so that it also works on
12151 Windows XP.
12152
121532007-08-14 Tristan Gingold <gingold@adacore.com>
12154
12155 * g-trasym.ads: AIX now supports symbolic backtraces.
12156
121572007-08-14 Ed Schonberg <schonberg@adacore.com>
12158
12159 * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
12160 units being loaded to detect circularities. A circularity may be
12161 present even if the current chain of pending units to load starts from
12162 a limited_with_clause.
12163
12164 * lib-load.ads: Change profile of Load_Unit to use a with_clause
12165 rather than a boolean flag, in order to detect circularities in
12166 with_clauses.
12167
12168 * par-load.adb: Use current with_clause in calls to Load_Unit, rather
12169 than propagating the From_Limited_With flag, in order to handle
12170 properly circularities involving with_clauses.
12171
121722007-08-14 Nicolas Setton <setton@adacore.com>
12173
12174 * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
12175 warnings.
12176
121772007-08-14 Arnaud Charlet <charlet@adacore.com>
12178
12179 * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
12180 to build for libgnala.
12181 libgnat: Add rules to build libgnala.a
12182 (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
12183 target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
12184 Add s-osinte-vxworks-kernel.adb to the target pairs of the
12185 kernel run-time lib for VxWorks 6, which would provide a different
12186 implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
12187 x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
12188 running ZCX by default.
12189 Add g-sttsne-locking to LynxOS version.
12190 Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
12191 On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
12192
12193 * system-darwin-x86.ads: New file.
12194
12195 * Make-lang.in: Delete files before copying onto them, so if they are
12196 read-only, the copy won't fail.
12197 Update dependencies
12198
121992007-08-14 Pascal Obry <obry@adacore.com>
12200
12201 * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
12202 naming scheme.
12203
122042007-08-14 Vincent Celier <celier@adacore.com>
12205
12206 * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
12207 (Gcc): Initialize Gcc_Name at the first call
12208
122092007-08-14 Ed Schonberg <schonberg@adacore.com>
12210
12211 * sem_ch7.adb (Analyze_Package_Specification): Do not install private
12212 with_clauses of the enclosing unit when analyzing the package
12213 specification of a nested instance.
12214
122152007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
12216
12217 * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
12218 (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
12219 Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
12220 layout of N_Allocator.
12221
122222007-08-14 Thomas Quinot <quinot@adacore.com>
12223
12224 * rtsfind.adb (Check_RPC): Add PCS version check.
12225
12226 * gnatvsn.ads, gnatvsn.adb: Add PCS version.
12227 (Gnat_Free_Software): New function.
12228
12229 * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
12230 the PCS_Version value from s-parint, used to check that it is consistent
12231 with what exp_dist expects.
12232
12233 * s-parint.ads (PCS_Version): New entity for checking consistency
12234 between exp_dist and PCS.
12235
12236 * gen-soccon.c: (SO_REUSEPORT): New constant.
12237
122382007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
12239
12240 * a-calfor.adb (Image (Duration; Boolean)): Change type of local
12241 variable Sub_Second to Duration in order to accomodate a larger range
12242 of arithmetic operations.
12243
122442007-08-14 Bob Duff <duff@adacore.com>
12245
12246 * g-sttsne-locking.ads: Move comments from spec to body.
12247 * g-sttsne-locking.adb: Move comments from spec to body.
12248 * g-sttsne-vxworks.ads: Removed.
12249 * g-sttsne-vxworks.adb: Removed.
12250
4862826d
ILT
122512007-08-11 Ian Lance Taylor <iant@google.com>
12252
12253 * misc.c (gnat_get_alias_set): Change return type to
12254 alias_set_type.
12255
4d8a9bfe
KG
122562007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12257
12258 * decl.c, utils2.c: Fix whitespace in last change.
12259
39595763
KG
122602007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12261
12262 * decl.c (compare_field_bitpos): Constify.
12263 * utils2.c (compare_elmt_bitpos): Likewise.
12264
08e7e8cb
AJ
122652007-07-27 Aurelien Jarno <aurelien@aurel32.net>
12266
9e81dbc7 12267 * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
08e7e8cb
AJ
12268 anonymous access type.
12269 (pthread_sigmask): Now take an access sigset_t.
12270
9e94c78f 122712007-07-05 Joel Sherrill <joel.sherrill@oarcorp.com>
83983455 12272
9e81dbc7
AS
12273 * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
12274
a8257e58
EB
122752007-06-21 Eric Botcazou <ebotcazou@adacore.com>
12276
12277 PR tree-optimization/25737
12278 * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
12279
5be014d5
AP
122802007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
12281
12282 * trans.c (Attribute_to_gnu): When subtracting an
12283 offset from a pointer, use POINTER_PLUS_EXPR with
12284 NEGATE_EXPR instead of MINUS_EXPR.
12285 (gnat_to_gnu): Likewise.
12286 * utils.c (convert): When converting between
12287 thin pointers, use POINTER_PLUS_EXPR and sizetype
12288 for the offset.
12289 * utils2.c (known_alignment): POINTER_PLUS_EXPR
12290 have the same semantics as PLUS_EXPR for alignment.
12291 (build_binary_op): Add support for the semantics of
12292 POINTER_PLUS_EXPR's operands.
12293 When adding an offset to a pointer, use POINTER_PLUS_EXPR.
12294
719bb4e3 122952007-06-11 Rafael Ávila de Espíndola <espindola@google.com>
b0464c88 12296
a472f546
EB
12297 * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
12298 of get_signed_or_unsigned_type.
b0464c88
RE
12299 * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
12300
93e17a25 123012007-06-11 Bob Duff <duff@adacore.com>
9e81dbc7 12302 Thomas Quinot <quinot@adacore.com>
93e17a25
BD
12303
12304 * g-stsifd-sockets.adb (Create): Work around strange behavior of
12305 'bind' on windows that causes 'connect' to fail intermittently, by
12306 retrying the 'bind'.
12307 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12308
1bbf8502
DS
123092007-06-10 Duncan Sands <baldrick@free.fr>
12310
12311 * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
12312 than to void, for the fields when making a new fat pointer type.
12313 (gnat_substitute_in_type): Now substitute_in_type.
a472f546 12314 * gigi.h (gnat_substitute_in_type): Likewise. Adjust recursive calls.
1bbf8502
DS
12315 * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
12316 * utils.c (update_pointer_to): Update fat pointers by updating the
12317 dummy node pointers used for the fields.
12318
ec11296f
AC
123192007-06-06 Thomas Quinot <quinot@adacore.com>
12320 Bob Duff <duff@adacore.com>
12321
9e81dbc7
AS
12322 * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
12323 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
ec11296f
AC
12324 g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads: Add new
12325 constant Thread_Blocking_IO, always True by default, set False
12326 on a per-runtime basis.
12327 (Need_Netdb_Buffer): New constant.
12328
12329 * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
12330 g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
12331 files.
12332
12333 * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
12334 g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
12335 Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
12336 child package Task_Safe_NetDB
12337 (Host_Error_Messages): Add stub body.
12338 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12339
12340 * g-soccon-mingw.ads: Add Windows-specific constants.
12341 (Need_Netdb_Buffer): New constant.
12342 (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
12343 wrapper and import inet_addr(3) from the standard sockets library
12344 directly instead.
12345 (In_Addr): Add alignment clause.
12346 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12347
123482007-06-06 Robert Dewar <dewar@adacore.com>
12349
12350 * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
12351 s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
12352 s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
12353 s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
12354 s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
12355 s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
12356 a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
12357 a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
12358 a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
12359 g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
12360 g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
12361 i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
12362 s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
12363 s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
12364 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
12365 s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
12366 s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
12367 s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
12368 s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
12369 s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
12370 s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
12371 s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
12372 s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
12373 s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
12374 s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
12375 s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
12376 s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
12377 s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
12378 s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
12379 s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
12380 s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
12381 a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
12382 Unchecked_* by Ada.Unchecked_*
12383
123842007-06-06 Robert Dewar <dewar@adacore.com>
12385
12386 * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
12387 s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
12388 g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
12389 output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
12390 g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
12391 a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
12392
12393 * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
12394 s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
12395 s-tasloc.adb, s-tasloc.ads: New files.
12396
123972007-06-06 Bob Duff <duff@adacore.com>
12398
9e81dbc7 12399 * g-expect-vms.adb:
ec11296f
AC
12400 (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
12401 * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
12402 (Send_Signal, Close): Raise Invalid_Process if the process id is
12403 invalid.
12404 (Pattern_Matcher_Access): Is now a general access type to be able to
12405 use aliased string.
12406
124072007-06-06 Thomas Quinot <quinot@adacore.com>
12408 Arnaud Charlet <charlet@adacore.com>
12409
a472f546
EB
12410 * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
12411 (SIGEMT is now used instead of SIGTERM on AIX).
ec11296f
AC
12412
12413 * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
12414 (Time_Slice_Supported): Set to True.
a472f546 12415 Use SIGEMT instead of SIGTERM as SIGADAABORT.
ec11296f
AC
12416
124172007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
12418
12419 * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
12420 (Time, Time)): Use To_Relative_Time rather than manual calculation to
12421 express the bounds of Duration as Time. Raise Time_Error when the
12422 result is greater or equal to the higher bound of Duration (on the
12423 margin case).
12424 ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
12425 Ada_High_And_Leaps.
12426 ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
12427 Ada_High_And_Leaps.
12428 ("-" (Time, Time)): Reorder code.
12429 (All_Leap_Seconds): Removed.
12430 (Arithmetic_Operations.Add): Remove sign related kludge.
12431 (Arithmetic_Operations.Difference): Control the leaps seconds processing
12432 with flag Leap_Support.
12433 (Arithmetic_Operations.Subtract): Remove sign related kludge.
12434 (Check_Within_Time_Bounds): New procedure.
12435 (Clock): Control the leap seconds processing with flag Leap_Support.
12436 (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
12437 (Formatting_Operations.Split): Control the leap seconds processing with
12438 flag Leap_Support.
12439 (Formatting_Operations.Time_Of): Control the leaps seconds processing
12440 with flag Leap_Support. Adjust the year, month and day (if applicable)
12441 when the value of day seconds designates a new day.
12442 (Split): Use parameter associations for better readability. Integrate
12443 flag Is_Ada_05.
12444 (Time_Of): Use parameter associations for better readability. Integrate
12445 flag Is_Ada_05.
12446
12447 * a-calfor.adb (Split): Use parameter associations for better
12448 readability. Integrate flag Is_Ada_05.
12449 (Time_Of): Remove flag Leap_Checks. Use parameter associations for
12450 better readability. Integrate flag Is_Ada_05.
12451
124522007-06-06 Arnaud Charlet <charlet@adacore.com>
12453
9e81dbc7
AS
12454 * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
12455 s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
12456 s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
12457 s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
12458 s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
12459 s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
12460 s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
12461 s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
12462 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
ec11296f 12463 s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
9e81dbc7 12464 s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
ec11296f
AC
12465 time when entering this routine to detect a backward clock setting
12466 (manual setting or DST adjustment), to avoid waiting for a longer delay
12467 than needed.
12468 (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
12469 Remove handling of deferred priority change, and replace by setting the
12470 task priority directly, as required by AI-188.
12471 Update comments.
12472 (Max_Task_Image_Length): New constant.
12473 Replace Warnings (Off) by Unreferenced pragma, cleaner.
12474 (Dynamic_Priority_Support): Removed, no longer needed.
12475 (Poll_Base_Priority_Change): Ditto.
12476 (Set_Ceiling): Add this procedure to change the ceiling priority
12477 associated to a lock. This is a dummy implementation because dynamic
12478 priority ceilings are not supported by the underlying system.
12479
12480 * a-dynpri.adb (Set_Priority): Take into account case where Target is
12481 accepting a RV with its priority boosted.
12482 Remove handling of deferred priority change, and replace by setting the
12483 task priority directly, as required by AI-188.
12484
12485 * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
12486 Succeeded = True.
12487 Remove handling of deferred priority change, and replace by setting the
12488 task priority directly, as required by AI-188.
12489 (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
12490 of Self_Id earlier.
12491
12492 * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
12493 (Poll_Base_Priority_Change): Removed.
12494 Code clean up: use SSL.Current_Target_Exception.
12495
12496 * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
12497 to run as this is a potentially dispatching point.
12498 (Call_Synchronous): Use Local_Defer_Abort.
12499 (Callable): Relax assertion.
12500 (Selective_Wait): Relax assertion in case abort is not allowed.
12501 Remove handling of deferred priority change, and replace by setting the
12502 task priority directly, as required by AI-188.
12503
12504 * s-tasuti.adb (Make_Passive): Adjust assertions.
12505 Remove handling of deferred priority change, and replace by setting the
12506 task priority directly, as required by AI-188.
12507
125082007-06-06 Arnaud Charlet <charlet@adacore.com>
12509
9e81dbc7
AS
12510 * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
12511 system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
12512 system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
12513 system-vxworks-mips.ads, system-vxworks-alpha.ads,
12514 system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
12515 system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
12516 system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
12517 system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
ec11296f
AC
12518 system-solaris-sparcv9.ads, system-vms.ads, system.ads,
12519 system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
12520 system-linux-ia64.ads: Document mapping between Ada and OS priorities.
12521 This patch changes the largest non-binary modulus from 2**31-1 to
12522 2**32-1.
12523 (Compiler_System_Version): Removed, no longer used.
12524 Clean up system files by removing flags only used on a single target.
12525 Also remove obsolete flags, only used during bootstrap from system.ads
12526 (Address): Add a pragma Preelaborable_Initialization.
12527
12528 * system-aix.ads: Ditto.
12529 (GCC_ZCX_Support): Set to true.
12530 Update priority range on AIX and map Ada priorities to target
12531 priorities appropriately for different scheduling policies.
12532
12533 * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
12534
125352007-06-06 Vincent Celier <celier@adacore.com>
12536
12537 * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
12538 mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
12539
9e81dbc7
AS
12540 * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
12541 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
12542 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
12543 mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
ec11296f 12544 mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
a472f546
EB
12545 MLib.Tgt, containing the default versions of the exported subprograms.
12546 For each platform, create a specific version of the body of new child
12547 package MLib.Tgt.Specific that contains only the body of subprograms
12548 that are different from the default.
12549 (Archive_Builder_Append_Options): New function.
ec11296f
AC
12550
125512007-06-06 Matthew Gingell <gingell@adacore.com>
12552
a472f546
EB
12553 * s-osinte-aix.adb: Map Ada priorities to target priorities
12554 appropriately for different scheduling policies.
ec11296f
AC
12555
125562007-06-06 Arnaud Charlet <charlet@adacore.com>
12557
12558 * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
12559 its C counterpart.
12560 Remove references to Unchecked_Conversion, and use Ada.xxx instead.
9e81dbc7 12561 Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
ec11296f
AC
12562
125632007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
12564
a472f546
EB
12565 * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
12566 Noop on VMS, added for interface commonality.
ec11296f
AC
12567
125682007-06-06 Eric Botcazou <ebotcazou@adacore.com>
12569 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12570 Olivier Hainque <hainque@adacore.com>
12571
12572 * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
12573 renamed expression of a full renaming at toplevel.
12574 (gnat_to_gnu_entity, case object): If not defining, do not look inside
12575 the values the constant is initialized to if it is an N_Allocator.
12576 (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
12577 TYPE_SIZE_UNIT of inner types after the stride is elaborated.
12578 (make_aligning_type): Accept an extra ROOM argument for storage to be
12579 made available before the aligned field, and an extra BASE_ALIGN
12580 argument for callers to pass the alignment guaranteed to be honored for
12581 the whole aligning object. Avoid call to finish_record_type, which only
12582 interferes with the sizes we want to set.
12583 (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
12584 make_aligning_type for super-aligned objects on stack.
12585 (components_to_record): Pass the adjusted size of the type when creating
12586 fields in the qualified union for the variant part.
12587 (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
12588 (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
12589 packed array type.
12590 (maybe_pad_type): Set TYPE_USER_ALIGN.
12591 (make_aligning_type): Likewise.
12592 ALIGN argument is unsigned int.
12593 (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
12594 (gnat_to_gnu_param): Likewise, for parameters.
12595 (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
12596 if it is constant and stems from a function call.
12597 (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
12598 of the record is specified. Adjust accordingly.
12599 (adjust_packed): New static function.
12600 (gnat_to_gnu_field): Use it to adjust the packedness setting.
12601 (components_to_record): Likewise.
12602 (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
12603 side-effects if the object is deemed constant.
12604 (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
12605 type instead of merely finalizing it. Tidy.
12606 <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
12607 <E_Access_Type>: Likewise.
12608 (defer_debug_incomplete_list): Rename to defer_finalize_list.
12609 (defer_debug_level): Delete.
12610 (gnat_to_gnu_entity) <debug_deferred>: Likewise
12611 <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
12612 type.
12613 <E_Record_Type>: Do not explicitly defer finalizing the type.
12614 Adjust for write_record_type_debug_info renaming.
12615 <E_Subprogram_Type>: Likewise.
12616 Finalize deferred types right after deferred incomplete types are
12617 expanded.
12618 (rest_of_type_decl_compilation): New global function.
12619 (components_to_record): Rename defer_debug parameter to do_not_finalize.
12620 (components_to_record): Propagate the packedness to the fields of the
12621 qualified union type if there is a variant part.
12622 (gnat_to_gnu_entity) <E_Array_Type>: Use new function
12623 instead of inline code to adjust the XUT field offsets.
12624 (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
12625 <E_Record_Subtype>: Do not let finish_record_type compute the sizes
12626 and write the debug info if the type derives from a discriminated one.
12627 (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
12628 <E_Array_Subtype>: Likewise.
12629 <E_String_Literal_Subtype>: Likewise.
12630 (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
12631 an alignment clause.
12632 (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
12633 before giving warning.
12634 (prepend_one_attribute_to): New function, helper to prepend an attribute
12635 to an attribute list.
12636 (gnat_to_gnu_entity) <E_Procedure>: Use it.
12637 (prepend_attributes): Likewise.
12638 (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
12639 <E_Array_Type>: Declare the padding type for the element type, if any.
12640 <E_Array_Subtype>: Likewise.
12641 (defer_limited_with): New variable.
12642 (Gigi_Equivalent_Type): New function.
12643 (gnat_to_gnu_entity): Use it at start and use result throughout.
12644 (gnat_to_gnu_entity, case E_Access_Type): Rework to use
12645 Gigi_Equivalent_Type, support Limited_With, allow two levels of
12646 indirection, precompute if unconstrained array to simplify logic, and
12647 use defer_limited_with to defer elaboration of some types from limited
12648 with.
12649 (finalize_from_with_types): New function.
12650
126512007-06-06 Gary Dismukes <dismukes@adacore.com>
12652 Eric Botcazou <ebotcazou@adacore.com>
12653 Tristan Gingold <gingold@adacore.com>
12654 Olivier Hainque <hainque@adacore.com>
12655
a472f546
EB
12656 * trans.c (Identifier_to_gnu): Change test for deferred constant by
12657 adding guard that the entity is an E_Constant before testing presence
12658 of Full_view (and remove unnecessary test that entity is not a type).
ec11296f
AC
12659 For a CONST_DECL used by reference, manually retrieve
12660 the DECL_INITIAL. Do not invoke fold in the other DECL_P cases either.
12661 (struct language_function): Move from utils.c to here.
12662 (struct parm_attr): New structure.
12663 (parm_attr, parm_attr vector, parm_attr GC vector): New types.
12664 (f_parm_attr_cache): New macro.
12665 (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
12666 expressions for the 'First, 'Last and 'Length attributes of the
12667 unconstrained array IN parameters.
12668 (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
12669 Allocate the information structure for the function earlier, as well
12670 as the language-specific part.
12671 If the parameter attributes cache has been populated, evaluate the
12672 cached expressions on entry.
12673 (takes_address): Add OPERAND_TYPE parameter. Handle N_Function_Call,
12674 N_Procedure_Call_Statement and N_Indexed_Component.
12675 (Pragma_to_gnu): Translate inspection_point to an asm statement
12676 containaing a comment and a reference to the object (either its address
12677 for BLKmode or its value).
12678 (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
12679 to go to DECL_INITIAL. Together with the size constraint relaxation
12680 in create_var_decl, enlarges the set of situations in which an
12681 identifier may be used as an initializer without implying elaboration
12682 code.
12683 (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
12684 DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
12685 node.
12686 (maybe_stabilize_reference): Remove lvalues_only parameter.
12687 (gnat_stabilize_reference): Adjust for above change.
12688 (gnat_to_gnu): Do not set location information on the result
12689 if it is a reference.
12690 (add_cleanup): Add gnat_node parameter and set the location of the
12691 cleanup to it.
12692 (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
12693 (Exception_Handler_to_gnu_zcx): Likewise.
12694 (gigi): Remove the cgraph node if the elaboration procedure is empty.
12695 (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
12696 the former right after the latter.
12697 (start_stmt_group): Make global.
12698 (end_stmt_group): Likewise.
12699 (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
12700 vars.
12701 (gnu_program_error_label_stack): Likewise.
12702 (gigi): Initialize them.
12703 (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
12704 (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
12705 New cases.
12706 (push_exception_label_stack): New function.
12707 (takes_address): New function.
12708
12709 * utils.c (struct language_function): Move to trans.c from here.
12710 (unchecked_convert): Do not wrap up integer constants in
12711 VIEW_CONVERT_EXPRs.
12712 (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
12713 the latter for aggregate types, unexpected by later passes, and relax an
12714 arbitrary size constraint on the former.
12715 (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
12716 to compare the sizes.
12717 (convert_vms_descriptor): When converting to a fat pointer type, be
12718 prepared for a S descriptor at runtime in spite of a SB specification.
12719 (shift_unc_components_for_thin_pointers): New function.
12720 (write_record_type_debug_info): For variable-sized fields, cap the
12721 alignment of the pointer to the computed alignment.
12722 (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
12723 If REP_LEVEL is 2, do not compute the sizes.
12724 (build_vms_descriptor): Adjust for new prototype of finish_record_type.
12725 (build_unc_object_type): Likewise.
12726 (declare_debug_type): New function.
12727
9e81dbc7 12728 * ada-tree.def: USE_STMT: removed (not emitted anymore).
ec11296f 12729
9e81dbc7
AS
12730 * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
12731 no statement is expandable anymore.
12732 (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
12733 (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
12734 when the user requested it explicitely.
12735 (gnat_post_options): By default, set flag_eliminate_unused_debug_types
12736 to 0 for Ada.
12737 (get_alias_set): Return alias set 0 for a type if
12738 TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
ec11296f 12739
9e81dbc7
AS
12740 * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
12741 (DECL_FUNCTION_STUB): New accessor macro.
12742 (SET_DECL_FUNCTION_STUB): New setter macro.
ec11296f 12743
9e81dbc7 12744 * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
ec11296f
AC
12745
12746 * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
12747 declarations.
12748
127492007-06-06 Jose Ruiz <ruiz@adacore.com>
12750
12751 * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
12752 Rename to Abort_Task_Interrupt to be able to keep the same interface
12753 as the rest of the targets.
12754
12755 * s-osinte-vxworks.ads s-osinte-vxworks.adb
12756 (To_VxWorks_Priority): Remove explicit "in" mode indicator
12757
12758 * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
12759 New files.
12760
127612007-06-06 Robert Dewar <dewar@adacore.com>
12762
12763 * a-chahan.ads: Remove obsolescent pragmas
12764
12765 * a-chlat1.ads: Minor reformatting
12766
127672007-06-06 Robert Dewar <dewar@adacore.com>
12768
12769 * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
12770 for Errout
12771
12772 * errout.adb: New Finalize/Compilation_Errors/Output_Messages
12773 implementation
12774
12775 * errout.ads (Finalize): Changed interface
12776 (Output_Messages): New procedure
12777 (Compilation_Errors): New Interface
12778
12779 * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
12780 Finalize/Output_Messages interface for Errout
12781 (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
12782 Errout.
12783
127842007-06-06 Thomas Quinot <quinot@adacore.com>
12785 Olivier Hainque <hainque@adacore.com>
12786 Robert Dewar <dewar@adacore.com>
12787
12788 * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
12789 check.
12790 (Raise_Current_Excep): Call Debug_Raise_Exception just before
12791 propagation starts, to let debuggers know about the event in a reliable
12792 fashion.
12793 (Local_Raise): Moved to System.Exceptions
12794 More convenient to have this as a separate unit
12795
12796 * s-except.adb, s-except.ads: New files.
12797
12798 * a-exextr.adb (Unhandled_Exception): Delete - replaced by
12799 Debug_Unhandled_Exception in System.Exceptions where it belongs
12800 together with a couple of other debug helpers.
12801 (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
12802 the former Unhandled_Exception.
12803
12804 * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
12805 (Warn_No_Exception_Propagation): New procedure
12806 (Warn_If_No_Propagation): Rewritten for new warning generation
12807 (Expand_Exception_Handlers): New warning generation
12808 (Expand_N_Raise_xxx_Error): Rewritten for new warnings
12809 (Add_Exception_Label): Use Special_Exception_Package_Used for test
12810 instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
12811 (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
12812 even if restriction is set (makes life easier in Check_Returns)
12813 (Expand_Local_Exception_Handlers): Follow renamed entity chain when
12814 checking exception identities.
12815 (Expand_Local_Exception_Handlers): Do not optimize when all others case
12816 (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
12817 block for handler (used by Check_Returns)
12818 (Expand_Local_Exception_Handlers): Local_Raise now takes an address
12819 (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
12820 remove all exception handlers when optimizing local raise statements.
12821 (Find_Local_Handler): Use Get_Renamed_Entity
12822 (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
12823 marked analyzed after expanding exception handlers, do not generate
12824 redundant cleanup actions, because they have been constructed already.
12825
128262007-06-06 Thomas Quinot <quinot@adacore.com>
12827
12828 * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
12829 presence of this categorization pragma is mandated by the language.
12830 (Limited_Controlled): Add missing pragma Preelaborable_Initialization
12831 for this type.
12832
128332007-06-06 Vincent Celier <celier@adacore.com>
12834 Robert Dewar <dewar@adacore.com>
12835
9e81dbc7
AS
12836 * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
12837 butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
12838 err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
12839 fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
12840 lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
12841 makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
12842 par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
12843 prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
12844 prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
12845 sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
ec11296f 12846 uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
9e81dbc7 12847 ali.ads, ali.adb:
ec11296f
AC
12848 Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
12849 package Namet. Make File_Name_Type and Unit_Name_Type types derived from
12850 Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
12851 Use variables of types File_Name_Type and Unit_Name_Type in error
12852 messages.
12853 (Get_Name): Add parameter Ignore_Special, and set it reading file name
12854 (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
12855 here.
12856 Define flags Flag217-Flag230 with associated subprograms
12857 (Flag_Word5): New record type.
12858 (Flag_Word5_Ptr): New access type.
12859 (To_Flag_Word5): New unchecked conversion.
12860 (To_Flag_Word5_Ptr): Likewise.
12861 (Flag216): New function.
12862 (Set_Flag216): New procedure.
12863
128642007-06-06 Arnaud Charlet <charlet@adacore.com>
12865
12866 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
12867 instead of 'Size.
12868
12869 * a-stwifi.ads, a-stzfix.ads: Minor reformatting
12870
128712007-06-06 Javier Miranda <miranda@adacore.com>
12872
12873 * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
12874 the package.
12875 (Object_Specific_Data_Array): This is now internal to the package.
12876 (Object_Specific_Data): This is now internal to the package.
12877 (Select_Specific_Data_Element): This is now internal to the package.
12878 (Select_Specific_Data_Array): This is now internal to the package.
12879 (Select_Specific_Data): This is now internal to the package.
12880 (Offset_To_Top_Function_Ptr): This is now public.
12881 (To_Offset_To_Top_Function_Ptr): Removed.
12882 (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
12883 local to subprogram Offset_To_Top.
12884 (Predefined_DT): Removed.
12885 (Typeinfo_Ptr): Removed.
12886 (OSD): This function is now internal to this package.
12887 (SSD): This function is now internal to this package.
12888 (DT): New function that displaces the pointer to the table of primitives
12889 to get access to the enclosing wrapper record.
12890 (IW_Membership): Code cleanup.
12891 (Offset_To_Top): Code cleanup.
12892 (Predefined_DT): Removed.
12893 (Register_Interface_Tag): Removed.
12894 (Set_Interface_Table): Removed.
12895 (Set_Offset_Index): Removed.
12896 (Set_Offset_To_Top): Code cleanup.
12897 (Set_OSD): Removed.
12898 (Set_Signature): Removed.
12899 (Set_SSD): Removed.
12900 (Set_Tagged_Kind): Removed.
12901 (Typeinfo_Ptr): Removed.
12902 (TSD): Removed.
12903 (Displace): Add missing check on null actual.
12904
12905 * exp_disp.ads, exp_disp.adb
12906 (Select_Expansion_Utilities): Removed.
12907 (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
12908 (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
12909 the interface requires a new parameter.
12910 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
12911 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
12912 calls to subprograms Build_T, Build_S, etc. by the corresponding code.
12913 Done to remove package Select_Expansion_Utilities.
12914 (Make_DT): New implementation for statically allocated dispatch tables.
12915 (Make_Secondary_DT): Moved to the scope of Make_DT.
12916 (Register_Primitive): Code cleanup plus incoporate the use of the new
12917 function DT_Address_Attribute.
12918 (Expand_Interface_Thunk): The profile of this subprogram has been
12919 changed to return the Thunk_Id and the corresponding code.
12920 (Fill_DT_Entry): Removed. Its functionality is now provided by
12921 subprogram Register_Primitive.
12922 (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
12923 subprogram Register_Primitive.
12924 (Register_Primitive): New subprogram that incorporates the previous
12925 functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
12926 (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
12927 was only required to call Make_DT_Access_Action, which is now removed.
12928 (Ada_Actions): Removed
12929 (Action_Is_Proc): Removed
12930 (Action_Nb_Arg): Removed
12931 Replace all the calls to Make_DT_Access_Action by direct calls to
12932 Make_Procedure_Call_Statement or Make_Function_Call.
12933 (Set_DTC_Entity_Value): New subprogram.
12934 (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
12935 (Expand_Interface_Thunk): Add missing support for primitives that are
12936 functions with a controlling result (case in which there is no need
12937 to generate the thunk).
12938
12939 * exp_atag.ads, exp_atag.adb
12940 (Build_DT): New subprogram that displaces the pointer to reference the
12941 base of the wrapper record.
12942 (Build_Typeinfo_Offset): Removed.
12943 (RTE_Tag_Node): Removed.
12944 (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
12945 (Build_Get_RC_Offset): Removed.
12946 (Build_Inherit_Predefined_Prims): Removed.
12947 (Build_Inherit_TSD: Removed.
12948 (Build_New_TSD): Removed.
12949 (Build_Set_External_Tag): Removed.
12950 (Build_Set_Predefined_Prim_Op_Address): Add documentation.
12951 (Build_Set_Prim_Op_Address): Add documentation.
12952 (Build_Set_TSD): Removed.
12953
12954 * rtsfind.ads, rtsfind.adb
12955 (Load_Fail): If load fails and we are not in configurable run-time
12956 mode, then raise Unrecoverable_Error.
12957 (Text_IO_Kludge): Generate an error message if a run-time library is
12958 not available in a given run-time (ie. zfp run-time).
12959 (RTE_Record_Component): Add code to check that the component we search
12960 for is not found in two records in the given run-time package.
12961 (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
12962 (RE_DT_Predef_Prims_Offset): New entity
12963 (RE_Static_Offset_To_Top): New entity
12964 (RE_HT_Link): New entity.
12965 (System_Address_Image): Addition of this run-time package.
12966 (RE_Address_Image): New entity.
12967 (RE_Abstract_Interface): Removed.
12968 (RE_Default_Prim_Op_Count): Removed.
12969 (RE_DT_Entry_Size): Removed.
12970 (RE_DT_Min_Prologue_Size): Removed.
12971 (RE_DT_Prologue_Size): Removed.
12972 (RE_Ifaces_Table_Ptr): Removed.
12973 (RE_Interface_Data_Ptr): Removed.
12974 (RE_Type_Specific_Data): Removed.
12975 (RE_Primary_DT): Removed.
12976 (RE_Register_Interface_Tag): Removed.
12977 (RE_Set_Offset_Index): Removed.
12978 (RE_Set_OSD): Removed.
12979 (RE_Set_SSD): Removed.
12980 (RE_Set_Signature): Removed.
12981 (RE_Set_Tagged_Kind): Removed.
12982 (RE_Address_Array): New entity.
12983 (RE_DT): New entity.
12984 (RE_Iface_Tag): New entity.
12985 (RE_Interfaces_Table): New entity.
12986 (RE_No_Dispatch_Table): New entity.
12987 (RE_NDT_Prims_Ptr): New entity.
12988 (RE_NDT_TSD): New entity.
12989 (RE_Num_Prims): New entity.
12990 (RE_Offset_To_Top_Function_Ptr): New entity.
12991 (RE_OSD_Table): New entity.
12992 (RE_OSD_Num_Prims): New entity.
12993 (RE_Predef_Prims): New entity
12994 (RE_Predef_Prims_Table_Ptr): New entity.
12995 (RE_Primary_DT): New entity.
12996 (RE_Signature): New entity.
12997 (RE_SSD): New entity.
12998 (RE_TSD): New entity.
12999 (RE_Type_Specific_Data): New entity.
13000 (RE_Tag_Kind): New entity.
13001
130022007-06-06 Thomas Quinot <quinot@adacore.com>
13003
13004 * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
13005 C imported variable.
13006 (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
13007 on entry.
13008
130092007-06-06 Robert Dewar <dewar@adacore.com>
13010
13011 * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
13012 character
13013
130142007-06-06 Vincent Celier <celier@adacore.com>
13015
13016 * a-tifiio.adb (Put, internal): For negative numbers, check that there
13017 is room for at least one digit and the minus sign.
13018 (Put.Put_Character): Never put a character outside of the range of
13019 string To.
13020
130212007-06-06 Olivier Hainque <hainque@adacore.com>
13022 Eric Botcazou <ebotcazou@adacore.com>
13023
13024 * utils2.c (build_allocator): Provide the extra arguments to
13025 make_aligning_type for super-aligned objects allocated from the default
13026 pool. Leave enough room for a pointer before the aligning field, and
13027 store the system's allocator return value there.
13028 (build_call_alloc_dealloc): When releasing a super-aligned object,
13029 retrieve the system's allocator return value from where build_allocator
13030 has stored it, just ahead of the adjusted address we are passed.
13031 (build_call_raise): Handle properly the generation of line numbers when
13032 the node is marked No_Location.
13033 (compare_elmt_bitpos): Use tree_int_cst_compare. Stabilize the sort
13034 by using DECL_UID on ties.
13035 (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
13036 main variant.
13037 (build_call_raise): Handle converting exception into goto; support new
13038 argument KIND.
13039 (build_component_ref): Add new arg to build_call_raise.
13040
130412007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
13042
13043 * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
13044 "." in the case of nnn.xxx when nnn terminates with an underscore.
13045 Parse the remaining "#" or ":" in the case of nnn#.xxx#
13046
130472007-06-06 Robert Dewar <dewar@adacore.com>
13048
13049 * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
13050
130512007-06-06 Arnaud Charlet <charlet@adacore.com>
13052 Vincent Celier <celier@adacore.com>
13053 Robert Dewar <dewar@adacore.com>
13054
13055 * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
13056 needed.
13057 (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
13058 ((destructor)) for adafinal, even when switch -a is used.
13059 Do not issue pragma Linker_Destructor for adafinal when switch -a is
13060 used.
13061 (Gen_Object_Files_Options): Add formatting of Linker Options, when
13062 Output_Linker_Option_List is set. Suppress this formatting when
13063 Zero_Formatting is set.
13064 Add case for CLI_Target.
13065 (System_Restrictions_Used): New flag, used to avoid generating with of
13066 System_Restrictions and initialization of the data unless there is
13067 some use of System.Restrictions in the partition.
13068 (Check_System_Restrictions_Used): New procedure
13069
9e81dbc7 13070 * s-stalib.adb: Remove with of System.Restrictions. No longer needed
ec11296f
AC
13071 since we only with this unit in the binder file if it is used elsewhere
13072 in the partition.
13073
130742007-06-06 Vincent Celier <celier@adacore.com>
13075
13076 * bindusg.adb: Add line for @<response file>
13077 Add lines for new switches -R and -Z
13078
13079 * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
13080 hierarchy in the list of files of the closure when -R is used
13081 (Gnatbind): Accept arguments starting with '@' to indicate response
13082 files and take the arguments from the response files.
13083 If List_Closure is set, display the referenced files
13084
130852007-06-06 Javier Miranda <miranda@adacore.com>
13086 Robert Dewar <dewar@adacore.com>
13087 Ed Schonberg <schonberg@adacore.com>
13088
13089 * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
13090 which the address-clause is applied to in-mode actuals (allowed by
13091 13.1(22)).
13092 (Apply_Discriminant_Check): Do not generate a check if the type is
13093 constrained by a current instance.
13094 (Activate_Division_Check): New procedure
13095 (Activate_Overflow_Check): New procedure
13096 (Activate_Range_Check): New procedure
13097 Call these new Activate procedures instead of setting flags directly
13098 (Apply_Array_Size_Check): Removed, no longer needed.
13099 Code clean up: remove obsolete code related to GCC 2.
13100 (Get_E_Length): Protect against bomb in case scope is standard
13101 (Selected_Range_Checks): If the node to be checked is a conversion to
13102 an unconstrained array type, and the expression is a slice, use the
13103 bounds of the slice to construct the required constraint checks.
13104 Improve NOT NULL error messages
13105 (Apply_Constraint_Check): If the context is a null-excluding access
13106 type, diagnose properly the literal null.
13107
131082007-06-06 Pascal Obry <obry@adacore.com>
13109
13110 * clean.adb (Clean_Archive): Use untouched casing for the archive name
13111 and the corresponding .deps file.
13112 (Clean_Interface_Copy_Directory): Use untouched casing for the library
13113 src directory. Minor code-clean-up. Use untouched casing for files
13114 read into the library src dir.
13115 (Clean_Library_Directory): Idem.
13116 (Parse_Cmd_Line): Accept new switch -aP
13117
131182007-06-06 Javier Miranda <miranda@adacore.com>
13119 Ed Schonberg <schonberg@adacore.com>
13120 Robert Dewar <dewar@adacore.com>
13121 Eric Botcazou <ebotcazou@adacore.com>
13122 Arnaud Charlet <charlet@adacore.com>
13123
13124 * einfo.ads, einfo.adb (Available_View): New synthesized attribute
13125 applicable to types that have the With_Type flag set. Returns the
13126 non-limited view of the type, if available, otherwise the type itself.
13127 For class-wide types, there is no direct link in the tree, so we have
13128 to retrieve the class-wide type of the non-limited view of the Etype.
13129 New attributes Static_Initialization and Static_Elaboration_Desired.
13130 Remove the pragma Thread_Body, and the associated flag
13131 Is_Thread_Body in entities, and all related code.
13132 (Suppress_Value_Tracking_On_Call): New flag
13133 E_Exception has Esize and Alignment fields
13134 (Universal_Aliasing): New function.
13135 (Set_Universal_Aliasing): New procedure.
13136 (Write_Entity_Flags): Deal with Universal_Aliasing flag.
13137 (Check_Nested_Access): New procedure.
13138 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
13139 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
13140 (Related_Interface): New attribute. Present in dispatch table pointer
13141 components of records. Set to point to the entity of the corresponding
13142 interface type.
13143 (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
13144 (Original_Access_Type): Remove, not needed.
13145 (Root_Type): Handle properly subtypes of class-wide-types.
13146 Update comments.
13147
13148 * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
13149 class-wide types visible through limited-with clauses.
13150 (Try_Primitive_Operation): When examining all primitive operations of a
13151 tagged type, do not consider subprograms labeled as hidden unless they
13152 belong to a private generic type with a tagged parent.
13153 (Try_Object_Operation): Extensive rewriting, to handle properly various
13154 overloading cases, when several ancestors may have class-wide operations
13155 that are possible candidates, and when the overloaded functions return
13156 array types and have defaulted parameters so that the call may be
13157 interpreted as an indexing.
13158 (Analyze_Allocator): Remove Mark_Allocator and its invocation.
13159 (Process_Function_Call): use Next, rather than Next_Actual, to analyze
13160 successive actuals before analyzing the call itself.
13161 (Try_Primitive_Operation): A primitive operation is compatible with the
13162 prefix if the prefix has a synchronized type and the type of the formal
13163 is its corresponding record, as can be the case when the primitive
13164 operation is declared outside of the body of the type.
13165 (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
13166 perform homonym traversal, looking for class-wide operation matches
13167 (formerly done in statements of Try_Class_Wide_Operation). Matches on
13168 access parameters are now restricted to anonymous access types.
13169 (Mark_Allocator): An allocator with a discriminant association parent is
13170 a coextension.
13171 (Try_One_Prefix_Interpretation): If the type of the object is
13172 incomplete, as can be happen when it is a limited view obtained through
13173 a limited_with_clause, the selected component is not part of a prefixed
13174 call.
13175 (Complete_Object_Operation): Diagnose properly an object that is not
13176 aliased when the corresponding controlling formal is an access
13177 parameter.
13178 (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
13179 ambiguous calls in prefixed notation, where two primitives differ only
13180 in that the controlling argument of one is an access parameter.
13181
13182 * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
13183 whether a function that returns an unconstrained type can be inlined.
13184 (Process_Formals): Diagnose properly the illegal use of an incomplete
13185 type in the profile of an access_to_subprogram declaration.
13186 (Check_Synchronized_Overriding): Nothing check for concurrent types, the
13187 operations are attached to the corresponding record.
13188 (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
13189 When processing a primitive of a concurrent type which implements an
13190 interface change the type of all controlling formals to that of the
13191 corresponding record type.
13192 (Check_Synchronized_Overriding): Relax the conditional logic when trying
13193 to determine the tagged type to which a primitive belongs.
13194 (Check_Conventions): Capture condition to ignore a primitive operation
13195 (which is shared between the loop in Check_Conventions and the one in
13196 Check_Convention) in a new local function Skip_Check.
13197 (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
13198 confusion with Check_Conventions' own Prim_Op local variable.
13199 (Create_Extra_Formals): Test for a tagged result type rather than a
13200 controlling result when determining whether to add a BIP_Alloc_Form
13201 formal and a BIP_Final_List formal to the function.
13202 (Check_Conformance); For parameters that are anonymous access types,
13203 subtype conformance requires that the not null and the constant
13204 indicators must match
13205 (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
13206 to retrieve the appropriate type when processing a concurrent type
13207 declared within a generic. Minor comment reformatting. Change invocation
13208 of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
13209 mitive.
13210 (Analyze_Subprogram_Body): If the return type of a function is an
13211 anonymous access to the limited view of a class-wide type, and the
13212 non-limited view of the type is available, update the type of the
13213 function so that code can be generated.
13214 (Process_Formals): In case of access-subtype itype whose designated
13215 type is also an itype (situation that happens now with access to
13216 subprograms) we mark the access-type itype with the Has_Delayed_Freeze
13217 attribute to avoid backend problems.
13218 (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
13219 init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
13220 anonymous types' designated types are same before testing
13221 Subtypes_Statically_Match.
13222 (Create_Extra_Formals): Test for a named access parameter that is a
13223 controlling formal as an additional condition for adding an
13224 accessibility level formal. This can occur in the subp type created for
13225 dispatching calls in Expand_Dispatching_Call, and allows calling
13226 Create_Extra_Formals from that procedure rather than special-casing the
13227 extra formals there.
13228 (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
13229 when the function has a controlling result.
13230 (Check_Returns): Add much more knowledge of the optimization of local
13231 raise statements to gotos, to retain proper warnings in this case.
13232 (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
13233 nodes when looking for last statement.
13234
13235 * sem_type.ads, sem_type.adb (Specific_Type): Add support for
13236 class-wide types visible through limited with clauses.
13237 (Add_One_Interp): If the operands are anonymous access types, the
13238 predefined operator on universal_access is immediately visibles
13239 (Find_Unique_Type): Handle anonymous access to subprogram types just as
13240 other anonymous access types.
13241 (Disambiguate): Take into account CIL convention.
13242 (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
13243
132442007-06-06 Robert Dewar <dewar@adacore.com>
13245
13246 * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
13247 sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
13248 elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
13249 Fix lower bound of tables.
13250 Add rep clauses.
13251
13252 * nlists.adb: Ditto.
13253 (Prev_Node, Next_Node): Change index type to Int so that it properly
13254 covers the range First_Node_Id - 1 up.
13255
132562007-06-06 Javier Miranda <miranda@adacore.com>
13257 Ed Schonberg <schonberg@adacore.com>
13258 Bob Duff <duff@adacore.com>
13259 Hristian Kirtchev <kirtchev@adacore.com>
13260
9e81dbc7 13261 * exp_aggr.ads, exp_aggr.adb:
ec11296f
AC
13262 (Build_Record_Aggr_Code): Add missing initialization of secondary tags
13263 in extension aggregates.
13264 (Flatten): Other conditions being met, an aggregate is static if the
13265 low bound given by component associations is different from the low
13266 bound of the base index type.
13267 (Packed_Array_Aggregate_Handled): If the component type is itself a
13268 packed array or record, the front-end must expand into assignments.
13269 (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
13270 Init_Pr, instead of Ancestor_Is_Expression.
13271 (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
13272 coextension chain root, either generate a list controller or use the
13273 already existing one.
13274 (Static_Array_Aggregate): New procedure to construct a positional
13275 aggregate that can be handled by the backend, when all bounds and
13276 components are compile-time known constants.
13277 (Expand_Record_Aggregate): Force conversion of aggregates of tagged
13278 types covering interface types into assignments.
13279 (Replace_Type): move to Build_Record_Aggr_Code.
13280 (Expand_Record_Aggr_Code): if the target of the aggregate is an
13281 interface type, convert to the definite type of the aggregate itself,
13282 so that needed components are visible.
13283 (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
13284 components and the context is an extended return statement do not
13285 create a transient block for it, to prevent premature finalization
13286 before the return is executed.
13287 (Gen_Assign): Do not generate a call to deep adjust routine if the
13288 component type is itself an array of controlled (sub)-components
13289 initialized with an inner aggregate.
13290 (Component_Check): New name for Static_Check. This name is now more
13291 appropriate, and documentation is added which was missing.
13292 (Component_Check): Add test for bit aligned component value
13293 (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
13294 Tagged_Comps, name is more appropriate given added function below.
13295 (Component_Not_OK_For_Backend): Check for bit aligned component ref.
13296
132972007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
13298 Javier Miranda <miranda@adacore.com>
13299 Robert Dewar <dewar@adacore.com>
13300
13301 * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
13302 Terminated: Add unchecked type conversion from System.Address to
13303 System.Tasking.Task_Id when calling the predefined primitive
13304 _disp_get_task_id.
13305 Disable new Ada 05 accessibility check for JVM.NET targets, which
13306 cannot be implemented in a practical way.
13307 (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
13308 the sources always references the tag of the actual object. Therefore,
13309 if 'Tag is applied in the sources to class-wide interface objects we
13310 generate code that displaces "this" to reference the base of the object.
13311 (Expand_N_Attribute_Reference, case Size): Return specified size if
13312 known to front end.
13313 (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
13314 has code that displaces the pointer of the object to manage interface
13315 types. However this code must not be executed when the prefix is a
13316 subprogram. This bug caused the wrong expansion of the internally
13317 generated assignment that fills the dispatch table when the primitive
13318 is a function returning a class-wide interface type.
13319 (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
13320 Set_Attribute_Name for Name_Unaligned_Valid.
13321
133222007-06-06 Ed Schonberg <schonberg@adacore.com>
13323 Gary Dismukes <dismukes@adacore.com>
13324
13325 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
13326 If the initialization is the equivalent aggregate of the initialization
13327 procedure of the type, do not remove it.
13328 (Expand_N_Attribute_Definition_Clause): Exclude access variables
13329 initialized to null from having their expression reset to empty and
13330 note this exception in the comment.
13331
133322007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
13333 Robert Dewar <dewar@adacore.com>
13334 Ed Schonberg <schonberg@adacore.com>
13335 Gary Dismukes <dismukes@adacore.com>
13336
13337 * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
13338 Add "with" and "use" clauses for Sem_Attr.
13339 (Expand_Current_Value): Do not replace occurences of attribute
13340 references where the prefix must be a simple name.
13341
13342 * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
13343 Namet. Add new arrays Attribute_Name_Modifies_Prefix and
13344 Attribute_Requires_Simple_Name_Prefix.
13345 (Name_Modifies_Prefix): Body of new function.
13346 (Requires_Simple_Name_Prefix): Body of new function.
13347 (Resolve_Attribute, case Access): Improve error message for case of
13348 mismatched conventions.
13349 (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
13350 incomplete type.
13351 (Analyze_Attribute, case 'Access): If the type of the prefix is a
13352 constrained subtype for a nominal unconstrained type, use its base type
13353 to check for conformance with the context.
13354 (Resolve_Attribute): Remove test of the access type being associated
13355 with a return statement from condition for performing accessibility
13356 checks on access attributes, since this case is now captured by
13357 Is_Local_Anonymous_Access.
13358 (Analyze_Access_Attribute): Set Address_Taken on entity
13359 (Analyze_Attribute, case Address): Set Address_Taken on entity
13360 (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
13361 validating an access attribute whose prefix is a current instance.
13362 (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
13363 applied to dispatching operations, if freezing is required then we set
13364 the attribute Has_Delayed_Freeze in the prefix's entity.
13365 (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
13366 current scope if access of local subprogram taken
13367 (Analyze_Access_Attribute): Check legality of self-reference even if the
13368 expression comes from source, as when a single component association in
13369 an aggregate has a box association.
13370 (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
13371 the prefix if it is a protected operation and the attribute is
13372 Unrestricted_Access.
13373 (Resolve_Attribute, case 'Access): Set the Etype of the attribute
13374 reference to the base type of the context, to force a constraint check
13375 when the context is an access subtype with an explicit constraint.
13376 (Analyze_Attribute, case 'Class): If the prefix is an interface and the
13377 node is rewritten as an interface conversion. leave unanalyzed after
13378 resolution, to ensure that type checking against the context will take
13379 place.
13380
133812007-06-06 Ed Schonberg <schonberg@adacore.com>
13382 Javier Miranda <miranda@adacore.com>
13383 Robert Dewar <dewar@adacore.com>
13384
13385 * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
13386 wrapper when the full view of the controlling type of an inherited
13387 function that dispatches on result implements interfaces.
13388 (Expand_N_Object_Declaration): In cases where the type of the
13389 declaration is anonymous access, create finalization list for it.
13390 (Expand_N_Object_Declaration): Generate a persistent_bss directive only
13391 if the object has no explicit initialization, to match description of
13392 functionality of pragam Persistent_BSS.
13393 (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
13394 new function to build static aggregates, to replace initialization call
13395 when static initialization is desired.
13396 (Freeze_Type): Generate a list controller for an access type whenever
13397 its designated type has controlled anonymous access discriminants.
13398 (Build_Equivalent_Aggregate): New procedure to compute a static
13399 aggregate to be used as default initialization for composite types,
13400 instead of a generating a call to the initialization procedure for the
13401 type.
13402 (Build_Initialization_Call): When available, replace a call to the
13403 initialization procedure with a copy of the equivalent static aggregate
13404 for the type.
13405 (Expand_N_Object_Declaration): Use New_Occurrence_Of in generated
13406 declarations for objects of a class-wide interface type, rather than
13407 just identifiers, to prevent visibility problems.
13408 (Expand_N_Object_Declaration): When expanding the declaration for an
13409 object of a class-wide interface type, preserve the homonym chain of
13410 the original entity before exchanging it with that of the generated
13411 renaming declaration.
13412 (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
13413 active, because there is no way to handle the exception.
13414 (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
13415 to do a minimum decoration of the Access_Disp_Table list.
13416 (Expand_Record_Controller): Avoid the addition of the controller between
13417 the component containing the tag of a secondary dispatch table and its
13418 adjacent component that stores the offset to the base of the object.
13419 This latter component is only generated when the parent type has
13420 discriminants ---documented in Add_Interface_Tag_Components).
13421 (Apply_Array_Size_Check): Removed, no longer needed.
13422 (Expand_N_Full_Type_Declaration): If the type has anonymous access
13423 components, create a Master_Entity for it only if it contains tasks.
13424 (Build_Init_Procedure): Suppress the tag assignment compiling under
13425 no run-time mode.
13426 (Freeze_Record_Type): Remove code associated with creation of dispatch
13427 table.
13428 (Init_Secondary_Tags): Update type of actuals when generating calls to
13429 Ada.Tags.Set_Offset_To_Top
13430 (Stream_Operation_OK): Disable use of streams compiling under no
13431 run-time mode
13432 (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
13433 if Has_Init_Expression set.
13434 (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
13435 Register_Primitive, which provides the same functionality.
13436 (Requires_Init_Proc): Return false in case of interface types.
13437 (Add_Secondary_Tables): Use the new attribute Related_Interface to
13438 cleanup the code.
13439 (Predefined_Primitive_Freeze): Do not assume that an internal entity
13440 is always associated with a predefined primitive because the internal
13441 entities associated with interface types are not predefined primitives.
13442 Therefore, the call to Is_Internal is replaced by a call to the
13443 function Is_Predefined_Dispatching_Operation.
13444 (Make_Eq_If): When generating the list of comparisons for the
13445 components of a given variant, omit the controller component that is
13446 present if the variant has controlled components.
13447
134482007-06-06 Javier Miranda <miranda@adacore.com>
13449 Hristian Kirtchev <kirtchev@adacore.com>
13450 Bob Duff <duff@adacore.com>
13451
13452 * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
13453 handle the creation of finalization lists and calls for nested
13454 coextensions when the root of the chains is part of a return statement.
13455 (Inside_A_Return_Statement): New function inside Complete_Coextension_
13456 Finalization.
13457 (Expand_Record_Equality): Skip components that are interface types.
13458 (Displace_Allocator_Pointer): Add missing support for interface subtypes
13459 (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
13460 with Rewrite_Coextension. Change the condition for detecting coextension
13461 root nodes.
13462 (Is_Local_Access_Discriminant): Removed.
13463 (Rewrite_Coextension): New routine which rewrites a static coextension
13464 as a temporary and uses its unrestricted access in the construction of
13465 the outer object.
13466 (Complete_Coextension_Finalization): New routine. Generate finalization
13467 attachment calls to all delayed coextensions.
13468 (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
13469 the allocator is not a coextension itself and has delayed coextensions.
13470 If the current allocator is controlled, but also a coextension, delay
13471 the generation of the finalization attachment call.
13472 Rename local variable "Node" to "Nod" in order to avoid confusion with
13473 "Elists.Node".
13474 (Expand_Allocator_Expression): Call Adjust for initialized allocators of
13475 limited types that are not inherently limited. Such an allocator is
13476 illegal, but is generated by the expander for a return statement, to
13477 copy the result onto the secondary stack. This is the only case where a
13478 limited object can be copied. Generate code to displace the pointer
13479 to the object if the qualified expression is a class-wide interface
13480 object. Such displacement was missing and hence the copy of the object
13481 was wrong.
13482 (Apply_Accessibility_Check): Handle allocated objects initialized in
13483 place.
13484 (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
13485 and Expand_Allocator_Expression. Allocating class-wide interface objects
13486 this routine displaces the pointer to the allocated object to reference
13487 the component referencing the corresponding secondary dispatch table.
13488 Expand_Allocator_Expression): Add missing support to allocate class-wide
13489 interface objects initialized with a qualified expression.
13490 (Get_Allocator_Final_List): Test for an anonymous access type that is a
13491 function result type, and use the finalization list associated with the
13492 function scope in that case (such an anonymous type should not be
13493 treated like an access parameter's type).
13494
134952007-06-06 Ed Schonberg <schonberg@adacore.com>
13496 Gary Dismukes <dismukes@adacore.com>
13497 Javier Miranda <miranda@adacore.com>
13498
13499 * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
13500 controlled type, use Make_Handler_For_Ctrl_Operation to construct the
13501 required exception handler.
13502 (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
13503 properly the case of a function whose return type is a limited
13504 class-wide interface type. Modify the code of the accessibility
13505 check to handle class-wide interface objects. In this case we need to
13506 displace "this" to reference the primary dispatch table to get access
13507 to the TSD of the object (to evaluate its accessibility level).
13508 (Expand_N_Extended_Return_Statement): Test for a tagged result type
13509 rather than a controlling result as one of the conditions for
13510 generating tests of the implicit BIP_Alloc_Form formal. The
13511 initialization assignment is also handled according to whether the
13512 result is tagged instead of controlling.
13513 In the case where the init assignment is inserted in the "then" part of
13514 the allocation conditional, rewrite the target to be a dereference of
13515 the implicit BIP_Object_Access formal.
13516 If the returned value is unconstrained and created on the secondary
13517 stack, mark the enclosing block and function so that the secondary
13518 stack is not reclaimed on return.
13519 Treat returns from functions with controlling results similarly to
13520 returns from functions with unconstrained result subtypes.
13521 If the object returned is unconstrained, and an allocator must be
13522 created for it, analyze the allocator once the block for the extended
13523 return is installed, to ensure that finalizable components
13524 of the expression use the proper finalization list. Guard the call to
13525 Move_Final_List with a check that there is something to finalize.
13526 (Make_Tag_Ctrl_Assignment): Use "old" handling
13527 of controlled type assignment for virtual machines, since new code uses
13528 unsupported features (such as direct access to bytes in memory).
13529
135302007-06-06 Gary Dismukes <dismukes@adacore.com>
13531 Ed Schonberg <schonberg@adacore.com>
13532
13533 * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
13534 accessibility actual, check for the case of an aliased object that has
13535 been rewritten as an Access attribute, and assign Prev to Prev_Orig so
13536 we fall into processing for the attribute rather than the name of the
13537 object.
13538 (Expand_Inline_Call): If an actual is a literal, and the corresponding
13539 formal has its address taken in the body, create a temporary to capture
13540 value. If the return type is a limited interface, do not treat the
13541 return value as Controlled.
13542 (Is_In_Place_Function): If the return type is a limited interface,
13543 treat as returning in place. The actual returned object may not always
13544 be limited, but the caller has to assume that it is returned in place.
13545 (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
13546 context of an allocator, use the correct finalization chain (that is,
13547 the chain belonging to the access type, rather than the chain belonging
13548 to the current scope).
13549 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
13550 result type rather than a controlling result as a precondition for
13551 adding an allocation form actual to a build-in-place call.
13552 (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
13553 (Freeze_Subprogram): Code cleanup. Remove all the code that register the
13554 primitive in the dispatch tables. This work is now done by Make_DT when
13555 the type is frozen.
13556 (Register_Predefined_DT_Entry): Removed.
13557 (Add_Return): If end label is not present, use sloc of last statement
13558 for generated return statement in procedure, for better gdb behavior
13559 on expanded code.
13560 (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
13561 object address nodes to ensure proper processing by routines like
13562 Insert_After*.
13563 (Expand_Call): Fix generation of validity check for parameter
13564 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
13565 the allocation form parameter if the result subtype is constrained,
13566 except when the function has a controlling result.
13567 (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
13568 rather than Is_Controlled and Has_Controlled_Component, since we want to
13569 include class-wide result types in this treatment. Also test for a
13570 controlling result, since that also requires passing a finalization
13571 list.
13572 (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
13573 even when the result subtype is constrained, to handle calls involving
13574 controlling results.
13575 (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
13576 is now called even when the result subtype is constrained, to handle
13577 calls involving controlling results.
13578 (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
13579 on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
13580 now performs the test).
13581 (Make_Build_In_Place_Call_In_Object_Declaration):
13582 Add_Alloc_Form_Actual_* is now called even when the result subtype is
13583 constrained, to handle calls involving controlling results.
13584 (Add_Return): Accomodate rewritten pattern from local raise to goto
13585 transformation, so that we still recognize an transfer statement
13586 and do the right thing here in that case.
13587 (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
13588 and end of subprogram code.
13589 (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
13590 support for primitives that are functions (without formals) with a
13591 controlling result.
13592 (Inherited_From_Formal): If the actual subtype has not generic parent
13593 type, it is not an actual for a formal derived type, and there is no
13594 operation to inherit from the formal.
13595
135962007-06-06 Ed Schonberg <schonberg@adacore.com>
13597 Thomas Quinot <quinot@adacore.com>
13598
13599 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
13600 inserted cleanup code appropriately for GDB use.
13601 (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
13602 exception handler for Deep_Adjust or Deep_Finalize.
13603 (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
13604 Raise_From_Controlled_Operation is available, use a call to that
13605 subprogram instead of a plain "raise Program_Error" node to raise
13606 Program_Error if an exception is propagated from an Adjust or Finalize
13607 operation.
13608 (Insert_Actions_In_Scope_Around): If the statement to be wrapped
13609 appears in the optional statement list of a triggering alternative, the
13610 scope actions can be inserted directly there, and not in the list that
13611 includes the asynchronous select itself.
13612
136132007-06-06 Ed Schonberg <schonberg@adacore.com>
13614 Robert Dewar <dewar@adacore.com>
13615 Hristian Kirtchev <kirtchev@adacore.com>
13616
13617 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
13618 generated exception handler appropriately when debugging generated code.
13619 Deal properly with No_Exception_Propagation restriction mode.
13620 (Expand_N_Abort_Statement): Add an unchecked type conversion from
13621 System.Address to System.Tasking.Task_Id when processing the result of
13622 the predefined primitive _disp_get_task_id.
13623 (Expand_N_Asynchronous_Select): Clarify comment.
13624 (Expand_N_Protected_Type_Declaration): Minor code cleanup.
13625 (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
13626 (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
13627 (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
13628 privals and for generated call to Complete_Entry_Body, for better gdb
13629 behavior.
13630 (Copy_Result_Type): Utility to construct a parameter and result profile
13631 for protected functions whose return type is an anonymous access to
13632 subprogram.
13633 (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
13634 call the above.
13635 (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
13636 point when the local-raise-to-goto transformation has taken place.
13637
136382007-06-06 Javier Miranda <miranda@adacore.com>
13639 Nicolas Setton <setton@adacore.com>
13640
13641 * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
13642 functionality when the backend is generating code.
13643 Otherwise any serious error
13644 reported by the backend calling the frontend routine Error_Msg
13645 changes the Compilation_Mode to Check_Semantics, disables the
13646 functionality of this routine and causes the generation of
13647 spureous additional errors.
13648
13649 * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
13650 debugging information now generated by the compiler for fat-pointer
13651 types.
13652 Document the contents of DW_AT_producer in the GNAT Vendor extensions to
13653 DWARF2/3.
13654 Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
13655
136562007-06-06 Thomas Quinot <quinot@adacore.com>
13657
13658 * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
13659 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
13660 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
13661 For a remote call to a function with a classwide return type, apply an
13662 E.4(18) check to the returned value.
13663 (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
13664 stream attributes of the designated type of an RACW, as they are not
13665 dispatching primitive operations.
13666
136672007-06-06 Geert Bosch <bosch@adacore.com>
13668
13669 * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
13670 negative literal
13671 (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
13672 positive
13673 (Do_Divide_Fixed_Universal): Handle case of negative Frac.
13674 (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
13675 positive
13676 (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
13677
136782007-06-06 Javier Miranda <miranda@adacore.com>
13679
13680 * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
13681 attribute compiling package Ada.Tags under No_Run_Time_Mode.
13682
136832007-06-06 Javier Miranda <miranda@adacore.com>
13684
13685 * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
13686 deallocation of class-wide interface objects.
13687 (Expand_Dispatching_Constructor_Call): Take into account that if the
13688 result of the dispatching constructor is an interface type, the
13689 function returns a class-wide interface type; otherwise the returned
13690 object would be actual. The frontend previously accepted returning
13691 interface types because Expand_Interface_Actuals silently performed
13692 the management of the returned type "as if" it were a class-wide
13693 interface type.
13694 (Expand_Dispatching_Constructor_Call): Replace call to
13695 Make_DT_Access_Action by direct call to Make_Function_Call.
13696
136972007-06-06 Robert Dewar <dewar@adacore.com>
13698 Ed Schonberg <schonberg@adacore.com>
13699
13700 * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
13701 compute masking constant, since we now set Esize properly to the
13702 underlying size.
13703 (Create_Packed_Array_Type): Set proper Esize value adjusted as required
13704 to match the alignment.
13705 (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
13706 packed arrays of 8 bits or less.
13707
13708 * freeze.adb (Freeze_Entity): When freezing the formals of a
13709 subprogram, freeze the designated type of a parameter of an access type
13710 only if it is an access parameter.
13711 Increase size of C convention enumeration object
13712 (Freeze_Entity, array type case): Make sure Esize value is properly
13713 adjusted for the alignment if it is known.
13714 (Freeze_Entity, array type case): When checking bit packed arrays for
13715 the size being incorrect, check RM_Size, not Esize.
13716 (Freeze_Record_Type): Check for bad discriminated record convention
13717 (In_Exp_Body): Return true if the body is generated for a subprogram
13718 renaming, either an attribute renaming or a renaming as body.
13719 (Check_Itype): If the designated type of an anonymous access component
13720 is a non-protected subprogram type, indicate that it is frozen, to
13721 prevent out-of-scope freeze node at some subsequent call.
13722 (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
13723 only if the subprogram is neither imported nor exported, as well as the
13724 NCA descriptor class if the subprogram is exported.
13725
137262007-06-06 Ed Schonberg <schonberg@adacore.com>
13727 Arnaud Charlet <charlet@adacore.com>
13728 Robert Dewar <dewar@adacore.com>
13729 Gary Dismukes <dismukes@adacore.com>
13730
13731 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
13732 default initialization on an imported object, when there is no
13733 initialization call generated for it.
13734 (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
13735 restriction
13736
13737 * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
13738 Static_Elaboration_Desired.
13739 Remove pragma Thread_Body.
13740 Implement a new pragma No_Body
13741 Removes the Explicit_Overriding pragma
13742 Remove Optional_Overriding pragma
13743 (Prag): Deal with Universal_Aliasing.
13744 (Name_CIL, Name_CIL_Constructor, Convention_CIL,
13745 Pragma_CIL_Constructor): New names.
13746
13747 * sem_cat.adb (Validate_Object_Declaration): An initialization that
13748 uses the equivalent aggregate of a type must be treated as an implicit
13749 initialization.
13750 (Get_Categorization): Check a unit for pragma Preelaborate only if it
13751 has none of the other categories.
13752 (Process_Import_Or_Interface_Pragma): Report an error for an attempt
13753 to apply Import to an object renaming declaration.
13754
13755 * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
13756 from a C++ class should be declared as limited and that it will be
13757 considererd limited.
13758 (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
13759 should be declared as limited and that it will be considererd limited.
13760 (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
13761 (Analyze_Pragma, case Export): Diagnose export of enumeration literal
13762 (Analyze_Pragma): Deal with Universal_Aliasing.
13763 (Sig_Flags): Likewise.
13764 (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
13765 (Overflow_Checks_Unsuppressed): New flag.
13766 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
13767 (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
13768 case of JVM or .NET targets, and compiling user code.
13769 Add debugging convenience routine rv
13770
137712007-06-06 Robert Dewar <dewar@adacore.com>
13772
13773 * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
13774 are interface type.
13775 (Build_Elementary_Input_Call): For floating-point use right type in the
13776 absence of strange size or stream size clauses.
13777 (Build_Elementary_Write_Call): Same fix
13778 (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
13779 set to value that does not match base type size.
13780
137812007-06-06 Ed Schonberg <schonberg@adacore.com>
13782
13783 * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
13784 object of a limited type can be initialized with a call to a function
13785 that returns in place. If the limited type has unknown discriminants,
13786 and the underlying type is a constrained composite type, build an actual
13787 subtype from the function call, as is done for private types.
13788 (Side_Effect_Free): An expression that is the renaming of an object or
13789 whose prefix is the renaming of a object, is not side-effect free
13790 because it may be assigned through the renaming and its value must be
13791 captured in a temporary.
13792 (Has_Controlled_Coextensions): New routine.
13793 (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
13794 as is done for other limited types.
13795 (Non_Limited_Designated_Type): new predicate.
13796 (Make_CW_Equivalent_Type): Modified to handle class-wide interface
13797 objects.
13798 Remove all handling of with_type clauses.
13799
9e81dbc7 13800 * par-ch10.adb: Remove all handling of with_type clauses.
ec11296f
AC
13801
13802 * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
13803 checksum if the main source could not be parsed.
13804 (Loat_Unit): When processing a child unit, determine properly whether
13805 the parent unit is a renaming when the parent is itself a child unit.
13806 Remove handling of with_type clauses.
13807
13808 * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
13809 (Set_Is_Static_Coextension): New procedure.
13810 (Has_Local_Raise): New function
13811 (Set_Has_Local_Raise): New procedure
13812 (Renaming_Exception): New field
13813 (Has_Init_Expression): New flag
13814 (Delay_Finalize_Attach): Remove because flag is obsolete.
13815 (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
13816 Remove all handling of with_type clauses.
13817 (Exception_Junk): Can now be set in N_Block_Statement
13818
138192007-06-06 Vincent Celier <celier@adacore.com>
13820 Robert Dewar <dewar@adacore.com>
13821
13822 * frontend.adb (Frontend): Return immediately if the main source could
13823 not be parsed, because of preprocessing errors.
13824
13825 * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
13826 (Gnat1drv): Exit with errors if the main source could not be parsed,
13827 because of preprocessing errors.
13828 (Check_Rep_Info): New procedure
13829
138302007-06-06 Robert Dewar <dewar@adacore.com>
13831
13832 * g-hesorg.ads, g-heasor.ads,
13833 g-busorg.ads, g-bubsor.ads: Update documentation
13834 GNAT.Heap/Bubble_Sort_G is now pure
13835
138362007-06-06 Robert Dewar <dewar@adacore.com>
13837
13838 * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
13839
138402007-06-06 Robert Dewar <dewar@adacore.com>
13841 Ed Schonberg <schonberg@adacore.com>
13842
9e81dbc7 13843 * g-comlin.ads, g-comlin.adb:
ec11296f
AC
13844 Add new warning for renaming of function return objects
13845
13846 * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
13847 (Tree_Read): Use size of object instead of type'object_size, since the
13848 latter is incorrect for packed array types.
13849 (Tree_Write): Same fix
13850
13851 * opt.ads: Add new warning for renaming of function return objects
13852 (Generating_Code): New boolean variable used to indicate that the
13853 frontend as finished its work and has called the backend to process
13854 the tree and generate the object file.
13855 (GCC_Version): Is now private
13856 (Static_Dispatch_Tables): New constant declaration.
13857 (Overflow_Checks_Unsuppressed): New flag.
13858 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
13859 (List_Closure): New flag for gnatbind (-R)
13860 Zero_Formatting: New flag for gnatbind (-Z)
13861 (Special_Exception_Package_Used): New flag.
13862 (Warn_On_Unrepped_Components): New flag.
13863
13864 * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
13865 unit is a compilation unit, rather than relying on its scope, so that
13866 Standard can be renamed.
13867 (Analyze_Object_Renaming): Add new warning for renaming of function
13868 return objects.
13869 Also reject attempt to rename function return object in Ada 83 mode.
13870 (Attribute_Renaming): In case of tagged types, add the body of the
13871 generated function to the freezing actions of the type.
13872 (Find_Type): A protected type is visible right after the reserved word
13873 "is" is encountered in its type declaration. Set the entity and type
13874 rather than emitting an error message.
13875 (New_Scope): Properly propagate Discard_Names to inner scopes
13876 (Check_Nested_Access): New procedure.
13877 (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
13878 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
13879
13880 * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
13881 Add new warning for renaming of function return objects
13882 (Check_References): Suppress warnings for objects whose type or
13883 base type has Warnings suppressed.
13884 (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
13885 (Set_Warning_Switch): Include new -gnatwc in -gnatwa
13886
138872007-06-06 Vincent Celier <celier@adacore.com>
13888 Emmanuel Briot <briot@adacore.com>
13889 Olivier Hainque <hainque@adacore.com>
13890
13891 * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
13892 absolute value of Header.Block_Size when displaying the freed physical
13893 memory in traces.
13894 (Allocate): Compute Storage_Address using Integer_Address, not
13895 Storage_Offset, because the range of Storage_Offset may not be large
13896 enough.
13897 (Configure): New parameter Low_Level_Traces
13898 (Allocate, Deallocation, Free_Physically): Added low-level traces
13899 (Configure): new parameter Errors_To_Stdout.
13900 (Output_File): new subprogram
13901 (Deallocate, Dereference): Send error messages to the proper stream
13902 (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
13903 documented. Previous code would send it to the current output file
13904 defined in GNAT.IO, which might not be stdout
13905 (Is_Valid): Adjust comment to mention that a positive reply means that
13906 Header_Of may be used to retrieve the allocation header associated with
13907 the subprogram Storage address argument. Return False early if this
13908 address argument is misaligned.
13909
139102007-06-06 Vincent Celier <celier@adacore.com>
13911
13912 * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
13913 switch -P
13914 (ASIS_Main): New global variable
13915 (Get_Closure): New procedure
13916 (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
13917 check, metric or pretty. Call Get_Closure in this case.
13918 (Check_Files): For GNAT LIST, check all sources of all projects when
13919 All_Projects is True.
13920 (GNATCmd): Accept -U for GNAT LIST
13921
139222007-06-06 Vincent Celier <celier@adacore.com>
13923
13924 * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
13925 has been specified
13926 Correct error message when invocation of the linker fails
13927 Add explicit size clause for the C imported variables
13928 Object_List_File_Supported and Using_GNU_Linker to emphasize that
13929 we expect char size.
13930 Read target parameters earlier, since this is needed to set
13931 Target_VM properly. Also do not use -static/shared-libgcc for non GCC
13932 targets.
13933
139342007-06-06 Vincent Celier <celier@adacore.com>
13935
9e81dbc7 13936 * gnatls.adb:
ec11296f
AC
13937 Add 3 spaces before the default project directory when displaying
13938 the project search path.
13939 Add new command line switch '-l' to display license information.
13940
139412007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
13942
13943 * gmem.c: Add support for timestamps on memory operations.
13944
13945 * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
13946 operations (not used currently, just foundation for future
13947 enhancements). Add possibility to perform full dump of gmem.out file.
13948 (Print_Back_Traces): Declare accesses to root arrays constants since
13949 they aren't modified.
13950 (Print_Back_Traces): allocate root arrays on the heap rather than stack.
13951
139522007-06-06 Vincent Celier <celier@adacore.com>
13953
13954 * gnatsym.adb: Update Copyright notice
13955 (Parse_Cmd_Line): Accept new switch -D
13956 (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
13957 file.
13958
13959 * prj.ads (Policy): New policy Direct
13960 (Yes_No_Unknown): New enumeration type
13961 (Project_Data): New component Libgnarl_Needed
13962
13963 * prj-nmsc.adb (Check_For_Source): When recording a source file make
13964 use the untouched pathname casing.
13965 (Get_Directories): Ensure that the Display_Exec_Directory is using the
13966 proper casing on non case-sensitive platforms like Windows.
13967 (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
13968 on all platforms, as it is not possible to know which one is allowed
13969 before processing the project files.
13970 (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
13971 specified when symbol policy is Direct. Check that when there is a
13972 symbol file defined (either by default or with attribute
13973 Library_Symbol_File) it is not the same as the reference symbol file.
13974 (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
13975 (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
13976 extending projects.
13977 (Record_Ada_Source): Record a source that has been locally removed in an
13978 imported project.
13979
13980 * symbols.ads (Policy): New policy Direct
13981
13982 * symbols-vms.adb (Initialize): Take new policy Direct in case
13983 statement
13984
139852007-06-06 Vincent Celier <celier@adacore.com>
13986
13987 * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
13988 Correct obvious bug (return Dir; instead of return Directory;).
13989 (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
13990
139912007-06-06 Thomas Quinot <quinot@adacore.com>
13992
13993 * g-pehage.adb (Produce): Open output files in Binary mode, so that
13994 they have UNIX line endings (LF only) even on Windows, and thus pass
13995 all GNAT style checks.
13996
139972007-06-06 Emmanuel Briot <briot@adacore.com>
13998
13999 * g-regpat.adb (Quote): Fix improper quoting of '.'
14000
140012007-06-06 Thomas Quinot <quinot@adacore.com>
14002
14003 * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
14004 default, set False on a per-runtime basis.
14005 (Need_Netdb_Buffer): New constant.
14006
14007 * g-socket.ads, g-socket.adb: Import new package
14008 GNAT.Sockets.Thin.Task_Safe_NetDB.
14009 (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
14010 binding to obtain proper message.
14011 (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
14012 Replace various occurrences of Arry (Arry'First)'Address with the
14013 equivalent Arry'Address (GNAT always follows implementation advice from
14014 13.3(14)).
14015 (Get_Host_By_Address, Get_Host_By_Name,
14016 Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
14017 instead, rely on platform-specific task safe netdb operations provided
14018 by g-socthi.
14019
14020 * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
14021 parameter Process_Blocking_IO.
14022 (Host_Error_Messages): Add stub body.
14023 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
14024 (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
14025 Safe_Getservbyport): Move functions into new child package
14026 Task_Safe_NetDB.
14027 (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
14028 Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
14029 (In_Addr): Add alignment clause.
14030
140312007-06-06 Robert Dewar <dewar@adacore.com>
14032
14033 * g-trasym.ads, g-traceb.ads: Update list of supported targets
14034 Add note about symbolic traceback
14035
140362007-06-06 Pascal Obry <obry@adacore.com>
14037
14038 * hostparm.ads (Normalized_CWD): Use the host directory separator
14039 instead of the hardcoded forward slash which is not the proper
14040 character on Windows for example.
14041 (Java_VM): Removed.
14042
140432007-06-06 Vincent Celier <celier@adacore.com>
14044 Arnaud Charlet <charlet@adacore.com>
14045
14046 * a-clrefi.adb, a-clrefi.ads: New files
14047
14048 * impunit.adb: Add s-os_lib in the list of user visible units.
14049 (Non_Imp_File_Names_95): Add a-clrefi to this list
14050 Remove obsolete run-time entries.
14051 (Non_Imp_File_Names_05): Add Ada 2005 entries for:
14052 "a-exetim" -- Ada.Execution_Time
14053 "a-extiti" -- Ada.Execution_Time.Timers
14054
14055 * mlib-prj.ads, mlib-prj.adb
14056 (Build_Library): Use untouched object dir and library dir. At the
14057 same time makes sure that the checks are done using the canonical
14058 form. Removes hard-coded directory separator and use the proper host
14059 one instead.
14060 (Process_Project): Do not look in object directory to check if libgnarl
14061 is needed for a library, if there is no object directory.
14062 (Build_Library): Scan the ALI files to decide if libgnarl is needed for
14063 linking.
14064 (Build_Library): When invoking gnatbind, use a response file if the
14065 total size of the arguments is too large.
14066
14067 * Makefile.rtl: (g-sttsne): New object file.
14068 Add entry for a-clrefi, s-utf_32, System.Exceptions
14069
14070 * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
14071 (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
14072 (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
14073 Change g-string to s-string, g-os_lib to s-os_lib
14074 Change all g-utf_32 references to s-utf_32
14075
140762007-06-06 Tristan Gingold <gingold@adacore.com>
14077 Olivier Hainque <hainque@adacore.com>
14078
14079 * init.c: Do not adjust IP of an imported VMS exception of ia64.
14080 LIB$STOP is called to raise an exception and the IP of the exception
14081 is the instruction right after the call.
14082 (__gnat_adjust_context_for_raise, AIX): Implement.
14083 (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
14084 adjust_context_for_raise before Raise_From_Signal_Hanler.
14085 (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
14086 siginfo is passed to the handler, necessary to let the zcx propagation
14087 engine unwind past it.
14088
140892007-06-06 Olivier Hainque <hainque@adacore.com>
14090
14091 * initialize.c (__gnat_initialize for vxworks): Update documentation
14092 on the ZCX support, using different sets of crtstuff objects than with
14093 GCC 3.4.
14094
140952007-06-06 Robert Dewar <dewar@adacore.com>
14096
14097 * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
14098 spec from body
14099 (Layout_Type): Fix recomputation of size from alignment.
14100
141012007-06-06 Ed Schonberg <schonberg@adacore.com>
14102 Javier Miranda <miranda@adacore.com>
14103
14104 * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
14105 association in an instance.
14106 (Copy_Generic_Node): If the node is a string literal, no need to copy
14107 its descendants.
14108 (Is_Generic_Formal): For a formal subprogram, the declaration is the
14109 grandparent of the entity.
14110 (Analyze_Formal_Interface_Type): Transform into a full type declaration,
14111 to simplify handling of formal interfaces that derive from other formal
14112 interfaces.
14113 (Instantiate_Subprogram_Body): The defining unit name of the body of
14114 the instance should be a defining identifier.
14115 (Install_Formal_Packages): make global to the package, for use in
14116 instantiations of child units.
14117 (Analyze_Package_Instantiation): Do not attempt to set information on an
14118 enclosing master of an entry when expansion is disabled.
14119 (Instantiate_Type): If the actual is a tagged synchronized type and the
14120 generic ancestor is an interface, create a generic actual for the
14121 corresponding record.
14122 (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
14123 declaration, to ensure that the interface list is processed correctly.
14124 (Inline_Instance_Body): If enclosing scope is an instance body, remove
14125 its entities from visibiility as well.
14126 (Pre_Analyze_Actuals): if the actual is an allocator with constraints
14127 given with a named association, analyze the expression only, not the
14128 discriminant association itself.
14129 (Reset_Entity): If the analysis of a selected component is transformed
14130 into an expanded name in the prefix of a call with parameters, do not
14131 transform the original node into an expanded name, to prevent visibility
14132 errors in the case of nested generics.
14133 (Check_Private_View): For an array type, check whether the index types
14134 may need exchanging.
14135
141362007-06-06 Arnaud Charlet <charlet@adacore.com>
14137 Vincent Celier <celier@adacore.com>
14138
14139 * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
14140 since both are separated.
14141 Add support for imported CIL packages.
14142 Add further special handling of "value_type" for CIL.
14143 Add special handling of pragma Import for CIL.
14144
14145 * make.ads, make.adb: When switch -eS is used, direct all outputs to
14146 standard output instead of standard error, except errors.
14147 (Absolute_Path): Use untouched casing for the parent directory.
14148 (Add_Library_Search_Dir): Use the untouched directory name.
14149 (Add_Source_Search_Dir): Idem.
14150 (Change_To_Object_Directory): Update output to use proper casing.
14151 (Create_Binder_Mapping_File): Use the untouched filename to set
14152 ALI_Name.
14153 (Gnatmake): Use untouched library and executable directory names.
14154 (Insert_Project_Sources): Use untouched filename for spec and body.
14155 (Is_In_Object_Directory): Use untouched object directory.
14156 (Mark_Directory): Idem.
14157 (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
14158 contains the non-canonical filename in all cases.
14159 (Change_To_Object_Directory): In verbose mode, display the name of the
14160 object directory we're changing to.
14161 (Compile_Sources): Make sure, when a project file is used, to compile
14162 the body of the unit, when there is one, even when only the spec is
14163 recorded in an ALI file.
14164 (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
14165 spec to the body.
14166 (Report_Compilation_Failed): New procedure
14167 (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
14168 procedures moved from the spec to the body.
14169 (Extract_Failure): Removed, not used
14170 Replace explicit raises of exception Bind_Failed and Link_Failed with
14171 calls to Make_Failed with the proper message.
14172 Replace explicit raises of exception Compilation_Failed with calls to
14173 procedure Report_Compilation_Failed.
14174 (Initialize): Create mapping files unconditionally when using project
14175 files.
14176
14177 * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
14178 Pragma_CIL_Constructor): New names.
14179
14180 * targparm.ads, targparm.adb
14181 (Compiler_System_Version): Removed, no longer used.
14182 (Get_Target_Parameters): Relax checks on system.ads validity. Add
14183 handling of two new system flags: JVM and CLI.
14184
141852007-06-06 Jose Ruiz <ruiz@adacore.com>
14186 Arnaud Charlet <charlet@adacore.com>
14187
14188 * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
14189 time, use the default s-interr body that provides interrupt support
14190 based on signals.
14191 (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
14192 a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
14193 g-soccon.ads, and s-taprop.adb for the marte run time.
14194 (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
14195 timers are supported on marte.
14196 (EH_MECHANISM for marte): Do not use ZCX.
14197 (THREADSLIB for marte): Use -lmarte.
14198 Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
14199 Add mlib-tgt-specific.o to gnatmake objects
14200 mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
14201 longer of MLib.Tgt.
14202 (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
14203 6, either kernel or rtp, use a specialized version of s-osinte.ads.
14204
142052007-06-06 Pascal Obry <obry@adacore.com>
14206
14207 * mkdir.c (__gnat_mkdir): Add support for UTF-8.
14208
142092007-06-06 Vincent Celier <celier@adacore.com>
14210
14211 * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
14212 separator, use instead the proper host directory separator.
14213 (Copy_ALI_Files): Make sure that an already existing ALI file in the
14214 ALI copy dir is writable, before doing the copy.
14215
9e81dbc7 14216 * mlib-utl.ads, mlib-utl.adb:
ec11296f
AC
14217 (Gcc): If length of command line is too long, put the list of object
14218 files in a response file, if this is supported by the platform.
14219 (Ar): If invocation of the archive builder is allowed to be done in
14220 chunks and building it in one shot would go above an OS dependent
14221 limit on the number of characters on the command line, build the archive
14222 in chunks.
14223
142242007-06-06 Vincent Celier <celier@adacore.com>
14225
14226 * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
14227 of specified object file is not equal to base name of source.
14228
142292007-06-06 Javier Miranda <miranda@adacore.com>
14230 Hristian Kirtchev <kirtchev@adacore.com>
14231 Ed Schonberg <schonberg@adacore.com>
14232
14233 * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
14234 the full type declaration.
14235 (Analyze_Component_Declaration): Add local variable E to capture the
14236 initialization expression of the declaration. Replace the occurences of
14237 Expression (N) with E.
14238 (OK_For_Limited_Init_In_05): Allow initialization of class-wide
14239 limited interface object with a function call.
14240 (Array_Type_Declaration): If the declaration lacks subtype marks for
14241 indices, create a simple index list to prevent cascaded errors.
14242 (Is_Null_Extension): Ignore internal components created for secondary
14243 tags when checking whether a record extension is a null extension.
14244 (Check_Abstract_Interfaces): Add missing support for interface subtypes
14245 and generic formals.
14246 (Derived_Type_Declaration): Add missing support for interface subtypes
14247 and generic formals.
14248 (Analyze_Object_Declaration): If an initialization expression is
14249 present, traverse its subtree and mark all allocators as static
14250 coextensions.
14251 (Add_Interface_Tag_Component): When looking for components that may be
14252 secondary tags, ignore pragmas that can appear within a record
14253 declaration.
14254 (Check_Abstract_Overriding): an inherited function that dispatches on
14255 result does not need to be overriden if the controlling type is a null
14256 extension.
14257 (Mentions_T): Handle properly a 'class attribute in an anonymous access
14258 component declaration, when the prefix is an expanded name.
14259 (Inherit_Component): If the derivation is for a private extension,
14260 inherited components remain visible and their ekind should not be set
14261 to Void.
14262 (Find_Type_Of_Object): In the case of an access definition, always set
14263 Is_Local_Anonymous_Access. We were previously not marking the anonymous
14264 access type of a return object as a local anonymous type.
14265 (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
14266 range with character literal bounds.
14267 (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
14268 (Access_Subprogram_Declaration): Indicate that the type declaration
14269 depends on an incomplete type only if the incomplete type is declared
14270 in an open scope.
14271 (Analyze_Subtype_Declaration): Handle properly subtypes of
14272 synchronized types that are tagged, and that may appear as generic
14273 actuals.
14274 (Access_Subprogram_Declaration): An anonymous access to subprogram can
14275 appear as an access discriminant in a private type declaration.
14276 (Add_Interface_Tag_Components): Complete decoration of the component
14277 containing the tag of a secondary dispatch table and the component
14278 containing the offset to the base of the object (this latter component
14279 is only generated when the parent type has discriminants --as documented
14280 in this routine).
14281 (Inherit_Components): Use the new decoration of the tag components to
14282 improve the condition that avoids inheriting the components associated
14283 with secondary tags of the parent.
14284 (Build_Discriminanted_Subtype): Indicate to the backend that the
14285 size of record types associated with dispatch tables is known at
14286 compile time.
14287 (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
14288 (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
14289 to include task, protected, and synchronized interfaces as limited
14290 interfaces.
14291 (Process_Discriminants): Remove the setting of
14292 Is_Local_Anonymous_Access on the type of (anonymous) access
14293 discriminants of nonlimited types.
14294 (Analyze_Interface_Type_Declaration): Complete the decoration of the
14295 class-wide entity it is is already present. This situation occurs if
14296 the limited-view has been previously built.
14297 (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
14298 field.
14299 (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
14300 Related_Interface.
14301
143022007-06-06 Ed Schonberg <schonberg@adacore.com>
14303
14304 * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
14305 of the type that specify the position of interface tags when the type
14306 inherits discriminated array components from the parent type.
14307 If a component is initialized with a box, check for the presence of a
14308 default expression in its declaration before using its default
14309 initialization procedure.
14310 (Resolve_Record_Aggregate): If a component is box-initialized, and the
14311 component type has a discriminants, create a partial aggregate for it
14312 by copying the discriminants of the component subtype.
14313 Reject attempt to initialize a discriminant with a box.
14314 (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
14315 associated with dispatch tables is known at compile time.
14316 (Get_Value): If an association in a record aggregate has a box
14317 association, and the corresponding record component has a default
14318 expression, always copy the default expression, even when the
14319 association has a single choice, in order to create a proper
14320 association for the expanded aggregate.
14321
143222007-06-06 Ed Schonberg <schonberg@adacore.com>
14323 Robert Dewar <dewar@adacore.com>
14324
14325 * par-ch12.adb (P_Generic_Associations): The source position of an
14326 Others association is that of the others keyword, not that of the token
14327 that follows the box.
14328 (P_Formal_Type_Definition): Handle formal access types that carry a
14329 not null indicator.
14330
14331 * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
14332 multiple identifier are present, save Scan_State before scanning the
14333 colon, to ensure that separate trees are constructed for each
14334 declaration.
14335 (P_Identifier_Declarations): For object declaration, set new flag
14336 Has_Init_Expression if initialization expression present.
14337 (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
14338 Improve NOT NULL error messages
14339
143402007-06-06 Robert Dewar <dewar@adacore.com>
14341
14342 * par-ch4.adb: (P_Name): Recover from literal used as name
14343
143442007-06-06 Vincent Celier <celier@adacore.com>
14345
14346 * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
14347 defaulted to False.
14348 In the "not" case, recursive call with Complemented set to True.
14349 Do not allow "or" or "and" operators when Complemented is True.
14350
143512007-06-06 Vincent Celier <celier@adacore.com>
14352
14353 * prj.adb (Project_Empty): Gives default value for new component
14354 Libgnarl_Needed
14355
14356 * prj-attr.ads: Minor reformatting
14357
14358 * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
14359 directory using the untouched casing.
14360 (For_All_Source_Dirs): Idem.
14361
14362 * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
14363 directories specified with switches -aP.
14364 (Add_Search_Project_Directory): New procedure
14365 (Initialize_Project_Path): Put the directories in table
14366 Search_Directories in the project search path.
14367 (Initialize_Project_Path): For VMS, transform into canonical form the
14368 project path.
14369
143702007-06-06 Arnaud Charlet <charlet@adacore.com>
14371
14372 * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
14373 true if configurable run-time or No_Run_Time is set.
14374 (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
14375 processing an unit which is not the one being compiled.
14376
143772007-06-06 Arnaud Charlet <charlet@adacore.com>
14378
14379 * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
14380 Replace UC by Ada.UC
14381
14382 * s-bitops.adb: Get rid of System.Pure_Exceptions.
14383 Replace UC by Ada.UC
14384
143852007-06-06 Robert Dewar <dewar@adacore.com>
14386
14387 * scng.adb: (Check_End_Of_Line): Deal with very long lines
14388
143892007-06-06 Robert Dewar <dewar@adacore.com>
14390
14391 * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
14392 Remove no longer used nodes.
14393
143942007-06-06 Javier Miranda <miranda@adacore.com>
14395 Ed Schonberg <schonberg@adacore.com>
14396 Robert Dewar <dewar@adacore.com>
14397
14398 * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
14399 on obsolescent withed unit in case of limited-withed units.
14400 (Analyze_Compilation_Unit): Add guard to code that removed an
14401 instantiation from visibility, to prevent compiler aborts when
14402 instantiation is abandoned early on.
14403 (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
14404 current unit being analyzed, and Distinguish local incomplete types
14405 from limited views of types declared elsewhere.
14406 (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
14407 to state that the class-wide entity is shared by the limited-view
14408 and the full-view.
14409 (Analyze_With_Clause): Improve placement of flag for case of
14410 unimplemented unit.
14411 (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
14412 manner similar to GNAT.Current_Exception. This is a violation of
14413 restriction (No_Exception_Propagation), and also inhibits the
14414 optimization of local raise to goto.
14415 (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
14416 and if so set Most_Recent_Exception_Used flag in Opt, and also check
14417 for violation of restriction No_Exception_Propagation.
14418
144192007-06-06 Javier Miranda <miranda@adacore.com>
14420 Hristian Kirtchev <kirtchev@adacore.com>
14421 Gary Dismukes <dismukes@adacore.com>
14422
14423 * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
14424 use of entity Exception_Occurrence if it is not available in the
14425 target run-time.
14426
14427 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
14428 concurrent types are declared within an Ada 2005 generic, build their
14429 corresponding record types since they are needed for overriding-related
14430 semantic checks.
14431 (Analyze_Protected_Type): Rearrange and simplify code for testing that a
14432 protected type does not implement a task interface or a nonlimited
14433 interface.
14434 (Analyze_Task_Type): Rearrange and simplify code for testing that a task
14435 type does not implement a protected interface or a nonlimited interface.
14436 (Single_Task_Declaration, Single_Protected_Declaration): use original
14437 entity for variable declaration, to ensure that debugging information
14438 is correcty generated.
14439 (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
14440 routines if the expander is not active.
14441 (Analyze_Task_Body): Mark all handlers to stop optimization of local
14442 raise, since special things happen for task exception handlers.
14443
14444 * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
14445 concurrent types declared within a generic.
14446 (Check_Dispatching_Operation): Do not emit warning about late interface
14447 operations in the context of an instance.
14448 (Check_Dispatching_Call): Remove restriction against calling a
14449 dispatching operation with a limited controlling result.
14450 (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
14451 Register_Interface_DT_Entry by calls to Register_Primitive.
14452 (Check_Dispatching_Formals): Handle properly a function with a
14453 controlling access result.
14454
144552007-06-06 Robert Dewar <dewar@adacore.com>
14456 Arnaud Charlet <charlet@adacore.com>
14457
14458 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
14459 Check for restriction No_Implementation_Attributes if in Ada 95 mode.
14460 (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
14461 (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
14462 message when using a VM, since this attribute is not supported.
14463 (Analyze_Record_Representation_Clause): Give unrepped component warnings
14464
14465 * usage.adb: Add new warning for renaming of function return objects
14466 Indicate that -gnatwp and -gnatwP concern front-end inlining
14467 Add line for -gnatyg
14468 Add usage information for -gnatw.c/C
14469
144702007-06-06 Robert Dewar <dewar@adacore.com>
14471 Ed Schonberg <schonberg@adacore.com>
14472
14473 * sem_ch5.adb
14474 (Find_Var): Do not consider function call in test for infinite loop
14475 warning if warnings set off for function entity.
14476 (One_Bound): Do not create a temporary for a loop bound if it is a
14477 character literal.
14478 (Analyze_Assignment): Traverse the right hand side of an assignment and
14479 mark all allocators as static coextensions.
14480 (Analyze_Assignment): Exempt assignments involving a dispatching call
14481 to a function with a controlling access result from the check requiring
14482 the target to be class-wide.
14483
144842007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
14485 Ed Schonberg <schonberg@adacore.com>
14486 Robert Dewar <dewar@adacore.com>
14487 Javier Miranda <miranda@adacore.com>
14488
14489 * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
14490 chain of coextensions when an allocator serves as the root of such a
14491 chain.
14492 (Propagate_Coextensions): Remove the test for the root being an
14493 allocator.
14494 (Resolve_Allocator): Add condition to ensure that all future decoration
14495 occurs on an allocator node. Add processing and cleanup for static
14496 coextensions.
14497 (Valid_Conversion): If the operand type is the limited view of a
14498 class-wide type, use the non-limited view is available to determine
14499 legality of operation.
14500 (Ambiguous_Character): move to spec, for use elsewhere.
14501 (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
14502 (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
14503 character literals.
14504 (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
14505 Do_Division_Check flag explicitly.
14506 (Resolve_Actuals): If the actual is of a synchronized type, and the
14507 formal is of the corresponding record type, this is a call to a
14508 primitive operation of the type, that is declared outside of the type;
14509 the actual must be unchecked-converted to the type of the actual
14510 (Resolve_Call): Kill all current values for any subprogram call if
14511 flag Suppress_Value_Tracking_On_Call is set.
14512 (Resolve_Type_Conversion): Generate error message the the operand
14513 or target of interface conversions come from a limited view.
14514 (Check_Infinite_Recursion): Ignore generated calls
14515 (Check_Allocator_Discrim_Accessibility): New procedure for checking
14516 that an expression that constrains an access discriminant in an
14517 allocator does not denote an object with a deeper level than the
14518 allocator's access type.
14519 (Resolve_Allocator): In the case of an allocator initialized by an
14520 aggregate of a discriminated type, check that associations for any
14521 access discriminants satisfy accessibility requirements by calling
14522 Check_Allocator_Discrim_Accessibility.
14523 (Resolve_Equality_Op): Handle comparisons of anonymous access to
14524 subprogram types in the same fashion as other anonymous access types.
14525 (Resolve_Concatenation_Arg): Remove initial character '\' in an error
14526 message that is not a continuation message.
14527 (Resolve_Type_Conversion): Add missing support for conversion to
14528 interface type.
14529 (Resolve_Actuals): Introduce a transient scope around the call if an
14530 actual is a call to a function returning a limited type, because the
14531 resulting value must be finalized after the call.
14532 (Resolve_Actuals): If the call was given in prefix notations, check
14533 whether an implicit 'Access reference or implicit dereference must be
14534 added to make the actual conform to the controlling formal.
14535
145362007-06-06 Robert Dewar <dewar@adacore.com>
14537 Javier Miranda <miranda@adacore.com>
14538
14539 * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
14540 (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
14541 overriding of an inherited private subprogram now there is no need to
14542 inherit its dispatching slot and reduce the size of the dispatch table.
14543 Set_All_DT_Position now ensures that the same slot is now assigned to
14544 both entities. This is required to statically build the dispatch table.
14545 (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
14546 of calling Set_All_DT_Position to re-evaluate the position of the
14547 entries in the dispatch table. Such reevaluation is not desired if
14548 the tagged type is already frozen.
14549
145502007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
14551 Gary Dismukes <dismukes@adacore.com>
14552 Robert Dewar <dewar@adacore.com>
14553 Javier Miranda <miranda@adacore.com>
14554
14555 * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
14556 reference acts as an lvalue when the attribute name modifies the prefix
14557 (Is_Coextension_Root): New routine.
14558 (Mark_Static_Coextensions): New routine.
14559 (Type_Access_Level): Revise code for checking the level of the
14560 anonymous access type of a return object.
14561 (Safe_To_Capture_Value): Not safe to capture if Address_Taken
14562 (Matches_Prefixed_View_Profile): Remove the no longer necessary
14563 retrieval of the corresponding controlling record type.
14564 (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
14565 concurrent types declared within a generic as well as class wide types.
14566 Emit a mode incompatibility error whenever a protected entry or routine
14567 override an interface routine whose first parameter is not of mode
14568 "out", "in out" or access to variable.
14569 (Overrides_Synchronized_Primitive): Rename to
14570 Find_Overridden_Synchronized_Primitive.
14571 (Collect_Interface_Components): New subprogram that collects all the
14572 components of a tagged record containing tags of secondary dispatch
14573 tables.
14574 (Add_Global_Declaration): New procedure
14575 (Abstract_Interface_List): Handle properly the case of a subtype of a
14576 private extension.
14577 (Type_Access_Level): In the case of a type whose parent scope is a
14578 return statement, call Type_Access_Level recursively on the enclosing
14579 function's result type to determine the level of the return object's
14580 type.
14581 (Build_Elaboration_Entity): Build name of elaboration entity from the
14582 scope chain of the entity, rather than the unit name of the file name.
14583 (Check_Nested_Access): New procedure.
14584 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
14585 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
14586 (Get_Renamed_Entity): Utility routine for performing common operation
14587 of chasing the Renamed_Entity field of an entity.
14588
145892007-06-06 Robert Dewar <dewar@adacore.com>
14590
14591 * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
14592 elaboration model
14593 (Check_A_Call): Add check for entry call which was causing blowup
14594
145952007-06-06 Olivier Hainque <hainque@adacore.com>
14596
14597 * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
14598 special code on ia64-vms to handle major incompatibilities between the
14599 GCC unwinding ABI and the VMS Condition Handling Facility, both calling
14600 this routine with a very different set of arguments and expectations on
14601 the return value.
14602
146032007-06-06 Thomas Quinot <quinot@adacore.com>
14604
14605 * socket.c (__gnat_close_signalling_fd): New function.
14606 (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
14607 __gnat_safe_getservbyname, __gnat_safe_getservbyport):
14608 New supporting functions for task safe Netdb operations.
14609
146102007-06-06 Thomas Quinot <quinot@adacore.com>
14611 Olivier Hainque <hainque@adacore.com>
14612
14613 * a-except-2005.ads, a-except-2005.adb
14614 (Raise_From_Controlled_Operation): New procedure in
14615 (private part of) Ada.Exceptions (standard runtime version). Used to
14616 provide informational exception message when Program_Error is raised as
14617 a result of an Adjust or Finalize operation propagating an exception.
14618 (Rmsg_28): Fix description for E.4(18) check.
14619 (Raise_Current_Excep): Call Debug_Raise_Exception just before
14620 propagation starts, to let debuggers know about the event in a reliable
14621 fashion.
14622 Take the address of E and dereference to make sure it is homed on stack
14623 and prevent the stores from being deleted, necessary for proper
14624 debugger behavior on "break exception" hits.
14625 (Local_Raise): Moved to System.Exceptions
14626
14627 * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
14628 exception message from the current occurrence and raise Program_Error
14629 has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
14630
146312007-06-06 Jose Ruiz <ruiz@adacore.com>
14632 Arnaud Charlet <charlet@adacore.com>
14633
14634 * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
14635 lock, if needed.
14636
14637 * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
14638 priority associated to a lock.
14639
14640 * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
14641 assertion to take into account case of no abort restriction.
14642 (Initialize_Protection_Entries): Add initialization for the field
14643 New_Ceiling associated to the protected object.
14644 (Unlock_Entries): Change the ceiling priority of the underlying lock, if
14645 needed.
14646
14647 * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
14648 since this function needs to be set consistently with Update_Exception.
14649
14650 * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
14651 since this function needs to be set consistently with Update_Exception.
14652
14653 * s-taskin.ads: Update comments on
14654 Interrupt_Server_Blocked_On_Event_Flag.
14655 (Unbind_Handler): Fix handling of server_task wakeup
14656 (Server_Task): Set self's state so that Unbind_Handler can take
14657 appropriate actions.
14658 (Common_ATCB): Now use a constant from System.Parameters to determine
14659 the max size of the Task_Image field.
14660
14661 * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
14662 Initialize_Analyzer function.
14663 ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
14664 take into account case of no abort restriction.
14665 ([Vulnerable_]Complete_Master): Modify assertion.
14666
14667 * s-tataat.adb (Finalize): Use the nestable versions of
14668 Defer/Undefer_Abort.
14669
14670 * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
14671
14672 * s-tpobop.ads: Update comments.
14673
14674 * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
14675 of locking the object manually, to avoid inconsistencies between
14676 Lock/Unlock_Entry assertions.
14677
14678 * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
14679 terminating
14680 application and System.Parameters.No_Abort is True.
14681 Update comments on Interrupt_Server_Blocked_On_Event_Flag.
14682 (Unbind_Handler): Fix handling of server_task wakeup
14683 (Server_Task): Set self's state so that Unbind_Handler can take
14684 appropriate actions.
14685
146862007-06-06 Thomas Quinot <quinot@adacore.com>
14687
14688 * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
14689 declarations instead of an explicit null body, for conciseness.
14690
146912007-06-06 Robert Dewar <dewar@adacore.com>
14692
14693 * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
14694 illegal aggregate and the type is still Any_Composite.
14695 (Subtypes_Statically_Match): Fix problem of empty discriminant list
14696
146972007-06-06 Ed Schonberg <schonberg@adacore.com>
14698
14699 * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
14700 to prevent subsequent expansion.
14701
147022007-06-06 Robert Dewar <dewar@adacore.com>
14703
14704 * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
14705
147062007-06-06 Ed Schonberg <schonberg@adacore.com>
14707 Robert Dewar <dewar@adacore.com>
14708
14709 * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
14710 exceptions.
14711 (Write_Itype): Handle case of string literal subtype, which
14712 comes up in this context.
14713 (Update_Itype): when debugging expanded code, update sloc of itypes
14714 associated with defining_identifiers and ranges, for gdb use.
14715 (Sprint_Node_Actual): Add static keyword to object or exception
14716 declaration output if Is_Statically_Allocated is True.
14717 (Sprint_End_Label): Set entity of end marker for a subprogram, package,
14718 or task body, so that the tree carries the proper Sloc information for
14719 debugging use.
14720 (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
14721
147222007-06-06 Arnaud Charlet <charlet@adacore.com>
14723
14724 * s-secsta.adb (Chunk): Ensure this object has a static size known at
14725 compile time, to avoid dynamic memory allocation
14726 (Elaboration code): Only use dynamic memory allocation when needed.
14727
147282007-06-06 Quentin Ochem <ochem@adacore.com>
14729
14730 * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
14731 "Overflow_Guard".
14732 (Stack_Analyzer): Added field "Overflow_Guard"
14733 (Task_Result): Added field "Overflow_Guard".
14734 (Index_Str): New constant.
14735 (Task_Name_Str): New constant.
14736 (Actual_Size_Str): New constant.
14737 (Pattern_Array_Element_Size): New constant.
14738 (Get_Usage_Range): New subprogram.
14739 (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
14740 Now align the output.
14741 Added comments.
14742 (Initialize): Added value for Overflow_Guard.
14743 (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
14744 Update the value of the overflow guard according to the actual
14745 beginning of the pattern array.
14746 (Initialize_Analyzer): Added parameter Overflow_Guard.
14747 Take this parameter into accound when computing the max size.
14748 (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
14749 (Report_Result): Removed extra useless procedure.
14750 Updated call to Output_Result.
14751 Moved full computation of the Task_Result here.
14752
147532007-06-06 Thomas Quinot <quinot@adacore.com>
14754
14755 * g-soccon-darwin.ads, gen-soccon.c: Add new constant
14756 Thread_Blocking_IO, always True by default, set False on a per-runtime
14757 basis.
14758 Add Windows-specific constants
14759 Add new constant Need_Netdb_Buffer.
14760 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
14761 not, whether to use getXXXbyYYY_r.
14762
14763 * gsocket.h: Add new constant Need_Netdb_Buffer.
14764 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
14765 not, whether to use getXXXbyYYY_r.
14766
147672007-06-06 Eric Botcazou <ebotcazou@adacore.com>
14768
14769 * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
14770 than their first call.
14771 Add type Dummy_Communication_Block used in the generation of the pre-
14772 defined dispatching primitive _disp_asynchronous_select.
14773 (Storage_Element): Put Pragma Universal_Aliasing on it.
14774
147752007-06-06 Vincent Celier <celier@adacore.com>
14776
14777 * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
14778 function.
14779
14780 * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
14781 letter if it is not followed by a '/' or a '\'.
14782 (Windows): New Boolean function
14783
14784 * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
14785 Ada 2005.
14786 (Containing_Directory): On Windows, keep at least one '/' or '\' after a
14787 drive letter.
14788 (Containing_Directory): Raise Use_Error when the directory is a root
14789 directory.
14790 (Extension): When returning the result, use a conversion to Result_Type,
14791 not a qualification.
14792
147932007-06-06 Robert Dewar <dewar@adacore.com>
14794
14795 * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
14796 (Set_Style_Check_Options): Recognize new -gnatyg style switch
14797
14798 * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
14799 Warn_On_Non_Local_Exception to False, to turn off warnings for
14800 No_Exception_Propagation in ZFP runtime.
14801 (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
14802 back-ends.
14803 (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
14804
148052007-06-06 Vincent Celier <celier@adacore.com>
14806
14807 * switch-b.adb (Scan_Binder_Switches): Add processing for new
14808 switches -R and -Z
14809
14810 * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
14811 (Scan_Make_Switches): Recognize new switch -aP
14812
148132007-06-06 Matthew Gingell <gingell@adacore.com>
14814 Jose Ruiz <ruiz@adacore.com>
14815
14816 * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
14817 VxWorks task descriptor in the Ada run time, call a C subprogram
14818 (__gnat_get_stack_info) that extracts the required information.
14819
14820 * sysdep.c: Back out temporary lynxos workaround.
14821 (__gnat_get_stack_info): Add this procedure that passes to the Ada run
14822 time the stack information associated to the currently executing task.
14823 Only VxWorks systems require this function.
14824
148252007-06-06 Eric Botcazou <ebotcazou@adacore.com>
14826
14827 * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
14828 add the stack bias if the offset is computed from a frame address.
14829 (__gnat_backtrace): Adjust for above change.
14830
148312007-06-06 Thomas Quinot <quinot@adacore.com>
14832
14833 * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
14834 PE_Non_Transportable_Actual.
14835 (By_Descriptor_Last): New constant.
14836 (By_Copy_Return): Likewise.
14837
148382007-06-06 Vincent Celier <celier@adacore.com>
14839
14840 * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
14841 is.
14842
14843 * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
14844 /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
14845 /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
14846 Add missing comment for /OPTIMIZE=SPACE
14847 Add entry for OPTIMIZE=SPACE
14848 Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
14849 Add documentation for new qualifiers corresponding to -gnatw.c/.C
14850
148512007-06-06 Vincent Celier <celier@adacore.com>
14852 Robert Dewar <dewar@adacore.com>
14853
14854 * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
14855 -gnatw.C)
14856
14857 * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
14858 Document gnatbind switch -a
14859 (case Constructions): Document that variables declarations are allowed
14860 for previously declared variables.
14861 Fix external lib project example
14862 -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
14863 Indicate that "#if not X or Y then" is not allowed in input files to
14864 gnatprep.
14865 Document gnatw.x and gnatw.X warning flags
14866 Mention -Winline switch to activate warnings when back-end inlining is
14867 ineffective.
14868 Add gnatcheck rule descriptions
14869 Describe how to use the GNAT driver to call a tool on a closure.
14870 Describe how to run project-wide checks or metrics.
14871 Document gnatbind's -R option
14872 Updated to account for Ada 2005 support
14873
14874 * gnat_rm.texi (Case Construction): Allow variable declarations for
14875 previously declared variables.
14876 (Representation Clauses and Pragmas): Lift restriction on alignment
14877 clauses for record types.
14878 (Ada.Characters.*): Fix typo in reference to A.3.3(27).
14879 Document No_Exception_Propagation restriction
14880 Document No_Body pragma
14881 Updated to account for Ada 2005 support; corrected some typos
14882 (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
14883
14884 * gnat-style.texi: Make it clear that we never use mode IN for
14885 procedures or functions
14886
14887 * ug_words: Add entries for -gnatw.x and -gnatw.X
14888 Add entries for -gnatw.c/.C
14889
148902007-06-06 Pascal Obry <obry@adacore.com>
14891 Vincent Celier <celier@adacore.com>
14892
14893 * makegpr.adb (Add_Archive_Path): Use untouched object and library
14894 dirs and library name.
14895 (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
14896 comments.
14897 (Build_Library): Idem.
14898 (Compile_Individual_Sources): Idem.
14899 (Compile_Link_With_Gnatmake): Idem.
14900 (Compile_Sources): Idem.
14901 (Get_Imported_Directories): Idem.
14902 (Link_Executables): Idem. Same change for the executable dir.
14903 (Check_Compilation_Needed): C_Source_Path new variable containing
14904 the canonical form of Source_Path to check against the source names
14905 in the dependency file.
14906 (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
14907 verbose mode, display the name of the object directory we're changing
14908 to.
14909 (Saved_Switches): New name of table X_Switches
14910 (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
14911 (Usage): New line for switch -aP
14912 (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
14913 testing if a directory should be added to the search path.
14914
149152007-06-06 Javier Miranda <miranda@adacore.com>
14916
9e81dbc7 14917 * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
ec11296f
AC
14918 a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
14919 declaration after freezing point of all its associated tagged types;
14920 otherwise such types are frozen too early.
14921
149222007-06-06 Robert Dewar <dewar@adacore.com>
14923
14924 * a-reatim.adb: Documentation addition
14925
14926 * g-cgideb.adb: Minor code reorganization
14927
14928 * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
14929 mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
14930 s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
14931
14932 * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
14933 function. Change name New_Scope to Push_Scope
14934 (Get_Debug_Flag_K): Remove unused obsolete function.
14935
14936 * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
14937 Push_Scope.
14938
14939 * makeusg.adb: Update Copyright notice
14940 Add line for switch -aP
14941
14942 * makeusg.adb: Fix wording of some usage messages
14943
14944 * s-assert.adb (Raise_Assert_Failure): Add call to
14945 Debug_Raise_Assert_Failure.
14946
14947 * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
14948 (2, Standard'Alignment) for compatibility with AAMP (where alignment
14949 is restricted to 1).
14950
14951 * s-wchjis.adb: Remove use of System.Pure_Exceptions
14952
14953 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
14954 node location to No_Location when we're not debugging the expanded
14955 code.
14956
dbc30a96
AO
149572007-05-22 Alexandre Oliva <aoliva@redhat.com>
14958
14959 * misc.c (enumerate_modes): Consider log2_b to always be one.
14960
719bb4e3 149612007-05-14 Rafael Ávila de Espíndola <espindola@google.com>
ca5ba2a3
RAE
14962
14963 * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
14964
d7598e11
PO
149652007-05-02 Pascal Obry <obry@adacore.com>
14966
14967 * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
14968 to use Stream_IO.File_Type. This is needed to make use of the UTF-8
14969 encoding support of Stream_IO.
14970 (Write_Unit): Idem.
14971
14972 * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
14973 filename and corresponding encoding to match the OS requirement.
14974 (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
14975 routine will fail on specific devices like CON: AUX: ...
14976
14977 PR ada/29856: Add missing braces
14978
1be52f61
AP
149792007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
14980
14981 PR ada/31660
14982 * ada-tree.h (lang_tree_node): Fix typo in chain_next.
14983
395a40e0
JH
149842007-04-21 Jan Hubicka <jh@suse.cz>
14985
14986 * misc.c (gnat_expand_body): Don't call target for destructors,
14987 avoid redundant check on syntax errors.
14988
3d95caa4
AP
149892007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
14990
14991 * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
14992 instead of checking GIMPLE_STMT_P in chain_next.
14993
ea30850a
AK
149942007-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
14995
14996 PR ada/31576
14997 * system-linux-alpha.ads: Disable constant condition warning for the
14998 Default_Bit_Order variable.
14999 * system-linux-s390.ads: Likewise.
15000 * system-linux-s390x.ads: Likewise.
15001 * system-linux-sparc.ads: Likewise.
15002
4b437c6b
AC
150032007-04-06 Javier Miranda <miranda@adacore.com>
15004 Matt Heaney <heaney@adacore.com>
15005 Robert Dewar <dewar@adacore.com>
15006
15007 a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
15008 a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
15009 a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
15010 a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
15011 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
15012 a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
15013 a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
15014 a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
15015 a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
15016 a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
15017 a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
15018 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
15019 a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
15020 a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
15021 a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
15022 a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
15023 a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
15024 i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
15025 unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
15026 a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
15027 a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
15028 a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
15029 expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
15030 s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
15031 s-taprop-tru64.adb, s-taprop-irix.adb,
15032 s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
15033 s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
15034 s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
9e81dbc7
AS
15035 s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
15036 s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
15037 a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
15038 a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
15039 g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
15040 s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
15041 s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
15042 s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
15043 s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
15044 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
15045 s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
15046 a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
15047 a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
15048 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
4b437c6b 15049 a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
9e81dbc7 15050 a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
4b437c6b
AC
15051 a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
15052 access types.
15053 Update documentation.
15054 Minor rewording.
15055
150562007-04-06 Robert Dewar <dewar@adacore.com>
15057
15058 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
15059 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
15060 system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
15061 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
15062 system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
15063 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
15064 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
15065 system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
15066 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
9e81dbc7 15067 system-hpux-ia64.ads, targparm.adb,
4b437c6b
AC
15068 targparm.ads (Functions_Return_By_DSP_On_Target): Removed
15069
15070 * system.ads: Move Functions_Return_By_DSP to obsolete section,
15071 kept for bootstrap purposes only.
15072
150732007-04-06 Arnaud Charlet <charlet@adacore.com>
15074
15075 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
15076 s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
15077 s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
15078 (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
15079
150802007-04-06 Robert Dewar <dewar@adacore.com>
15081
15082 * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
15083 (Local_Raise): New dummy procedure called when a raise is converted
15084 to a local goto. Used for debugger to detect that the exception
15085 is raised.
15086
15087 * debug.adb: Document new d.g flag (expand local raise statements to
15088 gotos even if pragma Restriction (No_Exception_Propagation) is not set)
15089
15090 * exp_sel.adb: Use Make_Implicit_Exception_Handler
15091
15092 * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
15093 suppress warnings for unused handlers.
15094 (Warn_If_No_Propagation): Use new flag -gnatw.x to suppress
15095 warnings for raise statements not handled locally.
15096 (Get_RT_Exception_Entity): New function
15097 (Get_Local_Call_Entity): New function
15098 (Find_Local_Handler): New function
15099 (Warn_If_No_Propagation): New procedure
15100 (Expand_At_End_Handler): Call Make_Implicit_Handler
15101 (Expand_Exception_Handlers): Major additions to deal with local handlers
15102 (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
15103 Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
15104 for local raise
15105
15106 * exp_ch11.ads (Get_RT_Exception_Entity): New function
15107 (Get_Local_Call_Entity): New function
15108
15109 * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
15110 of restrictions that the binder will never suggest adding.
15111
15112 * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
15113 to No_Elist.
15114
15115 * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
15116 be with'ed in the presence of pragma Restriction
15117 (No_Exception_Propagation).
15118
15119 * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
15120
15121 * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
15122 parameter, then the handler is not a suitable target for a local raise,
15123 and this is a violation of restriction No_Exception_Propagation.
15124 (Analyze_Handled_Statements): Analyze choice parameters in exception
15125 handlers before analyzing statement sequence (needed for proper
15126 detection of local raise statements).
15127 (Analyze_Raise_Statement): Reraise statement is a violation of the
15128 No_Exception_Propagation restriction.
15129
15130 * s-rident.ads: Add new restriction No_Exception_Propagation
15131
15132 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
15133 function, like Make_Exception_Handler but sets Local_Raise_Statements
15134 to No_List.
15135 (Add_Unique_Serial_Number): Deal with case where this is called during
15136 processing of configuration pragmas.
15137
151382007-04-06 Thomas Quinot <quinot@adacore.com>
15139 Pat Rogers <rogers@adacore.com>
15140 Pascal Obry <obry@adacore.com>
15141
15142 * g-stsifd-sockets.adb: New file.
15143
15144 * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
15145 g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
15146 g-socthi-vms.adb: Move signalling
15147 fd management to a nested package, so that they can conveniently be
15148 moved to a subunit that is shared across Windows, VMS, and VxWorks
15149 (Ada implementation) or completed with imported bodies from socket.c
15150 (UNIX case).
15151 (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
15152 subprograms.
15153 (Check_Selector): Use Read_Signalling_Fd to read and discard data from
15154 the signalling file descriptor.
15155 (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
15156 signalling file descriptor.
15157 (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
15158 instead of creating a pair of sockets for signalling here.
15159
15160 * g-socthi.adb: Ditto.
15161 Set the runtime process to ignore SIGPIPEs on platforms that support
15162 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
15163
15164 * g-socthi-mingw.adb: Ditto.
15165 (WS_Version): Use Windows 2.2.
15166 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
15167
15168 * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
15169 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
15170
15171 * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
15172 added GNAT byte swapping facility
15173 Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
15174
15175 * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
15176
15177 * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
15178 New subprograms.
15179 (__gnat_create_signalling_fds): New subprogram.
15180 Set the runtime process to ignore SIGPIPEs on platforms that support
15181 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
15182
151832007-04-06 Hristian Kirtchev <kirtchev@adacore.com>
15184 Vincent Celier <celier@adacore.com>
15185
15186 * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
15187 New version of Ada.Calendar which supports the new upper bound of Ada
15188 time (2399-12-31 86_399.999999999).
15189 The following modifications have been made to the package:
15190 - New representation of time as count of nanoseconds since the start of
15191 Ada time (1901-1-1 0.0).
15192 - Target independent Split and Time_Of routines which service both
15193 Ada 95 and Ada 2005 code.
15194 - Target independent interface to the Ada 2005 children of Calendar.
15195 - Integrated leap seconds into Ada 95 and Ada 2005 mode.
15196 - Handling of non-leap centenial years.
15197 - Updated clock function.
15198 - Updated arithmetic and comparison operators.
15199
15200 * a-caldel.adb (To_Duration): Add call to target independent routine in
15201 Ada.Calendar to handle the conversion of time to duration.
15202
15203 * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
15204 (UTC Offset).
15205 If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
15206 set off to 0.
15207 (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
15208 targets do not have a natural time zone, GMT is used as a default.
15209 (__gnat_get_task_options): New.
15210
15211 * a-direct.adb (Modification_Time): Add with and use clauses for
15212 Ada.Calendar and Ada.
15213 Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
15214 since it is no longer needed.
15215 (Duration_To_Time): Removed.
15216 (OS_Time_To_Long_Integer): Removed.
15217 (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
15218 Formatting Time_Of routines which automatically handle time zones,
15219 buffer periods and leap seconds.
15220
15221 * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
15222 target independent routines in Ada.Calendar.
15223
9e81dbc7 15224 * a-calfor.ads, a-calfor.adb:
4b437c6b
AC
15225 Code cleanup and addition of validity checks in various routines.
15226 (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
15227 Ada.Calendar.
15228
15229 * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
15230 independent routine in Ada.Calendar.
15231
152322007-04-06 Olivier Hainque <hainque@adacore.com>
15233
9e81dbc7 15234 * adaint.c:
4b437c6b
AC
15235 (convert_addresses): Adjust prototype and dummy definition to expect an
15236 extra file_name argument.
15237
15238 * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
15239 filling the now expected file_name argument with the appropriate
15240 argv[0] expansion.
15241 (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
15242 (tracebk): Array of void * instead of char *, corresponding to what
15243 convert_addresses expects.
15244 (exename): New static global, to hold the executable file name to be
15245 used in all convert_addresses invocations.
15246 (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
15247 change.
15248 (__gnat_gmem_a2l_initialize): Resolve exename.
15249 (__gnat_convert_addresses): Use exename as the convert_addresses
15250 file_name argument.
15251
15252 * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
15253 "convert_addresses", now expecting a filename argument. Import the
15254 necessary entities to compute the filename to use and pass it to
15255 convert_addresses.
15256
152572007-04-06 Matt Gingell <gingell@adacore.com>
15258
15259 * system-aix.ads: Back out previous change.
15260 (Functions_Return_By_DSP): Removed
15261
152622007-04-06 Pascal Obry <obry@adacore.com>
15263
15264 * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
15265 or the monotonic used by Ada.Real_Time) to compute the sleep duration
15266 on Windows.
15267
152682007-04-06 Jose Ruiz <ruiz@adacore.com>
15269
15270 * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
15271 function. Its value changes in different VxWorks versions, and it is
15272 now handled by the function __gnat_get_task_options.
15273
15274 * s-taprop-vxworks.adb (Create_Task): Call the function
15275 __gnat_get_task_options to get the required options for creating a task.
15276
152772007-04-06 Pascal Obry <obry@adacore.com>
15278 Thomas Quinot <quinot@adacore.com>
15279
15280 * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
15281 dealing with filename.
15282 (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
15283 filename from a standard string to a wide-string depending on the
15284 encoding value.
15285 (__gnat_freopen): Idem.
15286 (__gnat_current_time): New function (wrapper for time(3) standard C
15287 function).
15288
15289 * g-os_lib.ads (Current_Time): New function. Returns the current
15290 system time as an OS_Time value.
15291
15292 * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
15293 (Monotonic_Clock): Same.
15294
152952007-04-06 Quentin Ochem <ochem@adacore.com>
15296
15297 * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
15298 not on a natural.
15299 (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
15300
153012007-04-06 Jose Ruiz <ruiz@adacore.com>
15302
15303 * a-retide.adb: Add elaboration code to ensure that the tasking run
15304 time is initialized when using delay operations even when no task is
15305 created.
15306
153072007-04-06 Javier Miranda <miranda@adacore.com>
15308
15309 * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
15310 component Num_Prim_Ops.
15311 (Set_Num_Prim_Ops): Removed.
15312 Remove all the assertions because all the routines of this
15313 package are inline always.
15314 (Get_Offset_Index): Add support to primary dispatch tables.
15315 Move the documentation about the dispatch table to a-tags.ads
15316 (Set_External_Tag): Removed
15317 (Inherit_TSD): Removed.
15318 (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
15319 moved to a-tags.ads
15320 (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
15321 Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
15322 of the TSD field "Table" because this field has been renamed to
15323 "Ifaces_Table".
15324 (Inherit_CPP_DT): Removed.
15325 (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
15326 Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
15327 declarations have been moved to a-tags.ads
15328 (Check_Size): Removed.
15329 (Expanded_Name): Updated to get access to the new field of TSD
15330 containing the address of the expanded name.
15331 (Get_Access_Level/Set_Access_Level): Removed.
15332 (Get_Predefined_Prim_Op_Address): Removed.
15333 (Set_Predefined_Prim_Op_Address): Removed.
15334 (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
15335 (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
15336 (Set_Expanded_Name): Removed.
15337 (Inherit_DT): Removed.
15338 (Inherit_CPP_DT): Removed.
15339 (Set_RC_Offset): Removed.
15340 (Set_TSD): Removed.
15341 (Base_Address): New function that displaces "this" to point to the base
15342 of the object (that is, to point to the primary tag of the object).
15343
153442007-04-06 Ed Schonberg <schonberg@adacore.com>
15345 Javier Miranda <miranda@adacore.com>
15346
15347 * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
15348 anonymous access component, do not create a master_id if type already
15349 has one, as may happen if the type is a subcomponent of a packed array
15350 type.
15351 (Build_Init_Procedure, Component_Needs_Simple_Initialization,
15352 Initialize_Tag): Remove code associated with the old CPP pragmas.
15353 CPP_Virtual and CPP_Vtable are no longer supported.
15354 (Build_Offset_To_Top_Internal): Add support for concurrent record types
15355 (Build_Offset_To_Top_Functions): Add support for concurrent record types
15356 (Freeze_Record_Type): Remove call to
15357 Init_Predefined_Interface_Primitives.
15358 (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
15359 code required to initialize the tags of the secondary dispatch tables.
15360 This leaves the algoritm more clear.
15361 (Init_Secondary_Tags): Add support for concurrent record types
15362 (Make_Predefined_Primitive_Specs): Code cleanup.
15363 (Predefined_Primitive_Bodies): Code cleanup.
15364 (Build_Master_Renaming): New local subprogram.
15365 (Expand_N_Full_Type_Declaration): Build the master_id associated with
15366 anonymous access to task type components.
15367 (Expand_N_Subtype_Indication): The bounds of a range constraint in a
15368 subtype indication are resolved during analysis, and must not be done
15369 here.
15370 (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
15371
153722007-04-06 Geert Bosch <bosch@adacore.com>
15373 Ed Schonberg <schonberg@adacore.com>
15374 Javier Miranda <miranda@adacore.com>
15375 Bob Duff <duff@adacore.com>
15376
15377 * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
15378 for conversion of a Float_Type'Truncation to integer.
15379
15380 * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
15381 check if a node is an attribute that can be handled directly by the
15382 back end.
15383 (Expand_N_Attribute_Reference): Suppress expansion of floating-point
15384 attributes that can be handled directly by the back end.
15385 (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
15386 use new predicate Is_Access_Protected_Subprogram_Type.
15387 (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
15388 and Unchecked_Union if it is generated as part of the default Output
15389 procedure for a type with default discriminants.
15390 (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
15391 if we are compiling under restriction No_Dispatching_Calls.
15392 (Constrained): Use Underlying_Type, in case the type is private without
15393 discriminants, but the full type has discriminants.
15394 (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
15395 call to Build_Get_Access_Level.
15396 (Expand_N_Attribute_Reference): The use of 'Address with class-wide
15397 interface objects requires a call to the run-time subprogram that
15398 returns the base address of the object.
15399 (Valid_Conversion): Improve error message on illegal attempt to store
15400 an anonymous access to subprogram value into a record component.
15401
15402 * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
15403 null".
15404 (Simplify_Type_Conversion): New procedure that performs simplification
15405 of Int_Type (Float_Type'Truncation (X)).
15406 (Resolve_Type_Conversion): Call above procedure after resolving operand
15407 and before performing checks. This replaces the existing ineffective
15408 code in Exp_Ch4.
15409 (Set_String_Literal_Subtype): When creating the internal static lower
15410 bound subtype for a string literal, use a newly created copy of the
15411 subtree representing the lower bound.
15412 (Resolve_Call): Exclude build-in-place function calls from transient
15413 scope treatment. Update comments to describe this exception.
15414 (Resolve_Equality_Op): In case of dispatching call check violation of
15415 restriction No_Dispatching_Calls.
15416 (Resolve_Call): If the call returns an array, the context imposes the
15417 component type of the array, and the function has one non-defaulted
15418 parameter, rewrite the call as the indexing of a call with a single
15419 parameter, to handle an Ada 2005 syntactic ambiguity for calls written
15420 in prefix form.
15421 (Resolve_Actuals): If an actual is an allocator for an access parameter,
15422 the master of the created object is the innermost enclosing statement.
15423 (Remove_Conversions): For a binary operator, check if type of second
15424 formal is numeric, to check if an abstract interpretation is present
15425 in the case of exponentiation as well.
15426
154272007-04-06 Ed Schonberg <schonberg@adacore.com>
15428 Bob Duff <duff@adacore.com>
15429
15430 * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
15431 copying a parameter list in a call, set properly the First_Named_Formal
15432 and Next_Named_Formal fields in the new list and in the enclosing call.
15433 (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
15434 names, to ease typing in the debugger. Improve comments.
15435 (Watch_Node): New variable, intended to be set in the debugger.
15436 (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
15437 called when the watched node is created.
15438 (New_Node_Debugging_Output): Combined version of local procedures
15439 New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
15440 with a parameter so that conditional breakpoints like "if Node = 12345"
15441 work.
15442 (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
15443 Add Elist1 function
15444
154452007-04-06 Thomas Quinot <quinot@adacore.com>
15446 Ed Schonberg <schonberg@adacore.com>
15447 Gary Dismukes <dismukes@adacore.com>
15448
15449 * checks.ads, checks.adb (Selected_Range_Checks): No range check is
15450 required for a conversion between two access-to-unconstrained-array
15451 types.
15452 (Expr_Known_Valid): Validity checks do not apply to discriminants, but
15453 to discriminant constraints on discriminant objects. This rule must
15454 apply as well to discriminants of protected types in private components.
15455 (Null_Exclusion_Static_Checks): If No_Initialization is set on an
15456 object of a null-excluding access type then don't require the
15457 the object declaration to have an expression and don't emit a
15458 run-time check.
15459
154602007-04-06 Arnaud Charlet <charlet@adacore.com>
9e94c78f 15461 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
15462
15463 * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
15464 and made constant.
15465
15466 * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
15467 Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
15468 carry any.
15469
15470 * fe.h (Compiler_Abort): Add third parameter.
15471
15472 * misc.c (internal_error_function): Build third argument from current
15473 input location and pass it to Compiler_Abort.
15474
154752007-04-06 Gary Dismukes <dismukes@adacore.com>
15476
15477 * cstand.adb (Create_Standard): When the target's storage unit size is
15478 greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
15479 Standard_String.
15480
154812007-04-06 Nicolas Roche <roche@adacore.com>
15482
15483 * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
15484 absolute path can have the following form: device:/a/b. In this case
15485 '/' should be inserted between the path and the filename.
15486
154872007-04-06 Olivier Hainque <hainque@adacore.com>
9e94c78f 15488 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
15489
15490 * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
15491 VAR_DECL to a CONST_DECL we make for a public constant when we know the
15492 corresponding definition has created the so made visible variable.
15493 Handle anonymous access to protected subprogram.
15494 (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
15495 object with an address clause volatile. Re-enable original fix.
15496 <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
15497 too.
15498 (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
15499 associated with either the Equivalent or Root type, instead of the
15500 naked type node.
15501 (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
15502 subtree for every field of a global record type.
15503 (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
15504 discriminants, invoke again variable_size on its newly computed sizes.
15505
155062007-04-06 Robert Dewar <dewar@adacore.com>
15507 Thomas Quinot <quinot@adacore.com>
15508 Ed Schonberg <schonberg@adacore.com>
15509 Bob Duff <duff@adacore.com>
15510
15511 * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
15512 (Next_Component_Or_Discriminant): New function and procedure
15513 (First_Index, First_Literal, Master_Id,
15514 Set_First_Index, Set_First_Literal, Set_Master_Id):
15515 Add missing Ekind assertions.
15516 (Is_Access_Protected_Subprogram_Type): New predicate.
15517 (Has_RACW): New entity flag, set on package entities to indicate that
15518 the package contains the declaration of a remote accecss-to-classwide
15519 type.
15520 (E_Return_Statement): This node type has the Finalization_Chain_Entity
15521 attribute, in case the result type has controlled parts.
15522 (Requires_Overriding): Add this new flag, because "requires
15523 overriding" is subtly different from "is abstract" (see AI-228).
15524 (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
15525 Is_Abstract_Type. Make sure these are called only when appropriate.
15526 (Has_Pragma_Unreferenced_Objects): New flag
15527
15528 * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
15529 class-wide, the tag of the right-hand side must be an exact match, not
15530 an ancestor of that of the object on left-hand side.
15531 (Move_Activation_Chain): New procedure to create the call to
15532 System.Tasking.Stages.Move_Activation_Chain.
15533 (Expand_N_Extended_Return_Statement): Generate code to call
15534 System.Finalization_Implementation.Move_Final_List at the end of a
15535 return statement if the function's result type has controlled parts.
15536 Move asserts to Build_In_Place_Formal.
15537 (Move_Final_List): New function to create the call statement.
15538 (Expand_N_Assignment_Statement): In case of assignment to a class-wide
15539 tagged type, replace generation of call to the run-time subprogram
15540 CW_Membership by call to Build_CW_Membership.
15541 (Expand_N_Return_Statement): Replace generation of call to the run-time
15542 subprogram Get_Access_Level by call to Build_Get_Access_Level.
15543 (Expand_N_Simple_Function_Return): Replace generation of call to the
15544 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
15545
15546 * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
15547 Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
15548 access to protected operations.
15549 (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
15550 master and chain actual parameters to a build-in-place function call
15551 involving tasks.
15552 (BIP_Formal_Suffix): Add new enumeration literals to complete the case
15553 statement.
15554 (Make_Build_In_Place_Call_In_Allocator,
15555 Make_Build_In_Place_Call_In_Anonymous_Context,
15556 Make_Build_In_Place_Call_In_Assignment,
15557 Make_Build_In_Place_Call_In_Object_Declaration): Call
15558 Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
15559 (Expand_Inlined_Call): If the subprogram is a null procedure, or a
15560 stubbed procedure with a null body, replace the call with a null
15561 statement without using the full inlining machinery, for efficiency
15562 and to avoid invalid values in source file table entries.
15563
15564 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
15565 renamings of calls to build-in-place functions.
15566
15567 * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
15568 provides the functionality of RTE_Available to record components.
15569 (RTU_Entity): The function Entity has been renamed to RTU_Entity
15570 to avoid undesired overloading.
15571 (Entity): New subprogram that returns the entity for the referened
15572 unit. If this unit has not been loaded, it returns Empty.
15573 (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
15574 Remove no longer used entities.
15575 (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
15576 (RE_Type_Specific_Data): New entity.
15577 (RE_Move_Any_Value): New entity.
15578 (RE_TA_A, RE_Get_Any_Type): New entities.
15579 (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
15580 RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
15581 RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
15582 (Entity): New subprogram that returns the entity for the referened
15583 unit. If this unit has not been loaded, it returns Empty.
15584 (RTE): Addition of a new formal that extends the search to the scopes
15585 of the record types found in the chain of the package.
15586
15587 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
15588 "abstract subprograms must be visible" message, whether or not the type
15589 is an interface; that is, remove the special case for interface types.
15590 (Analyze_Function_Return): Remove error message "return of task objects
15591 is not yet implemented" because this is now implemented.
15592 (Create_Extra_Formals): Add the extra master and activation chain
15593 formals in case the result type has tasks.
15594 Remove error message "return of limited controlled objects is not yet
15595 implemented".
15596 (Create_Extra_Formals): Add the extra caller's finalization list formal
15597 in case the result type has controlled parts.
15598 (Process_Formals): In case of access formal types there is no need
15599 to continue with the analysis of the formals if we already notified
15600 errors.
15601 (Check_Overriding_Indicator): Add code to check overriding of predefined
15602 operators.
15603 (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
15604 flags for formals that do not require them,.
15605 (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
15606 hidden entity is use visible or directly visible.
15607 (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
15608 Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
15609 Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
15610 New_Overloaded_Entity): Split Is_Abstract flag into
15611 Is_Abstract_Subprogram and Is_Abstract_Type.
15612
15613 * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
15614 a return statement's finalization list to the caller's list, used for
15615 build-in-place functions with result type with controlled parts.
15616 Remove no longer used entities.
15617
15618 * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
15619 longer needed, because the full type is now limited, and therefore a
15620 pass-by-reference type.
15621 (Foreign_Task_Level): New constant.
15622
15623 * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
15624 move tasks from the activation chain belonging to a return statement to
15625 the one passed in by the caller, and update the master to the one
15626 passed in by the caller.
15627 (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
15628 of unactivated tasks, so we don't kill the ones that are being returned
15629 by a build-in-place function.
15630 (Create_Task): Ignore AI-280 for foreign threads.
15631
156322007-04-06 Ed Schonberg <schonberg@adacore.com>
15633 Robert Dewar <dewar@adacore.com>
15634 Bob Duff <duff@adacore.com>
15635 Gary Dismukes <dismukes@adacore.com>
15636
15637 * errout.adb (Unwind_Internal_Type): Use predicate
15638 Is_Access__Protected_Subprogram_Type.
15639
15640 * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
15641 (Freeze_Entity, packed array case): Do not override explicitly set
15642 alignment and size clauses.
15643 (Freeze_Entity): An entity declared in an outer scope can be frozen if
15644 the enclosing subprogram is a child unit body that acts as a spec.
15645 (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
15646 (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
15647 Remove all code for DSP option
15648
15649 * layout.adb (Layout_Record_Type): Use First/
15650 Next_Component_Or_Discriminant
15651 (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
15652 to handle properly the anonymous access case.
15653
15654 * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
15655 for all access attributes, because overload resolution should work the
15656 same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
15657 causes the error message for the ambiguous "X'Access = Y'Access" and
15658 "X'Unrestricted_Access = Y'Access" and so forth to match.
15659 (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
15660 now that anonymous access to protected operations have their own kind.
15661 (Resolve_Attribute): In case of dispatching call check the violation of
15662 restriction No_Dispatching_Calls.
15663 (Check_Array_Type): Check new -gnatyA array index style option
15664
15665 * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
15666 attempt to derive from a synchronized tagged type.
15667 (Analyze_Type_Declaration): If there is a incomplete tagged view of the
15668 type, inherit the class-wide type already created, because it may
15669 already have been used in a self-referential anonymous access component.
15670 (Mentions_T): Recognize self-referential anonymous access components
15671 that use (a subtype of) the class-wide type of the enclosing type.
15672 (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
15673 Derived_Type for Prev formal on call to
15674 Check_Anonymous_Access_Components rather than Empty.
15675 (Make_Incomplete_Type_Declaration): Add test for case where the type has
15676 a record extension in deciding whether to create a class-wide type,
15677 rather than just checking Tagged_Present.
15678 (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
15679 to stand-alone object declarations as well as component declarations.
15680 (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
15681 prevent accidental overwriting when enclosing package appears in
15682 a limited_with_clause.
15683 (Array_Type_Declaration): If the component type is an anonymous access,
15684 the associated_node for the itype is the type declaration itself.
15685 (Add_Interface_Tag_Components): Modified to support concurrent
15686 types with abstract interfaces.
15687 (Check_Abstract_Interfaces): New subprogram that verifies the ARM
15688 rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
15689 (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
15690 to complete the decoration of synchronized interface types. Add also
15691 a call to Check_Abstract_Interfaces to verify the ARM rules.
15692 (Derive_Interface_Subprograms): Modified to support concurrent types
15693 with abstract interfaces.
15694 (Analyze_Subtype_Indication): Resolve the range with the given subtype
15695 mark, rather than delaying the full resolution depending on context.
15696 (Analyze_Component_Declaration,Analyze_Interface_Declaration,
15697 Analyze_Object_Declaration,Analyze_Subtype_Declaration,
15698 Array_Type_Declaration,Build_Derived_Record_Type,
15699 Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
15700 Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
15701 Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
15702 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
15703 called only when appropriate.
15704 (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
15705 to private type.
15706 (Analyze_Subtype_Declaration): For an access subtype declaration, create
15707 an itype reference for the anonymous designated subtype, to prevent
15708 scope anonmalies in gigi.
15709 (Build_Itype_Reference): New utility, to simplify construction of such
15710 references.
15711
157122007-04-06 Vincent Celier <celier@adacore.com>
15713
15714 * errutil.adb (Initialize): Initialize warnings table, if all warnings
15715 are suppressed, supply an initial dummy entry covering all possible
15716 source locations.
15717
15718 * make.adb (Scan_Make_Arg): Reject options that should start with "--"
15719 and start with only one, such as "-RTS=none".
15720 (Collect_Arguments): Do not check for sources outside of projects.
15721 Do not collect arguments if project is externally built.
15722 (Compile_Sources): Do nothing, not even check if the source is up to
15723 date, if its project is externally built.
15724 (Compile): When compiling a predefined source, add -gnatpg
15725 as the second switch, after -c.
15726 (Compile_Sources): Allow compilation of Annex J renames without -a
15727 (Is_In_Object_Directory): Check if the ALI file is in the object
15728 even if there is no project extension.
15729 (Create_Binder_Mapping_File): Only put a unit in the mapping file for
15730 gnatbind if the ALI file effectively exists.
15731 (Initialize): Add the directory where gnatmake is invoked in front of
15732 the path if it is invoked from a bin directory, even without directory
15733 information, so that the correct GNAT tools will be used when spawned
15734 without directory information.
15735
15736 * makeusg.adb: Change switch -S to -eS
15737 Add lines for new switches -we, -wn and -ws
15738 Add line for new switch -p
15739
15740 * prj-proc.adb (Process): Set Success to False when Warning_Mode is
15741 Treat_As_Error and there are warnings.
15742
15743 * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
15744 -gnatww Change gnatmake switch -S to -eS
15745 (Scan_Make_Switches): Code reorganisation. Process separately multi
15746 character switches and single character switches.
15747 (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
15748 False when switch is not recognized by gnatmake.
15749 (Scan_Make_Switches): Set Setup_Projects True when -p or
15750 --create-missing-dirs is specified.
15751
15752 * fname.adb (Is_Predefined_File_Name): Return True for annex J
15753 renamings Calendar, Machine_Code, Unchecked_Conversion and
15754 Unchecked_Deallocation only when Renamings_Included is True.
15755
15756 * par.adb: Allow library units Calendar, Machine_Code,
15757 Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
15758 when -gnatg is not specified.
15759 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
15760 there is no need to generate always a record_definition_node in case
15761 of synchronized interface types.
15762 (SIS_Entry_Active): Initialize global variable to False
15763 (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
15764 indicate cases where AI-447 says "not null" is legal.
15765
15766 * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
15767
15768 * makegpr.adb (Check_Compilation_Needed): Take into account dependency
15769 files with with several lines starting with the object fileb name.
15770 (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
15771 is specified.
15772 (Initialize): Add the directory where gprmake is invoked in front of the
15773 path, if it is invoked from a bin directory or with directory
15774 information, so that the correct GNAT tools will be used when invoked
15775 directly.
15776 (Check_Compilation_Needed): Process correctly backslashes on Windows.
15777
15778 * vms_data.ads: Update switches/qualifiers
15779
157802007-04-06 Ed Schonberg <schonberg@adacore.com>
15781 Thomas Quinot <quinot@adacore.com>
15782
15783 * exp_aggr.adb:
15784 If the array component is a discriminated record, the array aggregate
15785 is non-static even if the component is given by an aggregate with
15786 static components.
15787 (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
15788 (Convert_Aggr_In_Allocator): If the allocator is for an access
15789 discriminant and the type is controlled. do not place on a finalization
15790 list at this point. The proper list will be determined from the
15791 enclosing object.
15792 (Build_Record_Aggr_Code): If aggregate has box-initialized components,
15793 initialize record controller if needed, before the components, to ensure
15794 that they are properly finalized.
15795 (Build_Record_Aggr_Code): For the case of an array component that has a
15796 corresponding array aggregate in the record aggregate, perform sliding
15797 if required.
15798
157992007-04-06 Javier Miranda <miranda@adacore.com>
15800 Gary Dismukes <dismukes@adacore.com>
15801 Ed Schonberg <schonberg@adacore.com>
15802
15803 * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
15804 run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
15805
15806 * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
15807 accessibility on class-wide allocators if the allocator occurs at the
15808 same scope level as the allocator's type. The check is guaranteed to
15809 succeed in that case, even when the expression originates from a
15810 parameter of the containing subprogram.
15811 (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
15812 under No_Dispatching_Calls restriction. During the semantic analysis
15813 we already notified such violation.
15814 (Tagged_Membership): Constant folding. There is no need to check
15815 the tag at run-time if the type of the right operand is non
15816 class-wide abstract.
15817 Replace call to Is_Ancestor by call to Is_Parent
15818 to support concurrent types with interface types.
15819 (Expand_N_Allocator): Add an assertion associated with the generation
15820 of the master_id.
15821 (Expand_N_Slice): Do not enable range check to nodes associated
15822 with the frontend expansion of the dispatch table.
15823 (Is_Local_Access_Discriminant): Subsidiary function to
15824 Expand_N_Allocator.
15825 (Tagged_Membership): Replace generation of call to the run-time
15826 subprogram CW_Membership by call to Build_CW_Membership.
15827 (Expand_Allocator_Expression): Replace generation of call to the
15828 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
15829
15830 * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
15831 initialize most the TSD components by means of an aggregate.
15832 Modify the declaration of the object containing the TSD
15833 because we now expand code that has a higher level of abstraction.
15834 The TSD has a discriminant containing the Inheritance Depth Level,
15835 value that is used in the membership test but also to fix the size
15836 of the table of ancestors.
15837 (Expand_Interface_Conversion): Insert function body at the closest place
15838 to the conversion expression, to prevent access-before-elaboration
15839 errors in the backend.
15840 Code improved to reduce the size of the dispatch table if
15841 compiling under restriction No_Dispatching_Calls plus code cleanup.
15842 Code reorganization plus removal of calls to Set_Num_Prim_Ops
15843 (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
15844 (Expand_Dispatching_Call): Minor code reorganization plus addition of
15845 code to return immediately if compiling under No_Dispatching_Calls
15846 restriction.
15847 (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
15848 CPP_Virtual and CPP_Vtable are no longer supported.
15849 (Expand_Interface_Conversion): Add missing support for interface type
15850 derivations.
15851 (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
15852 Is_Parent to support concurrent types with interfaces.
15853 (Init_Predefined_Interface_Primitives): Removed.
15854 (Make_Secondary_DT): Modified to support concurrent record types.
15855 (Set_All_DT_Position): Modified to support concurrent record types.
15856 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
15857 with Get_External_Tag, Inherit_TSD, Set_External_Tag.
15858 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
15859 with CW_Membership.
15860 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
15861 with Get_Access_Level, Get_Predefined_Prim_Op_Address,
15862 Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
15863 Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
15864 Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
15865 (Expand_Dispatching_Call): Replace generation of call to the run-time
15866 subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
15867 calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
15868 Address.
15869 (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
15870 the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
15871 Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
15872 Build_Set_Prim_Op_Address.
15873 (Get_Remotely_Callable): Subprogram removed.
15874 (Init_Predefined_Interface_Primitives): Replace generation of call to
15875 the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
15876 Prims.
15877
15878 * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
15879 First (Parameter_Associations ()) with the call to First_Actual that
15880 returns an actual parameter expression for both named and positional
15881 associations.
15882
15883 * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
15884 check violation of restriction No_Dispatching_Calls.
15885 (Check_Controlling_Type): A formal of a tagged incomplete type is a
15886 controlling argument.
15887
15888 * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
15889 First/Next_Component_Or_Discriminant
15890 (Insert_Actions): Add entries for new N_Push and N_Pop nodes
15891 (Find_Implemented_Interface): Removed. All the calls to this subprogram
15892 specify Any_Limited_Interface, and this functionality is already
15893 provided by the function Has_Abstract_Interfaces.
15894 (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
15895 support concurrent types implementing interfaces.
15896 (Find_Implemented_Interface): Removed. All the calls to this subprogram
15897 specify kind Any_Limited_Interface, and this functionality is already
15898 provided by the function Has_Abstract_Interfaces.
15899 (Remove_Side_Effects): replace Controlled_Type by
15900 CW_Or_Controlled_Type whenever the issue is related to
15901 using or not the secondary stack.
15902
15903 * par-ch12.adb (P_Formal_Type_Definition): Update calls to
15904 P_Interface_Type_Definition to fulfill the new interface (the formal
15905 Is_Synchronized is no longer required).
15906
15907 * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
15908 Update dependencies.
15909
15910 * exp_atag.ads, exp_atag.adb: New file
15911
159122007-04-06 Ed Schonberg <schonberg@adacore.com>
15913 Bob Duff <duff@adacore.com>
15914 Cyrille Comar <comar@adacore.com>
15915
15916 * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
15917 anonymous, use finalization list of enclosing dynamic scope.
15918 (Expand_N_Package_Declaration): For a library package declaration
15919 without a corresponding body, generate RACW subprogram bodies in the
15920 spec (just as we do for the task activation call).
15921 (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
15922 Is_Abstract_Type. Make sure these are called only when appropriate.
15923 Remove all code for DSP option
15924 (CW_Or_Controlled_Type): new subprogram.
15925
9e94c78f 159262007-04-06 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
15927 Ed Schonberg <schonberg@adacore.com>
15928 Gary Dismukes <dismukes@adacore.com>
15929
15930 * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
15931 parameter. If it is set to true, return a result capped according to
15932 the global upper bound for the index of an entry family.
15933 (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
15934 (Build_Find_Body_Index): Adjust for above change.
15935 (Entry_Index_Expression): Likewise.
15936 (Is_Potentially_Large_Family): New function extracted from...
15937 (Collect_Entry_Families): ...here. Call it to detect whether the family
15938 is potentially large.
15939 (Build_Entry_Count_Expression): If the family is potentially large, call
15940 Family_Size with 'Cap' set to true.
15941 (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
15942 a protected version of an operation declared in the private part of
15943 a protected object, because they may be invoked through a callback.
15944 (Set_Privals): If the type of a private component is an anonymous access
15945 type, do not create a new itype for each protected body.
15946 If the body of a protected operation creates
15947 controlled types (including allocators for class-widetypes), the
15948 body of the corresponding protected subprogram must include a
15949 finalization list.
15950 (Build_Activation_Chain_Entity): Build the chain entity for extended
15951 return statements.
15952 (Type_Conformant_Parameters): Use common predicate Conforming_Types
15953 to determine whether operation overrides an inherited primitive.
15954 (Build_Wrapper_Spec): Add code to examine the parents while looking
15955 for a possible overriding candidate.
15956 (Build_Simple_Entry_Call): Set No_Initialization on the object used to
15957 hold an actual parameter value since its initialization is separated
15958 from the the declaration. Prevents errors on null-excluding access
15959 formals.
15960
159612007-04-06 Thomas Quinot <quinot@adacore.com>
8a57e48f 15962 Pablo Oliveira <oliveira@adacore.com>
4b437c6b
AC
15963
15964 * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
15965 Do an Unchecked_Conversion to handle the passage from the Underlying
15966 Type to the Base Type when calling Build_To_Any_Call and
15967 Build_From_Any_Call.
15968 (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
15969 E_Constant, depending upon Variable formal.
15970 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
15971 PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
15972 parameter that requires an extra constrained parameter, declare
15973 temporary for actual as a variable, not a constant.
15974 (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
15975 the unit being compiled is the one that contains the stub type.
15976 Change primitive operation name for the RACW associated with a RAS
15977 from Call to _Call so it cannot clash with any legal identifier.
15978 (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
15979 Is_RAS.
15980 (Append_RACW_Bodies): New subprogram.
15981 (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
15982 Add_Receiving_Stubs_To_Declarations functions.
15983 When expanding a package body, this list correspond to the
15984 statements in the HSS at the end of the pacakge.
15985 When expanding a package spec, this list correspond to the
15986 spec declarations.
15987 (Add_Receiving_Stubs_To_Declarations): Append the function
15988 registering the receiving stubs at the end of the 'Stmts' list.
15989 (RCI_Package_Locator): Pass the new Version generic formal when
15990 instantiating a RCI_Locator package.
15991 (Build_From_Any_Function): To compute the High bound for an
15992 unconstrained array actual, we add the Low bound with the length.
15993 Thus we must convert the low bound and the length to an appropriate
15994 type before doing the sum.
15995 (Build_Subprogram_Receiving_Stubs, PolyORB):
15996 * Retrieve the extra formals parameters at the
15997 end of the parameter stream.
15998 * Use Move_Any_Value to write back out parameters
15999 after executing the request as it is more efficient
16000 than Copy_Any_Value.
16001 * Build the any containing Extra Formals with the
16002 appropriate typecode.
16003 (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
16004 empty Component_List.
16005 (Build_Actual_Object_Declaration): New subprogram. Build and insert into
16006 the tree the declaration for an object that serves as actual parameter
16007 in server-side stubs.
16008 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
16009 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
16010 Use Build_Actual_Object_Declaration to prepare the actuals.
16011 (Add_Parameter_To_NVList): Set the parameter mode to In for
16012 Extra Constrained Parameters.
16013 (Build_General_Calling_Stubs): Set the parameter type to boolean for
16014 Extra Constrained parameters.
16015 (Build_To_Any_Function, Build_From_Any_Function,
16016 Built_TypeCode_Function): When Typ is implicit, call the correct
16017 function with the first not implicit parent type.
16018 (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
16019 (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
16020 typecode from the Etype. Therefore we retrieve the correct typecode
16021 with a call to Get_Any_Type.
16022 (Copy_Specification): Do controlling formal type substitution based on
16023 Is_Controlling_Formal flag, instead of caller-provided object type.
16024 (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
16025 a RACW primitive operation, we might get a subprogram declaration for an
16026 ancestor of the RACW designated type (not for the designated type
16027 itself), in the case where this operation is inherited. In this case we
16028 have no easy means of determining the original tagged type for which
16029 the primitive was declared, so instead we now rely on
16030 Copy_Specification to use the Is_Controlling_Formal flag to determine
16031 which formals require type substitution.
16032
160332007-04-06 Robert Dewar <dewar@adacore.com>
16034 Ed Schonberg <schonberg@adacore.com>
16035
16036 * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
16037 GNAT.Current_Exception are not allowed if pragma Restrictions
16038 (No_Exception_Propagation) is set and in any case make the associated
16039 handler unsuitable as a target for a local raise statement.
16040 (Expand_Dispatching_Constructor_Call): Replace generation of call to the
16041 run-time subprogram CW_Membership by call to Build_CW_Membership.
16042 (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
16043 by a function call, a temporary must be created before expanding the
16044 Constructor_Call itself, to prevent out-of-order elaboration in the
16045 back-end when stack checking is enabled..
16046
160472007-04-06 Ed Schonberg <schonberg@adacore.com>
16048
16049 * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
16050 result are the bounds of the left operand, not the right.
16051
160522007-04-06 Ed Schonberg <schonberg@adacore.com>
16053
16054 * exp_strm.adb
16055 (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
16056 discriminant defaults.
16057 (Build_Record_Or_Elementary_Output_Procedure): Ditto.
16058 (Make_Component_List_Attributes): Ditto.
16059
160602007-04-06 Ed Schonberg <schonberg@adacore.com>
16061 Bob Duff <duff@adacore.com>
16062
16063 * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
16064 an association with a box as providing a value even though the
16065 initialization procedure for the type is not available.
16066 (Resolve_Record_Aggregate): Check that a choice of an association with a
16067 box corresponds to a component of the type.
16068 (Resolve_Record_Aggregate): Split Is_Abstract flag into
16069 Is_Abstract_Subprogram and Is_Abstract_Type.
16070
16071 * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
16072 assert.
16073
16074 * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
16075 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
16076 called only when appropriate.
16077
160782007-04-06 Olivier Hainque <hainque@adacore.com>
16079
16080 * g-alleve.ads (Low Level Vector type definitions): Map each to the
16081 associated vector view instead of all to the unsigned char view.
16082
16083 * g-altcon.adb (Generic_Conversions): New internal generic package,
16084 offering facilities for all the Vector/View conversion routines
16085 implemented by this unit.
16086 (To_View/To_Vector - all versions): Reimplemented in a systematic
16087 manner, using the internal Generic_Conversions facilities.
16088
160892007-04-06 Pascal Obry <obry@adacore.com>
16090
16091 * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
16092 string.
16093 (Create): Free the source string before storing the new one.
16094
160952007-04-06 Vincent Celier <celier@adacore.com>
16096
16097 * g-debpoo.adb (Validity): New package with a complete new
16098 implementation of subprograms Is_Valid and Set_Valid.
16099 (Is_Valid): Move to local package Validity
16100 (Set_Valid): Move to local package Validity
16101
161022007-04-06 Arnaud Charlet <charlet@adacore.com>
8a57e48f 16103 Pablo Oliveira <oliveira@adacore.com>
4b437c6b
AC
16104
16105 * g-expect.adb (Get_Command_Output): When expanding the output buffer
16106 we must ensure that there is enough place for the new data we are going
16107 to copy in.
16108
161092007-04-06 Thomas Quinot <quinot@adacore.com>
16110
16111 * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
16112 computation.
16113
161142007-04-06 Jose Ruiz <ruiz@adacore.com>
16115 Vincent Celier <celier@adacore.com>
16116
16117 * gnatcmd.adb (B_Start): Add prefix of binder generated file.
16118 (Stack_String): Add this String that contains the name of the Stack
16119 package in the project file.
16120 (Packages_To_Check_By_Stack): Add this list that contains the packages
16121 to be checked by gnatstack, which are the naming and the stack packages.
16122 (Check_Files): If no .ci files were specified for gnatstack we add all
16123 the .ci files belonging to the projects, including binder generated
16124 files.
16125 (Non_VMS_Usage): Document that gnatstack accept project file switches.
16126 (GNATCmd): Update the B_Start variable if we are in a VMS environment.
16127 Add gnatstack to the list of commands that use project file related
16128 switches, and get the single attribute Switches from the stack package
16129 in a project file when calling gnatstack. Parse the -U flag for
16130 processing files belonging to all projects in the project tree.
16131 Remove all processing for command Setup
16132
16133 * prj-attr.adb: Add new package Stack with single attribute Switches
16134
16135 * vms_conv.ads (Command_Type): Add command Stack.
16136 Move to body declarations that are only used in the body: types Item_Id,
16137 Translation_Type, Item_Ptr, Item and its subtypes.
16138
16139 * vms_conv.adb: (Initialize): Add data for new command Stack.
16140 Add declarations moved from the spec: types Item_Id, Translation_Type,
16141 Item_Ptr, Item and its subtypes.
16142 (Cargs_Buffer): New table
16143 (Cargs): New Boolean global variable
16144 (Process_Buffer): New procedure to create arguments
16145 (Place): Put character in table Buffer or Cargs_Buffer depending on the
16146 value of Cargs.
16147 (Process_Argument): Set Cargs when processing qualifiers for GNAT
16148 COMPILE
16149 (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
16150 empty, for table Cargs_Buffer.
16151 (Initialize): Remove component Setup in Command_List
16152
161532007-04-06 Vincent Celier <celier@adacore.com>
16154
16155 * gprep.adb (Process_Files.Process_One_File): Use full file name when
16156 issuing pragma Source_Reference.
16157
161582007-04-06 Emmanuel Briot <briot@adacore.com>
16159
16160 * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
16161 [[:xdigit:]] character class.
16162 Also raise an exception when an invalid character class is used.
16163
161642007-04-06 Pascal Obry <obry@adacore.com>
16165
16166 * i-cstrea.ads: (fopen): Add encoding parameter.
16167 (freopen): Idem.
16168 Change reference from a-sysdep.c to sysdep.c in comment.
16169 Update copyright notice.
16170 This set of patch add support for the encoding form parameter.
16171
16172 * mingw32.h (S2WSU): New macro to convert from a string to a
16173 wide-string using the UTF-8 encoding. The S2WS macro supports now only
16174 standard 8bits encoding.
16175 (WS2SU): As above but converting from wide-sring to string.
16176 This is needed as it is necessary to have access to both versions in the
16177 runtime for the form parameter encoding support.
16178 This set of patch add support for the encoding form parameter.
16179 (S2WS): Improve implementation to handle cases where the filename is not
16180 UTF-8 encoded. In this case we default to using the current code page
16181 for the conversion.
16182
16183 * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
16184 type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
16185 the constants defined in adaint.h.
16186 (fopen): Add encoding parameter.
16187 (freopen): Idem.
16188
16189 * s-ficobl.ads (AFCB): Add Encoding field to record the filename
16190 encoding. This is needed for the Reset routine (freopen low level-call).
16191
16192 * s-fileio.adb (Open): Decode encoding form parameter and set the
16193 corresponding encoding value into AFCB structure.
16194 (Reset): Pass the encoding value to freopen.
16195 (Close): Move the call to Lock_Task to the beginning of the procedure.
16196
161972007-04-06 Geert Bosch <bosch@adacore.com>
16198 Robert Dewar <dewar@adacore.com>
16199
16200 * i-fortra.ads: Add Double_Complex type.
16201
16202 * impunit.adb: (Is_Known_Unit): New function
16203 Add Gnat.Byte_Swapping
16204 Add GNAT.SHA1
16205 Add new Ada 2005 units
16206 Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
16207 Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
16208 Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
16209 Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
16210
16211 * impunit.ads (Is_Known_Unit): New function
16212
16213 * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
16214 a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
16215 a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
16216 g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
16217 s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
16218 s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
16219 New files.
16220
16221 * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
16222
16223 * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
16224
9e94c78f 162252007-04-06 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
16226 Arnaud Charlet <charlet@adacore.com>
16227
16228 * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
16229 __gnat_adjust_context_for_raise.
16230 (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
16231 implementation of floating point operations as native x86 targets.
16232 So the FPU should be initialized in the same way using finit. Fix
16233 floating point operations accuracy issues.
16234 (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
16235 member in struct sigaction, so as to avoid warning for incompatible
16236 pointer types.
16237
9e94c78f 162382007-04-06 Serguei Rybin <rybin@adacore.com>
4b437c6b
AC
16239
16240 * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
16241 switches from previously loaded tree
16242
162432007-04-06 Thomas Quinot <quinot@adacore.com>
16244
16245 * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
16246 cases where a given dependency has a body or not.
16247 (Write_With_File_Names): New subprogram, common code for the two cases
16248 above.
16249
162502007-04-06 Ed Schonberg <schonberg@adacore.com>
16251 Javier Miranda <miranda@adacore.com>
16252
9e81dbc7 16253 * lib-xref.ads, lib-xref.adb:
4b437c6b
AC
16254 Modify the loop that collects type references, to include interface
16255 types that the type implements. List each of these interfaces when
16256 building the entry for the type.
16257 (Generate_Definition): Initialize component Def and Typ of new entry
16258 in table Xrefs, to avoid to have these components unitialized.
16259 (Output_References): Split Is_Abstract flag into
16260 Is_Abstract_Subprogram and Is_Abstract_Type.
16261 (Generate_Reference): Add barrier to do not generate the warning
16262 associated with Ada 2005 entities with entities generated by the
16263 expander.
16264
162652007-04-06 Robert Dewar <dewar@adacore.com>
16266 Arnaud Charlet <charlet@adacore.com>
16267 Vincent Celier <celier@adacore.com>
16268
16269 * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
16270 Update 'Exception Handling Control' chapter which was outdated.
16271 Minor fix to documentation of -gnatwq
16272 Remove section "Adapting the Run Time to a New C++ Compiler" because
16273 it is now obsolete.
16274 Add passage on need of -nostart-files in some non-ada-main cases.
16275 Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
16276 Update documentation about Interfacing with C++
16277 Add documentation for new gnatmake switch -p
16278 Add missing protocol part in URLs.
16279 Document -gnatyA
16280 Document pragma Compile_Time_Error
16281 Add documentation for Object_Size indicating that stand alone
16282 objects can have a larger size in some cases.
16283 Add node for GNAT.Byte_Swapping, GNAT.SHA1
16284 Update reference to the Ravenscar profile.
16285 Document pragma Unreferenced_Objects
16286
16287 * gnat-style.texi: Fix typo
16288
162892007-04-06 Vincent Celier <celier@adacore.com>
16290
16291 * mlib.adb (Building_Library): Only output "building a library..." in
16292 verbose mode
16293
16294 * mlib-prj.adb (Build_Library): Only output lists of object and ALI
16295 files in verbose mode.
16296
16297 * mlib-utl.adb (Ar): Only output the first object files when not in
16298 verbose mode.
16299 (Gcc): Do not display all the object files if not in verbose mode, only
16300 the first one.
16301
163022007-04-06 Robert Dewar <dewar@adacore.com>
16303
16304 * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
16305 it no longer destroys the contents of Name_Buffer or Name_Len and
16306 non-standard and invalid names are handled better.
16307 (Get_Decoded_Name_String): Improve performance by using
16308 Name_Has_No_Encodings flag in the name table.
16309 (Is_Valid_Name): New function to determine whether a Name_Id is valid.
16310 Used for debugging printouts.
16311
163122007-04-06 Robert Dewar <dewar@adacore.com>
16313 Javier Miranda <miranda@adacore.com>
16314 Bob Duff <duff@adacore.com>
16315
16316 * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
16317 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
16318 there is no need to generate always a record_definition_node in case
16319 of synchronized interface types.
16320 (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
16321 (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
16322 illegal in Ada 95, in cases where it is legal. Change the warnings to
16323 errors in other cases. Don't give the error unless the "not null"
16324 parses properly. Correct the source position at which the error occurs.
16325 (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
16326 P_Null_Exclusion, to suppress "not null" warnings.
16327 (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
16328 associated goto statements.
16329
16330 * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
16331 of END RECORD
16332
16333 * scans.ads (Type_Token_Location): New flag
16334
16335 * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
16336 (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
16337 P_Null_Exclusion, to suppress "not null" warnings.
16338
163392007-04-06 Robert Dewar <dewar@adacore.com>
16340 Javier Miranda <miranda@adacore.com>
16341 Bob Duff <duff@adacore.com>
16342 Vincent Celier <celier@adacore.com>
16343
16344 * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
16345 (Extensions_Allowed): No longer sets Ada_Version
16346 Entry for pragma Unreferenced_Objects
16347
16348 * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
16349 system.tasking if pragma priority used in a procedure
16350 (Analyze_Pragma, case Warning): Handle dot warning switches
16351 (Process_Compile_Time_Warning_Or_Error): New procedure
16352 (Analyze_Pragma): Add processing for Compile_Time_Error
16353 Add support for extra arguments External_Name and Link_Name.
16354 Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
16355 (Process_Import_Or_Interface): Add support for the use of pragma Import
16356 with tagged types.
16357 (Extensions_Allowed): No longer affects Ada_Version
16358 (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
16359 Is_Abstract_Type. Make sure these are called only when appropriate.
16360 Add processing for pragma Unreferenced_Objects
16361
16362 * snames.h, snames.ads, snames.adb: Add entry for pragma
16363 Compile_Time_Error
16364 Add new standard name Minimum_Binder_Options for new gprmake
16365 Add new standard names for gprmake: Archive_Suffix,
16366 Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
16367 Library_Support, Library_Version_Options,
16368 Shared_Library_Minimum_Options,
16369 Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
16370 Change Name_Call to Name_uCall so that it cannot clash with a legal
16371 subprogram name.
16372 Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
16373 Append C_Plus_Plus to convention identifiers as synonym for CPP
16374 Add new standard names Stack and Builder_Switches
16375 Add new standard names: Compiler_Minimum_Options, Global_Config_File,
16376 Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
16377 Run_Path_Option, Toolchain_Version.
16378 Entry for pragma Unreferenced_Objects
16379
16380 * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
16381 switches, without repetition of "eD". Make sure that last character of
16382 -gnatep= switch is not taken as -gnat switch character.
16383 Complete rewrite of circuit for handling saving compilation options
16384 Occasioned by need to support dot switchs for -gnatw, but cleans up
16385 things in general.
16386 -gnatX does not affect Ada_Version
16387 Include -gnatyA in -gnatg style switches
16388
16389 * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
16390 warnings on return objects.
16391 (Warn_On_Useless_Assignment): Exclude warnings on return objects
16392 (Set_Dot_Warning_Switch): New procedure
16393 (Check_References): Add missing case of test for
16394 Has_Pragma_Unreferenced_Objects
16395 (Output_Unreferenced_Messages): Implement effect of new pragma
16396 Unreferenced_Objects, remove special casing of limited controlled
16397 variables.
16398
163992007-04-06 Vincent Celier <celier@adacore.com>
16400
16401 * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
16402 the default project path, initially done during elaboration of the
16403 package.
16404 If the prefix returned by Sdefault is null, get the prefix from a call
16405 to Executable_Prefix_Path.
16406 (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
16407 null.
16408
16409 * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
16410 canonical directory name to open the directory from which files are
16411 retrieved.
16412 (Record_Other_Sources): Idem.
16413 (Locate_Directory): Add the possibility to create automatically missing
16414 directories when Setup_Projects is True.
16415 Call Locate_Directory so that the directory will be created when
16416 Setup_Projects is True, for object dir, library dir, library ALI dir,
16417 library source copy dir and exec dir.
16418
16419 * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
16420 versions of GNAT.
16421
164222007-04-06 Robert Dewar <dewar@adacore.com>
16423
16424 * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
16425 Use First/Next_Component_Or_Discriminant
16426 (Analyze_Record_Representation_Clause):
16427 Use First/Next_Component_Or_Discriminant
16428 (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
16429 (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
16430 definition if type is unconstrained.
16431 (Adjust_Record_For_Reverse_Bit_Order): New procedure
16432 (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
16433 Is_Abstract_Subprogram and Is_Abstract_Type.
16434 (Adjust_Record_For_Reverse_Bit_Order): New procedure
16435
16436 * repinfo.adb (List_Record_Info): Use First/
16437 Next_Component_Or_Discriminant.
16438
16439 * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
16440 New procedure.
16441
16442 * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
16443 Include -gnatyA in default switches
16444
16445 * opt.ads: (Warn_On_Non_Local_Exception): New flag
16446 (Warn_On_Reverse_Bit_Order): New flag
16447 (Extensions_Allowed): Update the documentation.
16448 (Warn_On_Questionable_Missing_Parens): Now on by default
16449
16450 * usage.adb: Add documentation of -gnatw.x/X switches
16451 Document new -gnatyA style switch
16452 -gnatq warnings are on by default
16453
164542007-04-06 Ed Falis <falis@adacore.com>
16455
16456 * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
16457 full word is no longer compared twice.
16458
164592007-04-06 Ed Schonberg <schonberg@adacore.com>
16460
16461 * sem_ch10.adb (Install_Limited_Context_Clauses.
16462 Expand_Limited_With_Clause): Use a new copy of selector name in the
16463 call to Make_With_Clause. This fixes the tree structure for ASIS
16464 purposes. Nothing is changed in the compiler behaviour.
16465 (Process_Body_Clauses): Handle properly use clauses whose prefix is
16466 a package renaming.
16467 (Install_Limited_With_Clauses): Do not install non-limited view when it
16468 is still incomplete.
16469
164702007-04-06 Ed Schonberg <schonberg@adacore.com>
16471 Gary Dismukes <dismukes@adacore.com>
16472
16473 * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
16474 when capturing size information, instead of base type, which for a
16475 formal array type will be the unconstrained type.
16476 (Analyze_Formal_Object_Declaration): Add check for illegal default
16477 expressions for a formal in object of a limited type.
16478 (Instantiate_Object): Ditto.
16479 (Check_Formal_Package_Instance): Skip entities that are formal objects,
16480 because they were defaulted in the formal package and no check applies
16481 to them.
16482 (Check_Formal_Package_Instance): Extend conformance check to other
16483 discrete types beyond Integer.
16484 (Process_Default): Copy directly the unmatched formal. A generic copy
16485 has already been performed in Analyze_Formal_Package.
16486 (Analyze_Associations): If a formal subprogram has no match, check for
16487 partial parametrization before looking for a default, to prevent
16488 spurious errors.
16489 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
16490 not set the instantiation environment before analyzing the actuals.
16491 Fixes regression on 8515-003 with implementation of AI-133.
16492 Set_Instance_Env checks whether the generic unit is a predefined
16493 unit, in which case the instance must be analyzed with the latest Ada
16494 mode. This setting must take place after analysis of the actuals,
16495 because the actuals must be analyzed and frozen in the Ada mode extant
16496 outside of the current instantiation.
16497 (Save_Env, Restore_Env): Preserve and restore the configuration
16498 parameters so that predefined units can be compiled in the proper Ada
16499 mode.
16500 (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
16501 Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
16502 and Is_Abstract_Type.
16503 (Analyze_Formal_Package): For better error recovery, Add exception
16504 handler to catch Instantion_Error, which can be raised in
16505 Analyze_Associations
16506
165072007-04-06 Ed Schonberg <schonberg@adacore.com>
16508 Bob Duff <duff@adacore.com>
16509 Gary Dismukes <dismukes@adacore.com>
16510
16511 * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
16512 prefix type is a discriminated subtype of the type of the formal.
16513 (Analyze_Allocator): Collect all coextensions regardless of the context.
16514 Whether they can be allocated statically is determined in exp_ch4.
16515 (Analyze_Selected_Component): If the prefix is a limited view and the
16516 non-limited view is available, use the non-limited one.
16517 (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
16518 therefore illegal), suggest a qualified expression rather than a type
16519 conversion, because a type conversion would be illegal in this context.
16520 (Anayze_Allocator): Trace recursively all nested allocators so that all
16521 coextensions are on the corresponding list for the root. Do no mark
16522 coextensions if the root allocator is within a declaration for a stack-
16523 allocated object, because the access discriminants will be allocated on
16524 the stack as well.
16525 (Analyze_Call): Remove restriction on calls to limited functions for the
16526 cases of generic actuals for formal objects, defaults for formal objects
16527 and defaults for record components.
16528 (Analyze_Allocator): Before analysis, chain coextensions on the proper
16529 element list. Their expansion is delayed until the enclosing allocator
16530 is processed and its finalization list constructed.
16531 (Try_Primitive_Operation): If the prefix is a concurrent type, looks
16532 for an operation with the given name among the primitive operations of
16533 the corresponding record type.
16534 (Analyze_Selected_Component): If the prefix is a task type that
16535 implements an interface, and there is no entry with the given name,
16536 check whether there is another primitive operation (e.g. a function)
16537 with that name.
16538 (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
16539 properly the indexing of a function call written in prefix form, where
16540 the function returns an array type, and all parameters of the function
16541 except the first have defaults.
16542 (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
16543 the original operands, rather than relocating them, for efficiency and
16544 to work properly when an operand is overloaded.
16545 (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
16546 Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
16547 (Analyze_Selected_Component): If the prefix is a private extension, only
16548 scan the visible components, not those of the full view.
16549 (Try_Primitive_Operation): If the operation is a procedure, collect all
16550 possible interpretations, as for a function, because in the presence of
16551 classwide parameters several primitive operations of the type can match
16552 the given arguments.
16553
165542007-04-06 Ed Schonberg <schonberg@adacore.com>
16555 Robert Dewar <dewar@adacore.com>
16556
16557 * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
16558 tag-indeterminate call to an abstract function, when the left-hand side
16559 is not classwide.
16560 (Analyze_Loop_Statement): Improve detection of infinite loops
16561
165622007-04-06 Ed Schonberg <schonberg@adacore.com>
16563 Thomas Quinot <quinot@adacore.com>
16564
16565 * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
16566 out of Analyze_Package_Declaration, because processing must be applied
16567 to package bodies as well, for deferred constants completed by pragmas.
16568 (Analyze_Package_Declaration): When the package declaration being
16569 analyzed does not require an explicit body, call Check_Completion.
16570 (May_Need_Implicit_Body): An implicit body is required when a package
16571 spec contains the declaration of a remote access-to-classwide type.
16572 (Analyze_Package_Body): If the package contains RACWs, append the
16573 pending subprogram bodies generated by exp_dist at the end of the body.
16574 (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
16575 Is_Abstract_Subprogram and Is_Abstract_Type.
16576 (Preserve_Full_Attributes): The full entity list is not an attribute
16577 that must be preserved from full to partial view.
16578
9e81dbc7
AS
16579 * sem_dist.adb (Add_RAS_Dereference_TSS):
16580 Change primitive name to _Call so it cannot clash with any legal
16581 identifier, and be special-cased in Check_Completion.
16582 Mark the full view of the designated type for the RACW associated with
16583 a RAS as Comes_From_Source to get proper view switching when installing
16584 private declarations.
16585 Provite a placeholder nested package body along with the nested spec
16586 to have a place for Append_RACW_Bodies to generate the calling stubs
16587 and stream attributes.
4b437c6b
AC
16588
165892007-04-06 Ed Schonberg <schonberg@adacore.com>
16590 Robert Dewar <dewar@adacore.com>
16591
16592 * sem_ch8.adb (Has_Components): If the argument is an incomplete type
16593 that is a limited view, check the non-limited view if available.
16594 (Undefined): Refine error message for missing with of Text_IO
16595 (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
16596 to distinguish real missing with cases.
16597 Fix format of all missing with messages
16598 (Analyze_Subprogram_Renaming): Emit proper error message on illegal
16599 renaming as body when renamed entity is abstract.
16600
166012007-04-06 Ed Schonberg <schonberg@adacore.com>
16602 Javier Miranda <miranda@adacore.com>
16603
16604 * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
16605 predicate recursive, to handle complex expressions on literals whose
16606 spurious ambiguity comes from the abstract interpretation of some
16607 subexpression.
16608 (Interface_Present_In_Ancestor): Add support to concurrent record
16609 types.
16610 (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
16611 Is_Abstract_Subprogram and Is_Abstract_Type.
16612
166132007-04-06 Ed Schonberg <schonberg@adacore.com>
16614 Javier Miranda <miranda@adacore.com>
16615
16616 * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
16617 dereference of a local object R created as a reference to another
16618 object O, use the access level of O.
16619 (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
16620 rather than local Same_Formal_Type, to check whether protected operation
16621 overrides an inherited one.
16622 (Same_Formal_Type): New predicate, used when matching signatures of
16623 overriding synchronized operations, to handle the case when a formal
16624 has a type that is a generic actual.
16625 (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
16626 predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
16627 (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
16628 syntactic ambiguities involving indexing of function calls that return
16629 arrays.
16630 (Abstract_Interface_List): New subprogram that returns the list of
16631 abstract interfaces associated with a concurrent type or a
16632 concurrent record type.
16633 (Interface_Present_In_Parent): New subprogram used to check if a
16634 given type or some of its parents implement a given interface.
16635 (Collect_Abstract_Interfaces): Add support for concurrent types
16636 with interface types.
16637 (Has_Abstract_Interfaces): Add support for concurrent types with
16638 interface types.
16639 (Is_Parent): New subprogram that determines whether E1 is a parent
16640 of E2. For a concurrent type its parent is the first element of its
16641 list of interface types; for other types this function provides the
16642 same result than Is_Ancestor.
16643 (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
16644 (Collect_Synchronized_Interfaces): Removed because the subprogram
16645 Collect_Abstract_Interfaces provides this functionality.
16646 (Collect_Abstract_Interfaces): Minor update to give support to
16647 concurrent types and thus avoid undesired code duplication.
16648 (Get_Subprogram_Entity): Handle entry calls.
16649 (May_Be_Lvalue): Include actuals that appear as in-out parameters in
16650 entry calls.
16651 (Enter_Name): Do not give -gnatwh hiding warning for record component
16652 entities, they never result in hiding.
16653
166542007-04-06 Ed Schonberg <schonberg@adacore.com>
16655 Robert Dewar <dewar@adacore.com>
16656
16657 * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
16658 to chain nested components that are allocators for access discriminants
16659 of the enclosing object.
16660 Add N_Push and N_Pop nodes
16661 New field Exception_Label added
16662 (Local_Raise_Statements): New field in N_Exception_Handler_Node
16663 (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
16664 (Is_Coextension): New flag for allocators, to mark allocators that
16665 correspond to access discriminants of dynamically allocated objects.
16666 (N_Block_Statement): Document the fact that the corresponding entity
16667 can be an E_Return_Statement.
16668 (Is_Coextension): New flag for allocators.
16669 Remove all code for DSP option
16670
16671 * sprint.ads, sprint.adb: Display basic information for class_wide
16672 subtypes. Add handling of N_Push and N_Pop nodes
16673
166742007-04-06 Arnaud Charlet <charlet@adacore.com>
16675
16676 * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
16677 before propagating exception.
16678
166792007-04-06 Olivier Hainque <hainque@adacore.com>
16680
16681 * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
16682 an address always within the call instruction from a return address.
16683
166842007-04-06 Olivier Hainque <hainque@adacore.com>
9e94c78f 16685 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
16686
16687 * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
16688 expression with a COMPOUND_EXPR including the call instead of emitting
16689 the call directly here.
16690 (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
16691 high bound is constant and the slice is empty. Tidy.
16692 (tree_transform, case N_Op_Not): Handle properly the case where the
16693 operation applies to a private type whose full view is a modular type.
16694 (Case_Statement_To_gnu): If an alternative is an E_Constant with an
16695 Address_Clause, use the associated Expression as the GNAT tree
16696 representing the choice value to ensure the corresponding GCC tree is
16697 of the proper kind.
16698 (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
16699 instead of just the operands, as the base GCC stabilize_reference does.
16700 <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
16701 requested; otherwise fail.
16702 (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
16703
167042007-04-06 Thomas Quinot <quinot@adacore.com>
16705
16706 * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
16707 implementation of UI_Div.
16708 (UI_Div): Reimplement as a call to UI_Div_Rem.
16709 (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
16710 remainder, avoiding the cost of a multiplication and a subtraction.
16711 (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
16712 provides both quotient and remainder in a single computation.
16713 (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
16714 functions for uint.
16715 (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
16716 is undefined if the given n is not inversible.
16717
167182007-04-06 Olivier Hainque <hainque@adacore.com>
16719
16720 * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
16721 BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
16722 opcodes.
16723
9e94c78f 167242007-04-06 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
16725 Olivier Hainque <hainque@adacore.com>
16726
16727 * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
16728 when updating the contents of the old pointer to an unconstrained array.
16729 (end_subprog_body): Set error_gnat_node to Empty.
16730 (write_record_type_debug_info): Do not be unduly sparing with our bytes.
16731 (unchecked_convert): For subtype to base type conversions, require that
16732 the source be a subtype if it is an integer type.
16733 (builtin_decls): New global, vector of available builtin functions.
16734 (gnat_pushdecl): Add global builtin function declaration nodes to the
16735 builtin_decls list.
16736 (gnat_install_builtins): Adjust comments.
16737 (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
16738 calling gnat_pushdecl, so that it knows when it handed a builtin
16739 function declaration node.
16740 (builtin_decl_for): Search the builtin_decls list.
16741
9e94c78f 167422007-04-06 Eric Botcazou <botcazou@adacore.com>
4b437c6b 16743
9e81dbc7 16744 * s-stchop-vxworks.adb:
4b437c6b
AC
16745 (Stack_Check): Raise Storage_Error if the argument has wrapped around.
16746
167472007-04-06 Robert Dewar <dewar@adacore.com>
16748 Arnaud Charlet <charlet@adacore.com>
16749
16750 * a-diroro.ads: Inserted the pragma Unimplemented_Unit
16751
16752 * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
16753 of files
16754 Add mention of -Sev (set initialize_scalars option from environment
16755 variable at run time) in gnatbind usage message.
16756
16757 * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
16758
16759 * fname-uf.ads: Minor comment fix
16760
16761 * osint.ads: Change pragma Elaborate to Elaborate_All
16762
16763 * par-load.adb: Add documentation.
16764
16765 * sem_cat.ads, sem_cat.adb: Minor code reorganization
16766
16767 * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
16768
16769 * s-secsta.ads: Extra comments
16770
16771 * s-soflin.ads: Minor comment fixes
16772
16773 * s-stratt.ads (Block_Stream_Ops_OK): Removed.
16774
16775 * s-wchcon.ads: Minor comment addition
16776
16777 * treepr.adb: Minor change in message
16778 (Print_Name,Print_Node): Make these debug printouts more robust: print
16779 "no such..." instead of crashing on bad input.
16780
719bb4e3 167812007-03-30 Rafael Ávila de Espíndola <espindola@google.com>
47ecd38d
RAE
16782
16783 * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
16784 instead of gnat_signed_or_unsigned_type.
16785 * utils.c (gnat_signed_or_unsigned_type): Remove.
16786 * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
16787 * gigi.h (gnat_signed_or_unsigned_type): Remove
16788
9645c3c5
RS
167892007-03-09 Roger Sayle <roger@eyesopen.com>
16790
16791 * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
16792 fold with the result of buildN.
16793 * decl.c (gnat_to_gnu_entity): Likewise.
16794 * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
16795 * utils.c (finish_record_type, merge_sizes, max_size, convert):
16796 Likewise.
16797 * utils2.c (gnat_truthvalue_conversion, compare_arrays,
16798 nonbinary_modular_operation, build_binary_op, build_unary_op,
16799 build_cond_expr): Likewise.
16800
16801 * utils.c (convert): Use fold_build1 when casting values to void.
16802 * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
16803 fold_convert instead of convert when appropriate.
16804
c279aa90
BM
168052007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
16806
16807 * Make-lang.in: Add install-pdf target as copied from
16808 automake v1.10 rules.
16809
c2615f30
AS
168102007-02-28 Andreas Schwab <schwab@suse.de>
16811
16812 * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
16813 $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
16814 (doc/gnat-style.info): Likewise.
16815
7771bb62
BM
168162007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
16817
16818 * gnat-style.texi: Standardize title page.
16819 * gnat_rm.texi: Likewise.
16820 * gnat_ugn.texi: Likewise.
16821
ae19c041
MM
168222007-02-25 Mark Mitchell <mark@codesourcery.com>
16823
16824 * decl.c (annotate_value): Adjust for refactoring of tree_map
16825 hierarchy.
16826
fc8600f9
MM
168272007-02-24 Mark Mitchell <mark@codesourcery.com>
16828
16829 * decl.c (annotate_value): Adjust for refactoring of tree_map
16830 hierarchy.
16831
c0bca7e1
EB
168322007-02-21 Ed Schonberg <schonberg@adacore.com>
16833
16834 PR ada/18819
16835 * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
16836 untagged derived type, add hidden components to keep discriminant
16837 layout consistent, when a given discriminant of the derived type
16838 constraints several discriminants of the parent type.
16839
9f3432b8 168402007-02-16 Eric Botcazou <ebotcazou@adacore.com>
6f7f72f9 16841 Sandra Loosemore <sandra@codesourcery.com>
9f3432b8
EB
16842
16843 * trans.c (call_to_gnu): Use build_call_list instead of build3 to
16844 build the call expression.
16845 (gnat_stabilize_reference_1): Handle tcc_vl_exp.
16846 * utils.c (max_size) <tcc_exceptional>: Delete.
16847 <tcc_vl_exp>: New case.
16848 <tcc_expression>: Delete CALL_EXPR subcase.
16849 (build_global_cdtor): Use build_call_nary instead of build3.
16850 * utils2.c (build_call_1_expr): Likewise.
16851 (build_call_2_expr): Likewise.
16852 (build_call_0_expr): Likewise.
16853 (build_call_alloc_dealloc): Likewise.
16854
8438091f
AK
168552007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
16856
16857 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
9e81dbc7 16858 get_action_description_for): Replace _Unwind_Word with _uleb128_t
8438091f
AK
16859 and _Unwind_SWord with _sleb128_t.
16860
0802f6a2
PB
168612007-02-06 Paolo Bonzini <bonzini@gnu.org>
16862
16863 * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
16864 * decl.c: Include gt-ada-decl.h.
16865 (annotate_value_cache): New.
16866 (annotate_value): Use it instead of TREE_COMPLEXITY.
16867
326f9a75
KH
168682007-02-03 Kazu Hirata <kazu@codesourcery.com>
16869
16870 * misc.c, utils2.c: Fix comment typos.
16871
cd259a98
RS
168722007-01-24 Roger Sayle <roger@eyesopen.com>
16873
16874 * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
16875 TREE_CONSTANT_OVERFLOW.
16876 (allocatable_size_p, annotate_value): Likewise.
16877 * trans.c (gnat_to_gnu): Likewise.
16878 * utils.c (unchecked_convert): Likewise.
16879 * utils2.c (build_simple_component_ref): Likewise.
16880
5305be7e
RG
168812007-01-23 Richard Guenther <rguenther@suse.de>
16882
16883 PR bootstrap/30541
16884 * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
16885 (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
16886 (gnatboot3): Likewise.
16887 (GNATBIND): Do not define.
16888 * Makefile.in (GNATBIND): Do not define.
16889
2ac7cbb5
RG
168902007-01-08 Richard Guenther <rguenther@suse.de>
16891
16892 * cuintp.c (build_cst_from_int): Use built_int_cst_type.
16893 * trans.c (gnat_to_gnu): Likewise.
16894
2989d30c
GK
168952006-12-07 Geoffrey Keating <geoffk@apple.com>
16896
16897 * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
16898 * adaint.c: Likewise.
16899
5848e34a
EB
169002006-12-05 Aldy Hernandez <aldyh@redhat.com>
16901
6f7f72f9 16902 Merge from gimple-tuples-branch:
5848e34a 16903 2006-11-02 Aldy Hernandez <aldyh@redhat.com>
6f7f72f9 16904
5848e34a
EB
16905 * ada-tree.h (lang_tree_node): Handle gimple tuples.
16906 * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
16907 GIMPLE_MODIFY_STMT.
16908
d3c56bc8
KH
169092006-12-02 Kazu Hirata <kazu@codesourcery.com>
16910
16911 * Makefile.in, mingw32.h, trans.c: Fix comment typos.
16912 * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
16913 Fix typos.
16914
9fa25ead
EB
169152006-11-17 Eric Botcazou <ebotcazou@adacore.com>
16916
16917 PR ada/27936
16918 * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
16919 if the initializer takes into account the padding.
16920
f9f770a8
RG
169212006-11-11 Richard Guenther <rguenther@suse.de>
16922
16923 * trans.c (maybe_stabilize_reference): Remove handling of
16924 FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
16925
75c0ed05
AC
169262006-11-05 Arnaud Charlet <charlet@adacore.com>
16927
ed41063a 16928 PR ada/29707
75c0ed05
AC
16929 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
16930 (To_Target_Priority): New function.
75c0ed05 16931
70198b9f
AC
169322006-10-31 Robert Dewar <dewar@adacore.com>
16933
16934 * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
16935 a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
16936 s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
16937 a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
16938 a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
16939 a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
16940 a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
16941 a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
16942 a-szbzha.adb: Minor reformatting. Fix header.
16943
16944 * a-numaux-x86.adb: Add parentheses for use of unary minus
16945 * a-ngcefu.adb: Supply missing parentheses for unary minus
16946 * a-ngcoty.adb: Add parens for use of unary minus
16947 * a-ngelfu.adb: Add missing parens for unary minus
16948 * a-tifiio.adb: Add parentheses for uses of unary minus
16949
169502006-10-31 Robert Dewar <dewar@adacore.com>
16951 Bob Duff <duff@adacore.com>
16952 Ed Schonberg <schonberg@adacore.com>
16953
6f7f72f9 16954 * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
70198b9f
AC
16955 with multiplying operator.
16956 (Expected_Type_Is_Any_Real): New function to determine from the Parent
16957 pointer whether the context expects "any real type".
16958 (Resolve_Arithmetic_Op): Do not give an error on calls to the
16959 universal_fixed "*" and "/" operators when they are used in a context
16960 that expects any real type. Also set the type of the node to
16961 Universal_Real in this case, because downstream processing requires it
16962 (mainly static expression evaluation).
16963 Reword some continuation messages
16964 Add some \\ sequences to continuation messages
16965 (Resolve_Call): Refine infinite recursion case. The test has been
16966 sharpened to eliminate some false positives.
16967 Check for Current_Task usage now includes entry barrier, and is now a
16968 warning, not an error.
16969 (Resolve): If the call is ambiguous, indicate whether an interpretation
16970 is an inherited operation.
16971 (Check_Aggr): When resolving aggregates, skip associations with a box,
16972 which are priori correct, and will be replaced by an actual default
16973 expression in the course of expansion.
16974 (Resolve_Type_Conversion): Add missing support for conversion from
16975 a class-wide interface to a tagged type. Minor code cleanup.
16976 (Valid_Tagged_Converion): Add support for abstact interface type
16977 conversions.
16978 (Resolve_Selected_Component): Call Generate_Reference here rather than
16979 during analysis, and use May_Be_Lvalue to distinguish read/write.
16980 (Valid_Array_Conversion): New procedure, abstracted from
16981 Valid_Conversion, to incorporate accessibility checks for arrays of
16982 anonymous access types.
16983 (Valid_Conversion): For a conversion to a numeric type occurring in an
16984 instance or inlined body, no need to check that the operand type is
16985 numeric, since this has been checked during analysis of the template.
16986 Remove legacy test for scope name Unchecked_Conversion.
16987
16988 * sem_res.ads: Minor reformatting
16989
16990 * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
16991 (PE_Current_Task_In_Entry_Body): New exception code
16992 (SE_Restriction_Violation): Removed, not used
16993
16994 * a-except.ads: Update comments.
16995
16996 * types.h, types.ads: Add definition for Validity_Check
16997 (PE_Current_Task_In_Entry_Body): New exception code
16998 (SE_Restriction_Violation): Removed, not used
16999
170002006-10-31 Thomas Quinot <quinot@adacore.com>
17001
17002 * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
17003 error status.
17004
170052006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
17006 Jose Ruiz <ruiz@adacore.com>
17007
17008 * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
17009 part of Ada.Calendar: all subprogram raise Unimplemented.
17010 (Split_W_Offset): Temp function body, raising Unimplemented
17011
9e81dbc7 17012 * a-calend.ads, a-calend-vms.ads:
70198b9f
AC
17013 Add imported variable Invalid_TZ_Offset used to designate targets unable
17014 to support time zones.
17015 (Unimplemented): Temporary function raised by the body of new
17016 subprograms below.
17017 (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
17018 unit provides handling of leap seconds and is used by the new Ada 2005
17019 packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
17020 (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
17021 version returns an extra value which is the offset to UTC.
17022
17023 * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
17024 (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
17025 (Split_W_Offset): New function body.
17026 (Time_Of): When a date is close to UNIX epoch, compute the time for
17027 that date plus one day (that amount is later substracted after
17028 executing mktime) so there are no problems with time zone adjustments.
17029
17030 * a-calend-mingw.adb: Remove Windows specific version no longer needed.
17031
17032 * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
17033 a-catizo.ads, a-catizo.adb: New files.
17034
6f7f72f9 17035 * impunit.adb: Add new Ada 2005 entries
70198b9f
AC
17036
17037 * sysdep.c: Add external variable __gnat_invalid_tz_offset.
17038 Rename all occurences of "__gnat_localtime_r" to
17039 "__gnat_localtime_tzoff".
17040 (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
17041 zone data and calculate the GMT offset.
17042 (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
17043 Use the field "tm_gmtoff" to extract the GMT offset.
17044 (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
17045 the external variable "timezone" to calculate the GMT offset.
17046
170472006-10-31 Arnaud Charlet <charlet@adacore.com>
17048 Jose Ruiz <ruiz@adacore.com>
17049
9e81dbc7
AS
17050 * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
17051 s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
70198b9f
AC
17052 s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
17053 s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
17054 System.Any_Priority to a POSIX priority on the target.
17055
9e81dbc7 17056 * system-linux-ia64.ads:
70198b9f
AC
17057 Extend range of Priority types on Linux to use the whole range made
17058 available by the system.
17059
17060 * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
17061 function maps from System.Any_Priority to a POSIX priority on the
17062 target.
17063 (PTHREAD_PRIO_PROTECT): Set real value.
17064 (PTHREAD_PRIO_INHERIT): Now a function.
17065 (SIGCPUFAIL): New signal.
17066 (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
17067 are documented as reserved by the OS.
17068
17069 * system-aix.ads: Use the full range of priorities provided by the
17070 system on AIX.
17071
17072 * s-taprop-posix.adb: Call new function To_Target_Priority.
17073 (Set_Priority): Take into account Task_Dispatching_Policy and
17074 Priority_Specific_Dispatching pragmas when determining if Round Robin
17075 must be used for scheduling the task.
17076
9e81dbc7 17077 * system-linux-x86_64.ads, system-linux-x86.ads,
70198b9f
AC
17078 system-linux-ppc.ads: Extend range of Priority types on Linux to use
17079 the whole range made available by the system.
17080
9e81dbc7
AS
17081 * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
17082 s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
70198b9f
AC
17083 s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
17084 when deallocating the TCB in order to avoid potential references to
17085 deallocated data.
17086 (Set_Priority): Take into account Task_Dispatching_Policy and
17087 Priority_Specific_Dispatching pragmas when determining if Round Robin
17088 or FIFO within priorities must be used for scheduling the task.
17089
17090 * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
17091 the Thread field (to be used internally by the run-time system) and the
17092 kernel-level task id in the LWP field (to be used by the debugger).
17093 (Create_Task): Reorganize to unify the calls to taskSpawn into a single
17094 instance, and propagate the current task options to the spawned task.
17095 (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
17096 (Initialize): Set Round Robin dispatching when the corresponding pragma
17097 is in effect.
17098
170992006-10-31 Robert Dewar <dewar@adacore.com>
17100
9e81dbc7
AS
17101 * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
17102 system-linux-hppa.ads, system-hpux-ia64.ads,
17103 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
17104 system-vxworks-sparcv9.ads, system-solaris-x86.ads,
17105 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
17106 system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
17107 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
17108 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
70198b9f
AC
17109 system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
17110 Default_Bit_Order) to kill constant condition warnings for references
17111 to this switch.
17112
171132006-10-31 Vincent Celier <celier@adacore.com>
17114 Eric Botcazou <ebotcazou@adacore.com>
17115
17116 * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
17117 mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
17118 mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
17119 Ext_To, when building the library file name
17120
17121 * mlib-tgt-vxworks.adb: ditto.
17122 (Get_Target_Suffix): Add support for x86 targets.
17123
17124 * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
17125
9e81dbc7 17126 * mlib-tgt-darwin.adb:
70198b9f
AC
17127 Use Append_To, instead of Ext_To, when building the library file name
17128 (Flat_Namespace): New global variable.
17129 (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
17130 (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
17131 (Link_Shared_Libgcc): Delete.
17132 (Build_Dynamic_Library): Adjust for above changes.
17133 Use Opt package.
17134 (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
17135
171362006-10-31 Eric Botcazou <ebotcazou@adacore.com>
17137
17138 * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
17139 (Initialize): Add type conversions required by above change.
17140
171412006-10-31 Jose Ruiz <ruiz@adacore.com>
17142
9e81dbc7 17143 * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
70198b9f
AC
17144 (getpid): New body for this function that uses the underlying taskIdSelf
17145 function for VxWorks 5 and VxWorks 6 in kernel mode.
17146 (unsigned_int): New type, modular to allow logical bit operations.
17147 (taskOptionsGet): New imported function.
17148
17149 * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
17150 field to be compliant with the type used by the corresponding operating
17151 system primitive.
17152
171532006-10-31 Pascal Obry <obry@adacore.com>
17154 Eric Botcazou <ebotcazou@adacore.com>
17155 Vincent Celier <celier@adacore.com>
17156
17157 * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
17158 ASCII version of the registry API. This is needed as the GNAT runtime
17159 is now UNICODE by default.
17160 Include version.h.
17161 (get_gcc_version): Do not hardcode the return value.
17162 (__gnat_file_time_name): On Windows properly set the default returned
17163 value to -1 which corresponds to Invalid_Time.
17164 (__gnat_fopen): New routine. A simple wrapper on all plateforms
17165 except on Windows where it does conversion for unicode support.
17166 (__gnat_freopen): Idem.
17167 (__gnat_locate_exec_on_path): If environment variable PATH does not
17168 exist, return a NULL pointer
17169
17170 * adaint.h: (__gnat_fopen): Declare.
17171 (__gnat_freopen): Likewise.
17172
17173 * mingw32.h (_tfreopen): Define this macro here for older MingW
17174 version.
17175 Activate the unicode support on platforms using a MingW runtime
17176 version 3.9 or newer.
17177
17178 * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
17179 This is needed for proper unicode support on Windows.
17180 (freopen): Idem.
17181
171822006-10-31 Eric Botcazou <ebotcazou@adacore.com>
17183 Nicolas Setton <setton@adacore.com>
17184 Olivier Hainque <hainque@adacore.com>
17185 Gary Dismukes <dismukes@adacore.com>
17186
17187 * gigi.h: (tree_code_for_record_type): Declare.
17188 (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
17189 (get_global_renaming_pointers): Rename to
17190 invalidate_global_renaming_pointers.
17191 (static_ctors): Delete.
17192 (static_dtors): Likewise.
17193 (gnat_write_global_declarations): Declare.
17194 (create_var_decl): Adjust descriptive comment to indicate that the
17195 subprogram may return a CONST_DECL node.
17196 (create_true_var_decl): Declare new function, similar to
17197 create_var_decl but forcing the creation of a VAR_DECL node.
17198 (get_global_renaming_pointers): Declare.
17199 (add_global_renaming_pointer): Likewise.
17200
17201 * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
17202
17203 * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
17204 tree before setting TREE_ADDRESSABLE for by-reference return mechanism
17205 processing.
17206 (gnat_to_gnu_entity): Remove From_With_Type from computation for
17207 imported_p.
17208 <E_Access_Type>: Use the Non_Limited_View as the full view of the
17209 designated type if the pointer comes from a limited_with clause. Make
17210 incomplete designated type if it is in the main unit and has a freeze
17211 node.
17212 <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
17213 Underlying_Full_View similarly. Return earlier if the full view already
17214 has an associated tree.
17215 (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
17216 (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
17217 (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
17218 reference type built for objects with an address clause.
17219 Use create_true_var_decl with const_flag set for
17220 DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
17221 TREE_READONLY set.
17222 (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
17223 for Character and Wide_Character types. This info is read by the
17224 dwarf-2 writer, and is needed to be able to use the command "ptype
17225 character" in the debugger.
17226 (gnat_to_gnu_entity): When generating a type representing
17227 a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
17228 so that debug writers can distinguish it from ordinary integers.
17229 (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
17230 addition to TREE_READONLY to assert the constantness of variables for
17231 elaboration purposes.
17232 (gnat_to_gnu_entity, subprogram cases): Change loops on formal
17233 parameters to call new Einfo function First_Formal_With_Extras.
17234 (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
17235 protected type with its corresponding discriminant, to obtain a usable
17236 declaration
17237 (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
17238 for a multiple elaboration of the "equivalent" type.
17239 (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
17240 into record_global_renaming_pointer.
17241 (gnat_to_gnu_entity) <E_Array_Type>: Do not force
17242 TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
17243 <E_Array_Subtype>: Likewise.
17244 (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
17245 incomplete subtypes and incomplete subtypes of incomplete types visible
17246 through a limited with clause.
17247 (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
17248 the base index type for the maximum size of the array only if they are
17249 constant.
17250 (gnat_to_gnu_entity, renaming object case): Do not wrap up the
17251 expression into a SAVE_EXPR if stabilization failed.
17252
17253 * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
17254 a result decl into DECL_BY_REFERENCE on this decl, now what is expected
17255 by lower level compilation passes.
17256 (gnat_genericize): New function, lowering a function body to GENERIC.
17257 Turn the type of RESULT_DECL into a real reference type if the decl
17258 has been marked DECL_BY_REFERENCE, and adjust references to the latter
17259 accordingly.
17260 (gnat_genericize_r): New function. Tree walking callback for
17261 gnat_genericize.
17262 (convert_from_reference, is_byref_result): New functions. Helpers for
17263 gnat_genericize_r.
17264 (create_type_decl): Call gnat_pushdecl before calling
17265 rest_of_decl_compilation, to make sure that field TYPE_NAME of
17266 type_decl is properly set before calling the debug information writers.
17267 (write_record_type_debug_info): The heuristics which compute the
17268 alignment of a field in a variant record might not be accurate. Add a
17269 safety test to make sure no alignment is set to a smaller value than
17270 the alignment of the field type.
17271 (make_dummy_type): Use the Non_Limited_View as the underlying type if
17272 the type comes from a limited_with clause. Do not loop on the full view.
17273 (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
17274 (dummy_node_table): New global variable, moved from decl.c.
17275 (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
17276 (save_gnu_tree): Use above macros.
17277 (get_gnu_tree): Likewise.
17278 (present_gnu_tree): Likewise.
17279 (init_dummy_type): New function, moved from decl.c. Use above macros.
17280 (make_dummy_type): Likewise.
17281 (tree_code_for_record_type): New function extracted from make_dummy_type
17282 (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
17283 (static_ctors): Change it to a vector, make static.
17284 (static_dtors): Likewise.
17285 (end_subprog_body): Adjust for above change.
17286 (build_global_cdtor): Moved from trans.c.
17287 (gnat_write_global_declarations): Emit global constructor and
17288 destructor, and call cgraph_optimize before emitting debug info for
17289 global declarations.
17290 (global_decls): New global variable.
17291 (gnat_pushdecl): Store the global declarations in global_decls, for
17292 later use.
17293 (gnat_write_global_declarations): Emit debug information for global
17294 declarations.
17295 (create_var_decl_1): Former create_var_decl, with an extra argument to
17296 state whether the creation of a CONST_DECL is allowed.
17297 (create_var_decl): Behavior unchanged. Now a wrapper around
17298 create_var_decl_1 allowing CONST_DECL creation.
17299 (create_true_var_decl): New function, similar to create_var_decl but
17300 forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
17301 (create_field_decl): Do not always mark the field as addressable
17302 if its type is an aggregate.
17303 (global_renaming_pointers): New static variable.
17304 (add_global_renaming_pointer): New function.
17305 (get_global_renaming_pointers): Likewise.
17306
17307 * misc.c (gnat_dwarf_name): New function.
17308 (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
17309 (gnat_post_options): Add comment about structural alias analysis.
17310 (gnat_parse_file): Do not call cgraph_optimize here.
17311 (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
17312
17313 * trans.c (process_freeze_entity): Don't abort if we already have a
17314 non dummy GCC tree for a Concurrent_Record_Type, as it might
17315 legitimately have been elaborated while processing the associated
17316 Concurrent_Type prior to this explicit freeze node.
17317 (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
17318 exception handler volatile if it is of variable size.
17319 (process_type): Remove bypass for types coming from a limited_with
17320 clause.
17321 (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
17322 actual, convert the corresponding gnu_actual to the real destination
17323 type when necessary.
17324 (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
17325 originally TREE_READONLY but whose elaboration cannot be performed
17326 statically.
17327 Part of fix for F504-021.
17328 (tree_transform, subprogram cases): Change loops on formal parameters to
17329 call new Einfo function First_Formal_With_Extras.
17330 (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
17331 stemming from type conversion for the lhs.
17332 (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
17333 number of bits per unit for components of records.
17334 (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
17335 (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
17336 with At_End_Proc after the SJLJ EH cleanup.
17337 (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
17338 compilation unit.
17339 (elaborate_all_entities): Do not retest type_annotate_only.
17340 (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
17341 result type of an abstract subprogram, which may be an itype associated
17342 with an anonymous access result (related to AI-318-02).
17343 (build_global_cdtor): Move to utils.c.
17344 (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
17345 this choice is not a null tree nor an integer constant.
17346 (gigi): Run unshare_save_expr via walk_tree_without_duplicates
17347 on the body of elaboration routines instead of mark_unvisited.
17348 (add_stmt): Do not mark the tree.
17349 (add_decl_expr): Tweak comment.
17350 (mark_unvisited): Delete.
17351 (unshare_save_expr): New static function.
17352 (call_to_gnu): Issue an error when making a temporary around a
17353 procedure call because of non-addressable actual parameter if the
17354 type of the formal is by_reference.
17355 (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
17356 after building the elaboration routine.
17357
173582006-10-31 Bob Duff <duff@adacore.com>
17359
17360 * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
17361 as finalization-started, so we can raise Program_Error on 'new'.
17362
17363 * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
17364 collection has already started.
17365
17366 * s-finimp.ads (Collection_Finalization_Started): Added new special
17367 flag value for indicating that a collection's finalization has started.
17368
17369 * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
17370 create a task whose master has already waited for dependent tasks.
17371
173722006-10-31 Robert Dewar <dewar@adacore.com>
17373
17374 * lib.adb, lib.ads: (In_Predefined_Unit): New functions
17375
9e81dbc7
AS
17376 * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
17377 a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
17378 a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
17379 a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
17380 a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
70198b9f
AC
17381 a-except-2005.ads: Add pragma Preelaborable_Warning
17382
173832006-10-31 Robert Dewar <dewar@adacore.com>
17384 Jose Ruiz <ruiz@adacore.com>
17385
17386 * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
17387
17388 * ali.adb (Get_Name): Properly handle scanning of wide character names
17389 encoded with brackets notation.
17390 (Known_ALI_Lines): Add S lines to this list.
17391 (Scan_ALI): Acquire S (priority specific dispatching) lines.
17392 New flag Elaborate_All_Desirable in unit table
17393
17394 * ali.ads (Priority_Specific_Dispatching): Add this range of
17395 identifiers to be used for Priority_Specific_Dispatching table entries.
17396 (ALIs_Record): Add First_Specific_Dispatching and
17397 Last_Specific_Dispatching that point to the first and last entries
17398 respectively in the priority specific dispatching table for this unit.
17399 (Specific_Dispatching): Add this table for storing each S (priority
17400 specific dispatching) line encountered in the input ALI file.
17401 New flag Elaborate_All_Desirable in unit table
17402
17403 * bcheck.adb: (Check_Configuration_Consistency): Add call to
17404 Check_Consistent_Dispatching_Policy.
17405 (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
17406 verifying that the use of Priority_Specific_Dispatching,
17407 Task_Dispatching_Policy, and Locking_Policy is consistent across the
17408 partition.
17409
17410 * bindgen.adb: (Public_Version_Warning): function removed.
17411 (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
17412 required information from ALI files in order to initialize the table
17413 containing the specific dispatching policy.
17414 (Gen_Adainit_Ada): Generate the variables required for priority specific
17415 dispatching entries (__gl_priority_specific_dispatching and
17416 __gl_num_specific_dispatching).
17417 (Gen_Adainit_C): Generate the variables required for priority specific
17418 dispatching entries (__gl_priority_specific_dispatching and
17419 __gl_num_specific_dispatching).
17420 (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
17421 pragma entries.
17422 (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
17423 (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
17424 (Tab_To): Removed.
17425 (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
17426 a call to gnat_set_globals.
17427 Generate a string containing settings from
17428 Priority_Specific_Dispatching pragma entries.
17429 (Gen_Object_Files_Options): Do not include the runtime libraries when
17430 pragma No_Run_Time is specified.
17431
17432 * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
17433 consistency with s-intman-posix.adb.
17434 (__gnat_error_handler, case FreeBSD): Account for the fact that the
17435 handler is installed with SA_SIGINFO.
17436 (__gnat_adjust_context_for_raise, FreeBSD case): New function for
17437 FreeBSD ZCX support, copied from Linux version.
17438 Add MaRTE-specific definitions for the linux target. Redefine sigaction,
17439 sigfillset, and sigemptyset so the routines defined by MaRTE.
17440 (__gl_priority_specific_dispatching): Add this variable that stores the
17441 string containing priority specific dispatching policies in the
17442 partition.
17443 (__gl_num_specific_dispatching): Add this variable that indicates the
17444 highest priority for which a priority specific dispatching pragma
17445 applies.
17446 (__gnat_get_specific_dispatching): Add this routine that returns the
17447 priority specific dispatching policy, as set by a
17448 Priority_Specific_Dispatching pragma appearing anywhere in the current
17449 partition. The input argument is the priority number, and the result
17450 is the upper case first character of the policy name.
17451 (__gnat_set_globals): Now a dummy function.
17452 (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
17453 mechargs instead of sigargs, as the latter can be retrieved from the
17454 former and sigargs is not what we want on ia64.
17455 (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
17456 mechargs argument.
17457 (__gnat_adjust_context_for_raise, ia64-vms): New function.
17458 (tasking_error): Remove unused symbol.
17459 (_abort_signal): Move this symbol to the IRIX specific part since this
17460 is the only target that uses this definition.
17461 (Check_Abort_Status): Move this symbol to the IRIX specific part since
17462 this is the only target that uses this definition.
17463 (Lock_Task): Remove unused symbol.
17464 (Unlock_Task): Remove unused symbol.
17465
17466 * lib-writ.adb (Write_ALI): Output new S lines for
17467 Priority_Specific_Dispatching pragmas.
17468 Implement new flag BD for elaborate body desirable
17469
17470 * lib-writ.ads: Document S lines for Priority Specific Dispatching.
17471 (Specific_Dispatching): Add this table for storing the entries
17472 corresponding to Priority_Specific_Dispatching pragmas.
17473 Document new BD flag for elaborate body desirable
17474
17475 * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
17476 of known pragmas.
17477
174782006-10-31 Javier Miranda <miranda@adacore.com>
17479
9e81dbc7 17480 * a-tags.ads, a-tags.adb:
70198b9f
AC
17481 (Predefined_DT): New function that improves readability of the code.
17482 (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
17483 Inherit_DT): Use the new function Predefined_DT to improve code
17484 readability.
17485 (Register_Interface_Tag): Update assertion.
17486 (Set_Interface_Table): Update assertion.
17487 (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
17488 determining progenitor interfaces in Tags.
17489 (Inherit_CPP_DT): New subprogram.
17490
6f7f72f9 17491 * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
70198b9f 17492 analysis of the thunk code.
6f7f72f9
EB
17493 (Expand_Interface_Conversion): Handle run-time conversion of
17494 access to class wide types.
70198b9f
AC
17495 (Expand_Dispatching_Call): When generating the profile for the
17496 subprogram itype for a dispatching operation, properly terminate the
17497 formal parameters chaind list (set the Next_Entity of the last formal
17498 to Empty).
17499 (Collect_All_Interfaces): Removed. This routine has been moved to
17500 sem_util and renamed as Collect_All_Abstract_Interfaces.
17501 (Set_All_DT_Position): Hidden entities associated with abstract
17502 interface primitives are not taken into account in the check for
17503 3.9.3(10); this check is done with the aliased entity.
17504 (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
17505 interfacing with CPP by default.
17506 (Expand_Interface_Conversion): Add missing support for static conversion
17507 from an interface to a tagged type.
17508 (Collect_All_Interfaces): Add new out formal containing the list of
17509 abstract interface types to cleanup the subprogram Make_DT.
17510 (Make_DT): Update the code to generate the table of interfaces in case
17511 of abstract interface types.
17512 (Is_Predefined_Dispatching_Alias): New function that returns true if
17513 a primitive is not a predefined dispatching primitive but it is an
17514 alias of a predefined dispatching primitive.
17515 (Make_DT): If the ancestor of the type is a CPP_Class and we are
17516 compiling under full ABI compatibility mode we avoid the generation of
17517 calls to run-time services that fill the dispatch tables because under
17518 this mode we currently inherit the dispatch tables in the IP subprogram.
17519 (Write_DT): Emit an "is null" indication for a null procedure primitive.
17520 (Expand_Interface_Conversion): Use an address as the type of the formal
17521 of the internally built function that handles the case in which the
17522 target type is an access type.
17523
175242006-10-31 Robert Dewar <dewar@adacore.com>
17525
17526 * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
17527
175282006-10-31 Robert Dewar <dewar@adacore.com>
17529
17530 * bindusg.ads, bindusg.adb:
17531 Change to package and rename procedure as Display, which
17532 now ensures that it only outputs usage information once.
17533
175342006-10-31 Jose Ruiz <ruiz@adacore.com>
17535
17536 * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
17537 using RTPs.
17538
17539 * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
17540 when using RTPs.
17541
175422006-10-31 Robert Dewar <dewar@adacore.com>
17543 Ed Schonberg <schonberg@adacore.com>
17544
17545 * treepr.adb: Use new subtype N_Membership_Test
17546
6f7f72f9
EB
17547 * checks.ads, checks.adb: Add definition for Validity_Check
17548 (Range_Or_Validity_Checks_Suppressed): New function
17549 (Ensure_Valid): Test Validity_Check suppressed
17550 (Insert_Valid_Check): Test Validity_Check suppressed
17551 (Insert_Valid_Check): Preserve Do_Range_Check flag
70198b9f
AC
17552 (Validity_Check_Range): New procedure
17553 (Expr_Known_Valid): Result of membership test is always valid
17554 (Selected_Range_Checks): Range checks cannot be applied to discriminants
17555 by themselves. Disabling those checks must also be done for task types,
17556 where discriminants may be used for the bounds of entry families.
17557 (Apply_Address_Clause_Check): Remove side-effects if address expression
17558 is non-static and is not the name of a declared constant.
17559 (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
17560 Code cleanup and new error messages.
17561 (Enable_Range_Check): Test for some cases of suppressed checks
17562 (Generate_Index_Checks): Suppress index checks if index checks are
17563 suppressed for array object or array type.
17564 (Apply_Selected_Length_Checks): Give warning for compile-time detected
17565 length check failure, even if checks are off.
17566 (Ensure_Valid): Do not generate a check on an indexed component whose
17567 prefix is a packed boolean array.
17568 * checks.adb: (Alignment_Checks_Suppressed): New function
17569 (Apply_Address_Clause_Check): New procedure, this is a completely
17570 rewritten replacement for Apply_Alignment_Check
17571 (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
17572 we request a discriminal value only in case of discriminants.
17573 (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
17574 assignments where the target subtype is unconstrained and the target
17575 object is a parameter or dereference (other aliased cases are known
17576 to be unconstrained).
17577
175782006-10-31 Robert Dewar <dewar@adacore.com>
17579
17580 * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
17581 prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
17582 vms_conv.adb: Fix bad table increment values (much too small)
17583
17584 * table.adb (Realloc): Make sure we get at least some new elements
17585 Defends against silly small values for table increment
17586
175872006-10-31 Robert Dewar <dewar@adacore.com>
17588 Ed Schonberg <schonberg@adacore.com>
17589 Bob Duff <duff@adacore.com>
17590
17591 * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
17592 entities. Move other fields around to make this possible
17593 (Is_Derived_Type): Add missing call to Is_Type.
17594 (Extra_Formals): New function for subprograms, entries, subprogram
17595 types.
17596 (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
17597 (First_Formal_With_Extras): New function for subprogs, entries, subp
17598 types.
17599 (Write_Field28_Name): New procedure for node display of "Extra_Formals".
17600 Add node information for E_Return_Statement.
17601 (Elaborate_Body_Desirable): New flag
17602 (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
17603 to be Is_Inherently_Limited_Type, because return-by-reference has
17604 no meaning in Ada 2005.
17605 (E_Return_Statement): New entity kind.
17606 (Return_Applies_To): Field of E_Return_Statement.
17607 (Is_Return_Object): New flag in object entities.
17608 (Is_Dynamic_Scope): Make it True for E_Return_Statement.
17609 (Must_Have_Preelab_Init): New flag
17610 (Known_To_Have_Preelab_Init): New flag
17611 (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
17612 (Is_Visible_Formal): New flag on entities in formal packages.
17613 (Low_Bound_Known): New flag
17614 (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
17615 Incomplete_Kind.
17616 (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
17617 output when Id is an incomplete subtype.
17618
176192006-10-31 Robert Dewar <dewar@adacore.com>
17620
17621 * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
17622 Avoid abbreviation Creat
17623 (Finalize): List all sources in extended mail source if -gnatl
17624 switch is active.
17625 Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
17626 (Finalize): Implement new -gnatl=xxx switch to output listing to file
17627 (Set_Specific_Warning_On): New procedure
17628 (Set_Specific_Warning_Off): New procedure
17629 Add implementation of new insertion \\
17630 (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
17631 (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
17632 types.
17633 (Error_Msg_Internal): Make sure that we set Last_Killed to
17634 True when a message from another package is suppressed.
17635 Implement insertion character ~ (insert string)
17636 (First_Node): Minor adjustments to get better placement.
17637
9e81dbc7 17638 * frontend.adb:
70198b9f
AC
17639 Implement new -gnatl=xxx switch to output listing to file
17640
9e81dbc7 17641 * gnat1drv.adb:
70198b9f
AC
17642 Implement new -gnatl=xxx switch to output listing to file
17643
6f7f72f9 17644 * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
70198b9f
AC
17645 (Commands_To_Stdout): New flag
17646 Implement new -gnatl=xxx switch to output listing to file
17647 New switch Dump_Source_Text
17648 (Warn_On_Deleted_Code): New warning flag for -gnatwt
17649 Define Error_Msg_Line_Length
17650 (Warn_On_Assumed_Low_Bound): New switch
17651
17652 * osint.ads, osint.adb
17653 (Normalize_Directory_Name): Fix bug.
17654 Implement new -gnatl=xxx switch to output listing to file
17655 (Concat): Removed, replaced by real concatenation
17656 Make use of concatenation now allowed in compiler
17657 (Executable_Prefix.Get_Install_Dir): First get the full path, so that
17658 we find the 'lib' or 'bin' directory even when the tool has been
17659 invoked with a relative path.
17660 (Executable_Name): New function taking string parameters.
17661
9e81dbc7 17662 * osint-c.ads, osint-c.adb:
70198b9f
AC
17663 Implement new -gnatl=xxx switch to output listing to file
17664
17665 * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
17666
9e81dbc7 17667 * switch-c.adb:
70198b9f
AC
17668 Implement new -gnatl=xxx switch to output listing to file
17669 Recognize new -gnatL switch
17670 (no longer keep in old warning about old style usage)
17671 Use concatenation to simplify code
17672 Recognize -gnatjnn switch
17673 (Scan_Front_End_Switches): Clean up handling of -gnatW
17674 (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
17675
176762006-10-31 Robert Dewar <dewar@adacore.com>
17677
17678 * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
17679 (Set_Specific_Warning_Off): New procedure
17680 (Warning_Specifically_Suppressed): New function
17681 (Validate_Specific_Warnings): New procedure
17682 (Output_Msg_Text): Complete rewrite to support -gnatjnn
17683
17684 * err_vars.ads: Implement insertion character ~ (insert string)
17685
176862006-10-31 Bob Duff <duff@adacore.com>
17687 Ed Schonberg <schonberg@adacore.com>
17688
17689 * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
17690 the parent part is a build-in-place function call, generate assignments.
17691 (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
17692 are build-in-place function calls.
17693 (Replace_Self_Reference): New subsidiary of
17694 Make_OK_Assignment_Statement, to replace an access attribute that is a
17695 self-reference into an access to the appropriate component of the
17696 target object. Generalizes previous mechanism to handle self-references
17697 nested at any level.
17698 (Is_Self_Referential_Init): Remove, not needed.
17699 (Is_Self_Referential_Init): New predicate to simplify handling of self
17700 referential components in record aggregates.
17701 (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
17702 check for presence of entity before checking for self-reference.
17703 (Has_Default_Init_Comps): Return True if a component association is a
17704 self-reference to the enclosing type, which can only come from a
17705 default initialization.
17706 (Make_OK_Assignment_Statement): If the expression is of the form
17707 Typ'Acc, where Acc is an access attribute, the expression comes from a
17708 default initialized self-referential component.
17709 (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
17710 that has been derived from several abstract interfaces we must also
17711 initialize the tags of the secondary dispatch tables.
17712
177132006-10-31 Ed Schonberg <schonberg@adacore.com>
17714 Thomas Quinot <quinot@adacore.com>
17715 Javier Miranda <miranda@adacore.com>
17716 Robert Dewar <dewar@adacore.com>
6f7f72f9 17717
9e81dbc7 17718 * exp_attr.adb:
6f7f72f9
EB
17719 (Expand_Access_To_Protected_Op): If the context indicates that an access
17720 to a local operation may be transfered outside of the object, create an
17721 access to the wrapper operation that must be used in an external call.
70198b9f
AC
17722 (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
17723 target, pass the Valid attribute applied to a floating-point prefix on
17724 to the back end without expansion.
17725 (Storage_Size): Use the new run-time function Storage_Size to retrieve
17726 the allocated storage when it is specified by a per-object expression.
17727 (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
17728 Nothing to do here, the attribute has been rewritten during semantic
17729 analysis.
17730 (Expand_Attribute_Reference): Handle expansion of the new Priority
17731 attribute
17732 (Find_Fat_Info): Handle case of universal real
17733 (Expand_Access_To_Protected_Op): Fix use of access to protected
17734 subprogram from inside the body of a protected entry.
17735 (Expand_Access_To_Protected_Op): Common procedure for the expansion of
17736 'Access and 'Unrestricted_Access, to transform the attribute reference
17737 into a fat pointer.
17738 (Is_Constrained_Aliased_View): New predicate to help determine whether a
17739 subcomponent's enclosing variable is aliased with a constrained subtype.
17740 (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
17741 test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
17742 an aliased prefix must be known to be constrained in order to use True
17743 for the attribute value, and now it's possible for some aliased views
17744 to be unconstrained.
17745
177462006-10-31 Robert Dewar <dewar@adacore.com>
17747
17748 * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
17749 (Expand_Entity_Reference): Correct error of not handling subprogram
17750 formals in current_value processing.
17751
177522006-10-31 Javier Miranda <miranda@adacore.com>
17753 Robert Dewar <dewar@adacore.com>
17754 Ed Schonberg <schonberg@adacore.com>
17755 Gary Dismukes <dismukes@adacore.com>
17756
6f7f72f9 17757 * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
70198b9f
AC
17758 register in the final list objects containing class-wide interfaces;
17759 otherwise we incorrectly register the tag of the interface in the final
17760 list.
6f7f72f9
EB
17761 (Make_Controlling_Function_Wrappers): Add missing barrier to do not
17762 generate the wrapper if the parent primitive is abstract. This is
17763 required to report the correct error message.
17764 (Expand_N_Subtype_Indication): Do validity checks on range
70198b9f
AC
17765 (Clean_Task_Names): If an initialization procedure includes a call to
17766 initialize a task (sub)component, indicate that the procedure will use
17767 the secondary stack.
17768 (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
17769 compatibility for interfacing with CPP by default.
17770 (Expand_N_Object_Declaration): Only build an Adjust call when the
17771 object's type is a nonlimited controlled type.
17772 * exp_ch3.adb: Add with and use of Exp_Ch6.
17773 (Expand_N_Object_Declaration): Check for object initialization that is a
17774 call to build-in-place function and apply Make_Build_In_Place_Call_In_
17775 Object_Declaration to the call.
17776 (Freeze_Type): When the designated type of an RACW was not frozen at the
17777 point where the RACW was declared, validate the primitive operations
17778 with respect to E.2.2(14) when it finally is frozen.
17779 (Build_Initialization_Call,Expand_Record_Controller): Rename
17780 Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
17781 return-by-reference has no meaning in Ada 2005.
17782 (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
17783 to register tag of the immediate ancestor interfaces in the
17784 run-time structure.
17785 (Init_Secondary_Tags): Moved to the specification to allow the
17786 initialization of extension aggregates with abstract interfaces.
17787 (Build_Master_Renaming): Make public, for use by function declarations
17788 whose return type is an anonymous access type.
17789 (Freeze_Record_Type): Replace call to Insert_List_Before by call to
17790 Insert_List_Before_And_Analyze after the generation of the specs
17791 associated with null procedures.
17792 (Expand_Tagged_Root): Update documentation in its specification.
17793 (Init_Secondary_Tags): Update documentation.
17794 (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
17795 tibility mode and the immediate ancestor is a CPP_Pragma tagged type
17796 then generate code to inherit the contents of the dispatch table
17797 directly from the ancestor.
17798 (Expand_Record_Controller): Insert controller component after tags of
17799 implemented interfaces.
17800 (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
17801 create null procedure overridings when null procedures are inherited
17802 from interfaces.
17803 (Make_Null_Procedure_Specs): New procedure to generate null procedure
17804 declarations for overriding null primitives inherited from interfaces.
17805 (Is_Null_Interface_Procedure): New function in
17806 Make_Null_Procedure_Specs.
17807 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
17808 immediate ancestor of a tagged type is an abstract interface type we
17809 must generate the specification of the predefined primitives associated
17810 with controlled types (because the dispatch table of the ancestor is
17811 null and hence these entries cannot be inherited). This is required to
17812 elaborate well the dispatch table.
17813
178142006-10-31 Javier Miranda <miranda@adacore.com>
17815 Ed Schonberg <schonberg@adacore.com>
17816 Bob Duff <duff@adacore.com>
17817 Gary Dismukes <dismukes@adacore.com>
17818 Robert Dewar <dewar@adacore.com>
6f7f72f9
EB
17819
17820 * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
70198b9f 17821 conversion.
6f7f72f9 17822 (Expand_N_In): Do validity checks on range
70198b9f
AC
17823 (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
17824 (Expand_N_Allocator): For "new T", if the object is constrained by
17825 discriminant defaults, allocate the right amount of memory, rather than
17826 the maximum for type T.
17827 (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
17828 when the allocator is initialized by a build-in-place call, since the
17829 allocator is already rewritten as a reference to the function result,
17830 and this prevents an unwanted duplication of the function call.
17831 Add with and use of Exp_Ch6.
17832 (Expand_Allocator_Expresssion): Check for an allocator whose expression
17833 is a call to build-in-place function and apply
17834 Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
17835 untagged designated types).
17836 (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
17837 optimization if source or target is biased.
17838 (Expand_N_Allocator): Add comments for case of an allocator within a
17839 function that returns an anonymous access type designating tasks.
17840 (Expand_N_Allocator): apply discriminant checks for access
17841 discriminants of anonymous access types (AI-402, AI-416)
17842
178432006-10-31 Bob Duff <duff@adacore.com>
17844 Robert Dewar <dewar@adacore.com>
17845 Gary Dismukes <dismukes@adacore.com>
17846 Ed Schonberg <schonberg@adacore.com>
17847
17848 * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
17849
6f7f72f9 17850 * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
70198b9f
AC
17851 (Expand_N_Assignment_Statement): Call
17852 Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
17853 build-in-place function call. Currently, this can happen only for
17854 assignments that come from aggregates.
17855 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
17856 in order to alleviate the upward compatibility introduced by AI-318.
17857 (Expand_N_Extended_Return_Statement): Add support for handling the
17858 return object as a build-in-place result.
17859 (Expand_Non_Function_Return): Implement simple return statements nested
17860 within an extended return.
17861 (Enable_New_Return_Processing): Turn on the new processing of return
17862 statements.
17863 (Expand_Non_Function_Return): For a return within an extended return,
17864 don't raise Program_Error, because Sem_Ch6 now gives a warning.
17865 (Expand_N_Extended_Return_Statement): Implement AI-318
17866 (Expand_Simple_Function_Return): Ditto.
17867 (Expand_N_If_Statement): Handle new -gnatwt warning
17868 (Expand_N_Case_Statement): Handle new -gnatwt warning
17869 (Expand_N_Assignment): Handle assignment to the Priority attribute of
17870 a protected object.
17871 (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
17872 validity checking of assignments to elementary record components.
17873 (Expand_N_Return_Statement): return Class Wide types on the secondary
17874 stack independantly of their controlled status since with HIE runtimes,
17875 class wide types are not potentially controlled anymore.
17876
17877 * expander.adb (Expand): Add case for new N_Extended_Return_Statement
17878 node kind.
17879
17880 * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
17881 Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
17882 it expects a block, procedure, or task. The return statement will get
17883 turned into a block, and Expand_Cleanup_Actions will happen then.
17884
178852006-10-31 Robert Dewar <dewar@adacore.com>
17886 Ed Schonberg <schonberg@adacore.com>
17887 Bob Duff <duff@adacore.com>
17888 Gary Dismukes <dismukes@adacore.com>
17889
17890 * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
17891 capability.
17892 (Expand_Inlined_Call): Tagged types are by-reference types, and
17893 therefore should be replaced by a renaming declaration in the expanded
17894 body, as is done for limited types.
17895 (Expand_Call): If this is a call to a function with dispatching access
17896 result, propagate tag from context.
17897 (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
17898 CPP by default.
17899 (Make_Build_In_Place_Call_In_Assignment): New procedure to do
17900 build-in-place when the right-hand side of an assignment is a
17901 build-in-place function call.
17902 (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
17903 of the explicit dereference of the allocator to the result subtype of
17904 the build-in-place function. This is needed to satisfy type checking
17905 in cases where the caller's return object is created by an allocator for
17906 a class-wide access type and the type named in the allocator is a
17907 specific type.
17908 (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
17909 conversion of the reference to the declared object to the result subtype
17910 of the build-in-place function. This is needed to satisfy type checking
17911 in cases where the declared object has a class-wide type. Also, in the
17912 class-wide case, change the type of the object entity to the specific
17913 result subtype of the function, to avoid passing a class-wide object
17914 without explicit initialization to the back end.
17915 (Register_Interface_DT_Entry): Moved outside the body of
17916 Freeze_Subprogram because this routine is now public; it is called from
17917 Check_Dispatching_Overriding to handle late overriding of abstract
17918 interface primitives.
17919 (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
17920 adding an implicit access actual on a call to a build-in-place function.
17921 (Expand_Actuals): Test for an actual parameter that is a call to a
17922 build-in-place function and apply
17923 Make_Build_In_Place_Call_In_Anonymous_Context to the call.
17924 (Is_Build_In_Place_Function): New function to determine whether an
17925 entity is a function whose calls should be handled as build-in-place.
17926 (Is_Build_In_Place_Function_Call): New function to determine whether an
17927 expression is a function call that should handled as build-in-place.
17928 (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
17929 calls to build-in-place functions as the initialization of an allocator.
17930 (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
17931 handling calls to build-in-place functions in contexts that do not
17932 involve init of a separate object (for example, actuals of subprogram
17933 calls).
17934 (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
17935 handling calls to build-in-place functions as the initialization of an
17936 object declaration.
17937 (Detect_Infinite_Recursion): Add explicit parameter Process to
17938 instantiation of Traverse_Body to avoid unreferenced warning.
17939 (Check_Overriding_Inherited_Interfaces): Removed.
17940 (Register_Interface_DT_Entry): Code cleanup.
17941 (Register_Predefined_DT_Entry): Code cleanup.
17942 (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
17943 inlined statements if within a transient scope.
17944 (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
17945 formal parameters with occurrences of actuals in inlined body, establish
17946 visibility on the proper view of the actual's subtype for the body's
17947 context.
17948 (Freeze_Subprogram): Do nothing if we are compiling under full ABI
17949 compatibility mode and we have an imported CPP subprogram because
17950 for now we assume that imported CPP primitives correspond with
17951 objects whose constructor is in the CPP side (and therefore we
17952 don't need to generate code to register them in the dispatch table).
17953 (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
17954 aligned selected component.
17955 (Add_Call_By_Copy_Node): Add missing code to handle the case in which
17956 the actual of an in-mode parameter is a type conversion.
17957 (Expand_Actuals): If the call does not come from source and the actual
17958 is potentially misaligned, let gigi handle it rather than rejecting the
17959 (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
17960 Class Wide types as returning by reference independantly of their
17961 controlled status since with HIE runtimes class wide types are not
17962 potentially controlled anymore.
17963
6f7f72f9 179642006-10-31 Ed Schonberg <schonberg@adacore.com>
70198b9f 17965
6f7f72f9 17966 * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
70198b9f
AC
17967 references that are private components of the protected object.
17968 (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
17969 (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
17970 instantiation to deal with warnings.
17971 (Initialize_Protection): If expression for priority is non-static, use
17972 System_Priority as its expected type, in case the expression has not
17973 been analyzed yet.
17974
179752006-10-31 Robert Dewar <dewar@adacore.com>
17976
17977 * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
17978 initialization of Homonym_Len.
17979 (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
17980 names from fully qualified name. Fixes problem of duplicate
17981 external names differing only in the presence of such a block name.
17982
179832006-10-31 Thomas Quinot <quinot@adacore.com>
17984 Pablo Oliveira <oliveira@adacore.com>
6f7f72f9
EB
17985
17986 * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
70198b9f
AC
17987 subprogram Ids, even if they are not yet assigned.
17988 (Build_Subprogram_Id): It is now this function that will take care of
17989 calling Assign_Subprogram_Ids if necessary.
17990 (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
17991 should be done only once they are assigned.
17992 (Build_From_Any_Function, case of tagged types): Add missing call to
17993 Allocate_Buffer.
17994 (Corresponding_Stub_Type): New subprogram. Returns the associated stub
17995 type for an RACW type.
17996 (Add_RACW_Features): When processing an RACW declaration for which the
17997 designated type is already frozen, enforce E.2.2(14) rules immediately.
17998 (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
17999 special reordering of controlling formals.
18000
18001 * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
18002 associated stub type for an RACW type.
18003
180042006-10-31 Ed Schonberg <schonberg@adacore.com>
18005
18006 * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
18007 fixed-point operations in an integer context, i.e. as operands of a
18008 conversion to an integer type, indicate that result must be rounded.
18009
180102006-10-31 Robert Dewar <dewar@adacore.com>
18011
18012 * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
18013 cases, pass the encoding method, since it is now required by the run
18014 time.
18015
18016 * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
18017 assumption that Str'First = 1.
18018 (Value_Wide_Character): Takes EM (encoding method) parameter and passes
18019 it on to the Value_Wide_Wide_Character call.
18020 (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
18021 properly handles a string of the form quote-encoded_wide_char-quote.
18022
18023 * s-wchcnv.adb: Minor reformatting
18024
180252006-10-31 Javier Miranda <miranda@adacore.com>
6f7f72f9 18026
70198b9f
AC
18027 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
18028 run-time membership test to ensure that the constructed object
18029 implements the target abstract interface.
18030
180312006-10-31 Robert Dewar <dewar@adacore.com>
18032
18033 * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
18034 Machine_Attribute pragma internally to implement the user pragma.
18035 Add processing for pragma Interface so that it is now completely
18036 equivalent to pragma Import.
18037
18038 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
18039 so that it can be applied to all entities, including record components
18040 and enumeration literals.
18041 (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
18042 priority ranges are correct, verify compatibility against task
18043 dispatching and locking policies, and if everything is correct an entry
18044 is added to the table containing priority specific dispatching entries
18045 for this compilation unit.
18046 (Delay_Config_Pragma_Analyze): Delay processing
18047 Priority_Specific_Dispatching pragmas because when processing the
18048 pragma we need to access run-time data, such as the range of
18049 System.Any_Priority.
18050 (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
18051 Allow pragma Unreferenced as a context item
18052 Add pragma Preelaborable_Initialization
18053 (Analyze_Pragma, case Interface): Interface is extended so that it is
18054 now syntactically and semantically equivalent to Import.
18055 (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
18056 insertion characters.
18057 Add handling for Pragma_Wide_Character_Encoding
18058 (Process_Restrictions_Restriction_Warnings): Ensure that a warning
18059 never supercedes a real restriction, and that a real restriction
18060 always supercedes a warning.
18061 (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
18062 appropriate form.
18063
180642006-10-31 Bob Duff <duff@adacore.com>
18065 Ed Schonberg <schonberg@adacore.com>
18066 Robert Dewar <dewar@adacore.com>
18067
18068 * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
18069 Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
18070 Is_Inherently_Limited_Type, because return-by-reference has no meaning
18071 in Ada 2005.
18072 (Find_Node_To_Be_Wrapped): Use new method of determining the result
18073 type of the function containing a return statement, because the
18074 Return_Type field was removed. We now use the Return_Applies_To field.
18075
6f7f72f9 18076 * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
70198b9f
AC
18077 (Build_Task_Image_Decl): If procedure is not called from an
18078 initialization procedure, indicate that function that builds task name
18079 uses the sec. stack. Otherwise the enclosing initialization procedure
18080 will carry the indication.
18081 (Insert_Actions): Remove N_Return_Object_Declaration. We now use
18082 N_Object_Declaration instead.
18083 (Kill_Dead_Code): New interface to implement -gnatwt warning for
18084 conditional dead code killed, and change implementation accordingly.
18085 (Insert_Actions): Add N_Return_Object_Declaration case.
18086 Correct comment to mention N_Extension_Aggregate node.
18087 (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
18088 attempts to save information for global variables which cannot be
18089 safely tracked.
18090 (Get_Current_Value_Condition): Handle conditions the other way round
18091 (constant on left). Also handle right operand of AND and AND THEN
18092 (Set_Current_Value_Condition): Corresponding changes
18093 (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
18094 (Get_Current_Value_Condition): Handle simple boolean operands
18095 (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
18096 (Get_Current_Value_Condition): If the variable reference is within an
18097 if-statement, does not appear in the list of then_statments, and does
18098 not come from source, treat it as being at unknown location.
18099 (Get_Current_Value_Condition): Enhance to allow while statements to be
18100 processed as well as if statements.
18101 (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
18102 come from source.
18103 (OK_To_Do_Constant_Replacement): Allow constant replacement within body
18104 of loop. This is safe now that we fixed Kill_Current_Values.
18105 (OK_To_Do_Constant_Replacement): Check whether current scope is
18106 Standard, before examining outer scopes.
18107
181082006-10-31 Vincent Celier <celier@adacore.com>
18109
18110 * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
18111 When True, apply VMS treatment to children of packages A, G, I and S.
18112 For F320-016
18113
18114 * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
18115
181162006-10-31 Robert Dewar <dewar@adacore.com>
18117 Ed Schonberg <schonberg@adacore.com>
18118
18119 * freeze.adb: Add handling of Last_Assignment field
18120 (Warn_Overlay): Supply missing continuation marks in error msgs
18121 (Freeze_Entity): Add check for Preelaborable_Initialization
18122
18123 * g-comlin.adb: Add Warnings (Off) to prevent new warning
18124
18125 * g-expect.adb: Add Warnings (Off) to prevent new warning
18126
18127 * lib-xref.adb: Add handling of Last_Assignment field
18128 (Generate_Reference): Centralize handling of pragma Obsolescent here
18129 (Generate_Reference): Accept an implicit reference generated for a
18130 default in an instance.
18131 (Generate_Reference): Accept a reference for a node that is not in the
18132 main unit, if it is the generic body corresponding to an subprogram
18133 instantiation.
18134
18135 * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
18136
6f7f72f9 18137 * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
70198b9f
AC
18138 -gnatwq/Q.
18139 (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
18140 exception handler.
18141 (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
18142 use clauses, to avoid messages on packages used to qualify, and also
18143 to avoid messages from obsolescent units.
18144 (Warn_On_Useless_Assignments): Don't generate messages for imported
18145 and exported variables.
18146 (Warn_On_Useless_Assignments): New procedure
18147 (Output_Obsolescent_Entity_Warnings): New procedure
18148 (Check_Code_Statement): New procedure
18149
6f7f72f9 18150 * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
70198b9f
AC
18151 Change name Is_Ada_2005 to Is_Ada_2005_Only
18152 (Last_Assignment): New field for useless assignment warning
18153
181542006-10-31 Olivier Hainque <hainque@adacore.com>
18155
18156 * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
18157 closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
18158
181592006-10-31 Bob Duff <duff@adacore.com>
18160 Robert Dewar <dewar@adacore.com>
18161 Ed Schonberg <schonberg@adacore.com>
18162
18163 * g-awk.adb (Default_Session, Current_Session): Compile this file in
18164 Ada 95 mode, because it violates the new rules for AI-318.
18165
18166 * g-awk.ads: Use overloaded subprograms in every case where we used to
18167 have a default of Current_Session. This makes the code closer to be
18168 correct for both Ada 95 and 2005.
18169
18170 * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
18171 code, relying on the fact that the compiler generates a warning
18172 instead of an error in -gnatg mode.
18173
18174 * lib-xref.ads (Xref_Entity_Letters): Add entry for new
18175 E_Return_Statement entity kind.
18176 Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
18177
18178 * par.adb (P_Interface_Type_Definition): Addition of one formal to
18179 report an error if the reserved word abstract has been previously found.
18180 (SS_End_Type): Add E_Return for new extended_return_statement syntax.
6f7f72f9
EB
18181
18182 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
70198b9f
AC
18183 parenthesized range attribute usage
18184 (P_Expression_No_Right_Paren): Add missing comment about error recovery.
18185
18186 * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
18187 in the syntax for extended_return_statement. This is not in the latest
18188 RM, but the ARG is expected to issue an AI allowing this.
18189 (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
18190 N_Return_Object_Declaration. We now use N_Object_Declaration instead.
18191 (P_Return_Object_Declaration, P_Return_Subtype_Indication,
18192 P_Return_Statement): Parse the new syntax for extended_return_statement.
18193
18194 * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
18195 Output_End_Missing): Add error-recovery code for the new
18196 extended_return_statement syntax; that is, the new E_Return entry on
18197 the scope stack.
18198
18199 * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
18200 limited to nonlimited, because otherwise we violate the new Ada 2005
18201 rules about returning limited types in function Create_AST_Handler in
18202 s-asthan.adb.
18203
18204 * sem.adb (Analyze): Add cases for new node kinds
18205 N_Extended_Return_Statement and N_Return_Object_Declaration.
18206
18207 * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
18208 type is in the same category as type of context before applying check,
18209 to prevent anomalies in instantiations.
18210 (Resolve_Aggregate): Remove test for limited components in aggregates.
18211 It's unnecessary in Ada 95, because if it has limited components, then
18212 it must be limited. It's wrong in Ada 2005, because limited aggregates
18213 are now allowed.
18214 (Resolve_Record_Aggregate): Move check for limited types later, because
18215 OK_For_Limited_Init requires its argument to have been resolved.
18216 (Get_Value): When copying the component default expression for a
18217 defaulted association in an aggregate, use the sloc of the aggregate
18218 and not that of the original expression, to prevent spurious
18219 elaboration errors, when the expression includes function calls.
18220 (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
18221 were missing. We also didn't handle qualified expressions. Now also
18222 allow function calls. Use new common routine OK_For_Limited_Init.
18223 (Resolve_Extension_Aggregate): Minor fix to bad error message (started
18224 with space can upper case letter).
18225
6f7f72f9 18226 * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
70198b9f 18227 Has_Static_Discriminants flag
6f7f72f9
EB
18228 (Record_Type_Declaration): Diagnose an attempt to declare an interface
18229 type with discriminants.
18230 (Process_Range_Expr_In_Decl): Do validity checks on range
70198b9f
AC
18231 (Build_Discriminant_Constraints): Use updated form of
18232 Denotes_Discriminant.
18233 (Process_Subtype): If the subtype is a private subtype whose full view
18234 is a concurrent subtype, introduce an itype reference to prevent scope
18235 anomalies in gigi.
18236 (Build_Derived_Record_Type, Collect_Interface_Primitives,
18237 Record_Type_Declaration): The functionality of the subprograms
18238 Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
18239 is now performed by a single routine.
18240 (Build_Derived_Record_Type): If the type definition includes an explicit
18241 indication of limitedness, then the type must be marked as limited here
18242 to ensure that any access discriminants will not be treated as having
18243 a local anonymous access type.
18244 (Check_Abstract_Overriding): Issue a detailed error message when an
18245 abstract subprogram was not overridden due to incorrect mode of its
18246 first parameter.
18247 (Analyze_Private_Extension_Declaration): Add support for the analysis of
18248 synchronized private extension declarations. Verify that the ancestor is
18249 a limited or synchronized interface or in the generic case, the ancestor
18250 is a tagged limited type or synchronized interface and all progenitors
18251 are either limited or synchronized interfaces.
18252 Derived_Type_Declaration): Check for presence of private extension when
18253 dealing with synchronized formal derived types.
18254 Process_Full_View): Enchance the check done on the usage of "limited" by
18255 testing whether the private view is synchronized.
18256 Verify that a synchronized private view is completed by a protected or
18257 task type.
18258 (OK_For_Limited_Init_In_05): New function.
18259 (Analyze_Object_Declaration): Move check for limited types later,
18260 because OK_For_Limited_Init requires its argument to have been resolved.
18261 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18262 in order to alleviate the upward compatibility introduced by AI-318.
18263 (Constrain_Corresponding_Record): If the constraint is for a component
18264 subtype, mark the itype as frozen, to avoid out-of-scope references to
18265 discriminants in the back-end.
18266 (Collect_Implemented_Interfaces): Protect the recursive algorithm of
18267 this subprogram against wrong sources.
18268 (Get_Discr_Value, Is_Discriminant): Handle properly references to a
18269 discriminant of limited type completed with a protected type, when the
18270 discriminant is used to constrain a private component of the type, and
18271 expansion is disabled.
18272 (Find_Type_Of_Object): Do not treat a return subtype that is an
18273 anonymous subtype as a local_anonymous_type, because its accessibility
18274 level is the return type of the enclosing function.
18275 (Check_Initialization): In -gnatg mode, turn the error "cannot
18276 initialize entities of limited type" into a warning.
18277 (OK_For_Limited_Init): Return true for generated nodes, since it
18278 sometimes violates the legality rules.
18279 (Make_Incomplete_Declaration): If the type for which an incomplete
18280 declaration is created happens to be the currently visible entity,
18281 preserve the homonym chain when removing it from visibility.
18282 (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
18283 inherited subprograms.
18284 (Access_Definition): If this is an access to function that is the return
18285 type of an access_to_function definition, context is a type declaration
18286 and the scope of the anonymous type is the current one.
18287 (Analyze_Subtype_Declaration): Add the defining identifier of a regular
18288 incomplete subtype to the set of private dependents of the original
18289 incomplete type.
18290 (Constrain_Discriminated_Type): Emit an error message whenever an
18291 incomplete subtype is being constrained.
18292 (Process_Incomplete_Dependents): Transform an incomplete subtype into a
18293 corresponding subtype of the full view of the original incomplete type.
18294 (Check_Incomplete): Properly detect invalid usage of incomplete types
18295 and subtypes.
18296
182972006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
18298
18299 * g-catiio.ads, g-catiio.adb (Value): New function.
18300 Given an input String, try and parse a valid Time value.
18301
183022006-10-31 Vincent Celier <celier@adacore.com>
18303
18304 * g-debpoo.adb (Is_Valid): Correctly compute Offset using
18305 Integer_Address arithmetic, as in Set_Valid.
18306
183072006-10-31 Arnaud Charlet <charlet@adacore.com>
18308 Robert Dewar <dewar@adacore.com>
18309
18310 * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
18311 handling executable extension manually and duplicating code.
18312
18313 * make.adb: Implement new -S switch
18314 (Gnatmake): Use new function Osint.Executable_Name instead
18315 of handling executable extension manually.
18316
18317 * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
18318 is specified, the executable name ends with this suffix.
18319 Take advantage of Osint.Executable_Name instead of duplicating code.
18320
18321 * switch-m.adb: Recognize new gnatmake -S switch
18322
18323 * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
18324 variable.
18325 (Get_Target_Parameters): Set Executable_Extension_On_Target if
18326 available.
18327
18328 * makeusg.adb: Add line for gnatmake -S switch
18329
183302006-10-31 Vincent Celier <celier@adacore.com>
18331
18332 * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
18333 call it with -static-libgcc, as there are some platforms, such as
18334 Darwin, where one of these two switches is compulsory to link.
18335
183362006-10-31 Vincent Celier <celier@adacore.com>
6f7f72f9 18337
70198b9f
AC
18338 * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
18339 instead of ADA_PROJECT_PATH, for the project path.
18340 (Gnatls): When displaying the project path directories, use host dir
18341 specs.
18342
18343 * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
18344 names in the project path, as absolute paths may correspond to
18345 multi-valued VMS logical names.
18346
183472006-10-31 Vincent Celier <celier@adacore.com>
18348
18349 * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
18350 absolute path name.
18351 (Locate_Regular_File): Ditto
18352 (Change_Dir): Remove, no longer used
18353 (Normalize_Pathname): Do not use Change_Dir to get the drive letter
18354 on Windows. Get it calling Get_Current_Dir.
18355 (OpenVMS): Remove imported boolean, no longer needed.
18356 (Normalize_Pathname)[VMS]: Do not resolve directory names.
18357 (Pid_To_Integer): New function to convert a Process_Id to Integer
18358
183592006-10-31 Thomas Quinot <quinot@adacore.com>
18360
18361 * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
18362 sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
18363 to No_Socket.
18364 (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
18365 W_Sig_Socket.
18366
183672006-10-31 Robert Dewar <dewar@adacore.com>
18368
18369 * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
18370 initial letter o as a zero.
18371
183722006-10-31 Robert Dewar <dewar@adacore.com>
18373
18374 * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
18375
183762006-10-31 Robert Dewar <dewar@adacore.com>
18377
6f7f72f9
EB
18378 * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
18379 variant records
18380 (Layout_Variant_Record): Retrieve the discriminants from the entity
70198b9f
AC
18381 rather than from the type definition, because in the case of a full
18382 type for a private type we need to take the discriminants from the
18383 partial view.
6f7f72f9
EB
18384 (Layout_Component_List): When applying the Max operator to variants with
18385 a nonstatic size, check whether either operand is static and scale that
18386 operand from bits to storage units before applying Max.
70198b9f
AC
18387 (Layout_Type): In VMS, if a C-convention access type has no explicit
18388 size clause (and does not inherit one in the case of a derived type),
18389 then the size is reset to 32 from 64.
18390
183912006-10-31 Vincent Celier <celier@adacore.com>
18392
18393 * lib-load.adb (Load_Unit): Skip the test for a unit not found when
18394 its file has already been loaded, according to the unit being loaded,
18395 not to the current value of Multiple_Unit_Index.
18396
183972006-10-31 Thomas Quinot <quinot@adacore.com>
18398 Eric Botcazou <ebotcazou@adacore.com>
18399 Arnaud Charlet <charlet@adacore.com>
18400
18401 * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
18402 (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
18403 possible.
18404 (a-except.o): Pass it to the compiler.
18405 (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
18406 (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
18407 a-calend-mingw.adb version.
18408
6f7f72f9 18409 * Makefile.rtl: Added s-dsaser.
70198b9f
AC
18410 Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
18411 (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
18412 Ada.Dispatching.Round_Robin.
18413 Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
18414
18415 * Make-lang.in: Remove all references to gt-ada-decl.h.
18416 Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
18417 sources.
18418 Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
18419 Update dependencies.
18420
18421 * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
18422
184232006-10-31 Vincent Celier <celier@adacore.com>
18424
18425 * mlib-utl.adb (Initialized): Remove, no longer used
18426 (Initialize): Remove, no longer used
18427 (Ar): If Ar_Exec is null, get the location of the archive builder and,
18428 if there is one, the archive indexer. Fail if the archive builder cannot
18429 be found.
18430 (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
18431 be found.
18432
184332006-10-31 Ed Schonberg <schonberg@adacore.com>
18434
18435 * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
18436 Process_Body_Clauses): If the context of a body includes a use clause
18437 for P.Q then a with_clause for P in the same body is not redundant,
18438 even if the spec also has a with_clause on P.
18439 Add missing continuation mark to error msg
18440 (Build_Limited_Views): A limited view of a type is tagged if its
18441 declaration includes a record extension.
18442 (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
18443 node, even if the subunit has errors. This avoids malfunction by
18444 Lib.Check_Same_Extended_Unit in the presence of syntax errors.
18445 (Analyze_Compilation_Unit): Add circuit to make sure we get proper
18446 generation of obsolescent messages for with statements (cannot do
18447 this too early, or we cannot implement avoiding the messages in the
18448 case of obsolescent units withing obsolescent units).
18449 (Install_Siblings): If the with_clause is on a remote descendant of
18450 an ancestor of the current compilation unit, find whether there is
18451 a sibling child unit that is immediately visible.
18452 (Remove_Private_With_Clauses): New procedure, invoked after completing
18453 the analysis of the private part of a nested package, to remove from
18454 visibility the private with_clauses of the enclosing package
18455 declaration.
18456 (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
18457 now centralized in Generate_Reference.
18458 (Install_Limited_Context_Clauses): Remove superfluous error
18459 message associated with unlimited view visible through use
18460 and renamings. In addition, at the point in which the error
18461 is reported, we add the backslash to the text of the error
18462 to ensure that it is reported as a single error message.
18463 Use new // insertion for some continuation messages
18464 (Expand_Limited_With_Clause): Use copy of name rather than name itself,
18465 to create implicit with_clause for parent unit mentioned in original
18466 limited_with_clause.
18467 (Install_Limited_With_Unit): Set entity of parent identifiers if the
18468 unit is a child unit. For ASIS queries.
18469 (Analyze_Subunit): If the subunit appears within a child unit, make all
18470 ancestor child units directly visible again.
18471
184722006-10-31 Robert Dewar <dewar@adacore.com>
18473
18474 * par-ch10.adb (P_Context_Clause): Minor error message fix
18475
184762006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
18477 Javier Miranda <miranda@adacore.com>
18478
18479 * par-ch12.adb: Grammar update and cleanup.
18480 (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
18481 support for synchronized derived type definitions.
18482 Add the new actual Abstract_Present to every call to
18483 P_Interface_Type_Definition.
18484 (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
18485 a formal object declaration with an access definition or a subtype mark
18486 with a null exclusion.
18487 (P_Generic_Association): Handle association with box, and others_choice
18488 with box, to support Ada 2005 partially parametrized formal packages.
18489
184902006-10-31 Robert Dewar <dewar@adacore.com>
18491 Javier Miranda <miranda@adacore.com>
6f7f72f9 18492
70198b9f
AC
18493 * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
18494 (P_Type_Declaration): Remove barrier against the reserved word "limited"
18495 after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
18496 (P_Type_Declaration): Minor code cleanup. Add support for synchronized
18497 private extensions.
18498 (P_Type_Declaration): Add the new actual Abstract_Present to every call
18499 to P_Interface_Type_Definition.
18500 (P_Interface_Type_Definition): Addition of one formal to report an error
18501 if the reserved word abstract has been previously found.
18502 (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
18503 object renaming declaration with an access definition or subtype mark
18504 with a possible null exclusion.
18505
18506 * par-ch9.adb: Minor error msg fix
18507
18508 * par-load.adb: Add missing continuation mark to error msg
18509
18510 * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
18511
185122006-10-31 Vincent Celier <celier@adacore.com>
18513
18514 * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
18515 unknown attribute in unknown package or in package that does not need
18516 to be checked.
18517 (Parse_Package_Declaration): Do not issue warning for unknown package in
18518 quiet output.
18519
185202006-10-31 Vincent Celier <celier@adacore.com>
18521
18522 * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
18523 (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
18524 Packages_To_Check.
18525
185262006-10-31 Vincent Celier <celier@adacore.com>
18527
18528 * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
18529 on VMS, change "__" to '.' before checking the name.
18530 (Record_Ada_Source): Always add the source file name in the list of
18531 of sources, even if it is not the first time, as it is for another
18532 source index.
18533 (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
18534 dot, instead of replacing only the first '_'.
18535
18536 * prj-part.adb (Parse): Convert project file path to canonical form
18537
18538 * prj-proc.adb (Recursive_Process): Make sure that, when a project is
18539 extended, the project id of the project extending it is recorded in its
18540 data, even when it has already been processed as an imported project.
18541
185422006-10-31 Robert Dewar <dewar@adacore.com>
18543
18544 * repinfo.adb (List_Entities): Don't list entities from renaming
18545 declarations.
18546
185472006-10-31 Arnaud Charlet <charlet@adacore.com>
18548 Robert Dewar <dewar@adacore.com>
18549
18550 * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
18551 only a restriction warning is active for the given restriction. This is
18552 desirable because we do not want to modify code in the case where only
18553 a warning is set.
18554 (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
18555 causes overriding of real restrictions.
18556 Take advantage of new No_Restrictions constant.
18557
18558 * raise.h: (__gnat_set_globals): Change profile.
18559
185602006-10-31 Arnaud Charlet <charlet@adacore.com>
70198b9f 18561
6f7f72f9
EB
18562 * rtsfind.adb: Remove s-polint from comment as it exists no more.
18563
9e81dbc7 18564 * rtsfind.ads:
6f7f72f9
EB
18565 Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
18566 Move all the entities in obsolete package System.PolyORB_Interface to
18567 System.Partition_Interface.
70198b9f
AC
18568 (RE_Storage_Size): New function in System.Tasking.
18569 (RE_Get_Ceiling): New entity.
18570 (RE_Set_Ceiling): New entity.
18571 (RO_PE_Get_Ceiling): New entity.
18572 (RO_RE_Set_Ceiling): New entity.
18573 (Inherit_CPP_DT): New entity
18574
185752006-10-31 Robert Dewar <dewar@adacore.com>
18576
18577 * scng.adb (Scan, case of numeric literal): Better msg for identifier
18578 starting with a digit.
18579
185802006-10-31 Ed Schonberg <schonberg@adacore.com>
18581 Thomas Quinot <quinot@adacore.com>
18582 Javier Miranda <miranda@adacore.com>
18583 Gary Dismukes <dismukes@adacore.com>
18584
18585 * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
18586 properly an attempt to apply Unchecked_Access to a protected operation.
18587 (OK_Self_Reference): New subprogram to check the legality of an access
18588 attribute whose prefix is the type of an enclosing aggregate.
18589 Generalizes previous mechanism to handle attribute references nested
18590 arbitrarily deep within the aggregate.
18591 (Analyze_Access_Attribute): An access attribute whose prefix is a type
18592 can appear in an aggregate if this is a default-initialized aggregate
18593 for a self-referential type.
18594 (Resolve_Attribute, case Access): Ditto.
18595 Add support for new implementation defined attribute Stub_Type.
18596 (Eval_Attribute, case Attribute_Stub_Type): New case.
18597 (Analyze_Attribute, case Attribute_Stub_Type): New case.
18598 (Stream_Attribute_Available): Implement using new subprogram from
18599 sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
18600 Has_Specified_Stream_Attribute flag.
18601 Disallow Storage_Size and Storage_Pool for access to subprogram
18602 (Resolve_Attribute, case 'Access et al): Take into account anonymous
18603 access types of return subtypes in extended return statements. Remove
18604 accessibility checks on anonymous access types when Unchecked_Access is
18605 used.
18606 (Analyze_Attribute): Add support for the use of 'Class to convert
18607 a class-wide interface to a tagged type.
18608 Add support for the attribute Priority.
18609 (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
18610 whether the designated type is discriminated with a constrained partial
18611 view and require static matching in that case.
18612 Add local variable Des_Btyp. The Designated_Type
18613 of an access to incomplete subtype is either its non-limited view if
18614 coming from a limited with or its etype if regular incomplete subtype.
18615
18616 * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
18617 Fix predicate to identify and allow cases of (expander-generated)
18618 references to tag of designated object of a RACW.
18619 (Validate_Static_Object_Name): In Ada 2005, a formal object is
18620 non-static, and therefore cannot appear as a primary in a preelaborable
18621 package.
18622 (Has_Stream_Attribute_Definition): New subprogram, abstracted from
18623 Has_Read_Write_Attributes.
18624 (Has_Read_Write_Attributes): Reimplement in termes of
18625 Has_Stream_Attribute_Definition.
18626 (Missing_Read_Write_Attributes): When checking component types in a
18627 record, unconditionally call Missing_Read_Write_Attributes recursively
18628 (remove guard checking for Is_Record_Type / Is_Access_Type).
18629
186302006-10-31 Robert Dewar <dewar@adacore.com>
18631
18632 * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
18633 useless assignments here and conditionalize it on absence of exception
18634 handlers.
18635 (Analyze_Exception_Handlers): Small code reorganization of error
18636 detection code, for new handling of formal packages.
18637
186382006-10-31 Ed Schonberg <schonberg@adacore.com>
18639 Hristian Kirtchev <kirtchev@adacore.com>
6f7f72f9
EB
18640
18641 * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
70198b9f
AC
18642 that has been constant-folded, preserve information of original tree,
18643 for ASIS uses.
18644 (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
18645 generated private extension declaration if the formal derived type is
18646 synchronized. Carry synchronized present over to the generated private
18647 extension.
18648 (Validate_Derived_Type_Instance): Ensure that the actual of a
18649 synchronized formal derived type is a synchronized tagged type.
18650 (Instantiate_Formal_Package): When creating the instantiation used to
18651 validate the actual package of a formal declared without a box, check
18652 whether the formal itself depends on a prior actual.
18653 (Instantiate_Formal_Subprogram): Create new entities for the defining
18654 identifiers of the formals in the renaming declaration, for ASIS use.
18655 (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
18656 a renaming declaration or a subtype declaration for an actual in an
18657 instance, capture location information of declaration in generic, for
18658 ASIS use.
18659 (Instantiate_Formal_Package): Add comments on needed additional tests.
18660 AI-317 (partial parametrization) is fully implemented.
18661 (Validate_Private_Type_Instance): Add check for actual which
18662 must have preelaborable initialization
18663 Use new // insertion for some continuation messages
18664 (Analyze_Formal_Object_Declaration): Change usage of Expression to
18665 Default_Expression. Add type retrieval when the declaration has an
18666 access definition. Update premature usage of incomplete type check.
18667 (Check_Access_Definition): New subsidiary routine. Check whether the
18668 current compilation version is Ada 05 and the supplied node has an
18669 access definition.
18670 (Instantiate object): Alphabetize local variables. Handle the creation
18671 of new renaming declarations with respect to the kind of definition
18672 used - either an access definition or a subtype mark. Guard against
18673 unnecessary error message in the context of anonymous access types after
18674 they have been resolved. Add check for required null exclusion in a
18675 formal object declaration.
18676 (Switch_View): A private subtype of a non-private type needs to be
18677 switched (the base type can have been switched without its private
18678 dependents because of the last branch of Check_Private_View.
18679 (Check_Private_View): Do not recompute Base_Type (T), instead use cached
18680 value from BT.
18681 (Instantiate_Type): Emit an error message whenever a class-wide type of
18682 a tagged incomplete type is used as a generic actual.
18683 (Find_Actual_Type): Extend routine to handle a component type in a child
18684 unit that is imported from a formal package in a parent.
18685 (Validate_Derived_Type_Instance): Check that analyzed formal and actual
18686 agree on constrainedness, rather than checking against ultimate ancestor
18687 (Instantiate_Subprogram_Body): Create a cross-reference link to the
18688 generic body, for navigation purposes.
18689
186902006-10-31 Robert Dewar <dewar@adacore.com>
18691 Thomas Quinot <quinot@adacore.com>
18692
18693 * sem_ch13.adb: Storage pool cannot be given for access to subprogram
18694 type.
18695 (New_Stream_Subprogram): When processing an attribute definition clause
18696 for a stream-oriented subprogram, record an entity node occurring at
18697 the point of clause to use for checking the visibility of the clause,
18698 as defined by 8.3(23) as amended by AI-195.
18699 (New_Stream_Subprogram): New procedure, factoring behaviour from both
18700 New_Stream_Function and New_Stream_Procedure.
18701 (New_Stream_Function, New_Stream_Procedure): Removed.
18702 (Analyze_Attribute_Definition_Clause, case Address): Check new
18703 Alignment_Check check
18704
187052006-10-31 Ed Schonberg <schonberg@adacore.com>
18706 Javier Miranda <miranda@adacore.com>
18707 Robert Dewar <dewar@adacore.com>
18708
18709 * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
18710 generate the same errors compiling under -gnatc.
18711 (Try_Object_Operation): If no candidate interpretation succeeds, but
18712 there is at least one primitive operation with the right name, report
18713 error in call rather than on a malformed selected component.
18714 (Analyze_Selected_Component): If the prefix is an incomplete type from
18715 a limited view, and the full view is available, use the full view to
18716 determine whether this is a prefixed call to a primitive operation.
18717 (Operator_Check): Verify that a candidate interpretation is a binary
18718 operation before checking the type of its second formal.
18719 (Analyze_Call): Add additional warnings for function call contexts not
18720 yet supported.
18721 (Analyze_Allocator): Move the check for "initialization not allowed for
18722 limited types" after analyzing the expression. This is necessary,
18723 because OK_For_Limited_Init looks at the structure of the expression.
18724 Before analysis, we don't necessarily know what sort of expression it
18725 is. For example, we don't know whether F(X) is a function call or an
18726 indexed component; the former is legal in Ada 2005; the latter is not.
18727 (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
18728 were missing. We also didn't handle qualified expressions. Now also
18729 allow function calls. Use new common routine OK_For_Limited_Init.
18730 (Analyze_Type_Conversion): Do not perform some legality checks in an
18731 instance, because the error message will be redundant or spurious.
18732 (Analyze_Overloaded_Selected_Component): Do not do style check when
18733 setting an entity, since we do not know it is the right entity yet.
18734 (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
18735 (Analyze_Overloaded_Selected_Component): Same change
18736 (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
18737 since regular incomplete subtypes are transformed into corresponding
18738 subtypes of their full views.
18739 (Complete_Object_Operation): Treat name of transformed subprogram call
18740 as coming from source, for browsing purposes.
18741 (Try_Primitive_Operation): If formal is an access parameter, compare
18742 with base type of object to determine whether it is a primitive
18743 operation.
18744 (Operator_Check): If no interpretation of the operator matches, check
18745 whether a use clause on any candidate might make the operation legal.
18746 (Try_Class_Wide_Operation): Check whether the first parameter is an
18747 access type whose designated type is class-wide.
18748
187492006-10-31 Robert Dewar <dewar@adacore.com>
18750 Ed Schonberg <schonberg@adacore.com>
18751 Gary Dismukes <dismukes@adacore.com>
18752
18753 * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
18754 warn on infinite loops.
18755 Add \\ to some continuation messages
18756 (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
18757 (Process_Bounds): If the bounds are integer literals that result from
18758 constant-folding, and they carry a user-defined type, preserve that type
18759 rather than treating this as an integer range.
18760 (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
18761 (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
18762 (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
18763 left hand side of assignment.
18764 (Analyze_Assignment): Add suport to manage assigments to the attribute
18765 priority of a protected object.
18766 (Check_Possible_Current_Value_Condition): Allow fully qualified names
18767 not just identifiers.
18768 (Check_Possible_Current_Value_Condition): Acquire left operand of AND
18769 or AND THEN for possible tracking.
18770 (Analyze_Iteration_Scheme): Check for setting Current_Value for the
18771 case of while loops so we can track values in the loop body.
18772
187732006-10-31 Ed Schonberg <schonberg@adacore.com>
18774 Hristian Kirtchev <kirtchev@adacore.com>
18775 Bob Duff <duff@adacore.com>
6f7f72f9 18776
70198b9f
AC
18777 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
18778 procedure cannot be a protected operation (it is a basic_declaration,
18779 not a subprogram_declaration).
18780 (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
18781 Subp. Add logic for entry processing.
18782 (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
18783 Determine whether an entry or subprogram of a protected or task type
18784 override an inherited primitive of an implemented interface.
18785 (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
18786 Update the actual used in calls to Check_Overriding_Indicator.
18787 (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
18788 generate the proper reference to the parent unit, for cross-reference.
18789 (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
18790 Is_Formal.
18791 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18792 (Add_Extra_Formal): Revise procedure to allow passing in associated
18793 entity, scope, and name suffix, and handle setting of the new
18794 Extra_Formals field.
18795 (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
18796 pass new parameters. Add support for adding the new extra access formal
18797 for functions whose calls are treated as build-in-place.
18798 (Analyze_A_Return_Statement): Correct casing in error message.
18799 Move Pop_Scope to after Analyze_Function_Return, because an extended
18800 return statement really is a full-fledged scope. Otherwise, visibility
18801 doesn't work right. Correct use of "\" for continuation messages.
18802 (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
18803 evilly trying to call Analyze_Object_Declaration directly. Otherwise,
18804 the node doesn't get properly marked as analyzed.
18805 (Analyze_Subprogram_Body): If subprogram is a function that returns
18806 an anonymous access type that denotes a task, build a Master Entity
18807 for it.
18808 (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
18809 proper usage of null exclusion in a result definition.
18810 (Process_Formals): Code cleanup and new error message.
18811 (Process_Formals): Detect incorrect application of null exclusion to
18812 non-access types.
18813 (Conforming_Types): Handle conformance between [sub]types and itypes
18814 generated for entities that have null exclusions applied to them.
18815 (Maybe_Primitive_Operation): Add an additional type retrieval when the
18816 base type is an access subtype. This case arrises with null exclusions.
18817 (New_Overloaded_Entity): Do not remove the overriden entity from the
18818 homonym chain if it corresponds with an abstract interface primitive.
18819 (Process_Formals): Replace membership test agains Incomplete_Kind with a
18820 call to the synthesized predicate Is_Incomplete_Type.
18821 (Analyze_Subprogram_Body): Check wrong placement of abstract interface
18822 primitives.
18823 (Analyze_Subprogram_Declaration): Check that abstract interface
18824 primitives are abstract or null.
18825 (Analyze_Subprogram_Specification): Remove previous check for abstract
18826 interfaces because it was not complete.
18827 (Has_Interface_Formals): Removed.
18828
188292006-10-31 Ed Schonberg <schonberg@adacore.com>
18830 Javier Miranda <miranda@adacore.com>
18831
18832 * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
18833 of Analyze_Package_Body, to create Itype references for anonymous
18834 access types created in the package declaration, whose designated types
18835 may have only a limited view.
18836 (Analyze_Package_Specification): For the private part of a nested
18837 package, install private_with_clauses of enclosing compilation unit if
18838 we are in its visible part.
18839 (Declare_Inherited_Private_Subprograms): Complete barrier
18840 to ensure that the primitive operation has an alias to some parent
18841 primitive. This is now required because, after the changes done for the
18842 implementation of abstract interfaces, the contents of the list of
18843 primitives has entities whose alias attribute references entities of
18844 such list of primitives.
18845 (Analyze_Package_Specification): Simplify code that handles parent units
18846 of instances and formal packages.
18847 (Uninstall_Declarations): Check the convention consistency among
18848 primitive overriding operations of a tagged record type.
18849
188502006-10-31 Robert Dewar <dewar@adacore.com>
18851 Hristian Kirtchev <kirtchev@adacore.com>
18852 Javier Miranda <miranda@adacore.com>
18853 Ed Schonberg <schonberg@adacore.com>
6f7f72f9 18854
70198b9f
AC
18855 * sem_ch8.adb: Minor error msg rewording
18856 (Undefined): When checking for misspellings, invert arguments (to get
18857 expected and found set right)
18858 (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
18859 (Analyze_Generic_Renaming): Same fix
18860 (Use_One_Package): Do not take into account the internal entities of
18861 abstract interfaces during the analysis of entities that are marked
18862 as potentially use-visible.
18863 (Find_Type): Handle the case of an attribute reference for
18864 implementation defined attribute Stub_Type (simply let the analysis of
18865 the attribute reference rewrite it).
18866 (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
18867 type that appears in a Use_Type clause.
18868 (Analyze_Object_Renaming): Add support for renaming of the Priority
18869 attribute.
18870 (Find_Type): In Ada 2005, a task type can be used within its own body,
18871 when it appears in an access definition.
18872 (Analyze_Object_Renaming): Remove warning on null_exclusion.
18873 (Analyze_Object_Renaming): Introduce checks for required null exclusion
18874 in a formal object declaration or in a subtype declaration.
18875 (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
18876 (Check_Null_Exclusion): New local routine to
18877 Analyze_Subprogram_Renaming. Check whether the formals and return
18878 profile of a renamed subprogram have required null exclusions when
18879 their counterparts of the renaming already impose them.
18880 (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
18881 Determine whether an entity is inside a generic scope.
18882 (In_Open_Scope): First pass of documentation update.
18883 (Find_Expanded_Name): Add support for shadow entities associated with
18884 limited withed packages. This is required to handle nested packages.
18885 (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
18886 that makes a renaming of a limited withed package illegal.
18887
188882006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
18889 Ed Schonberg <schonberg@adacore.com>
18890
18891 * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
18892 Check_Overriding_Indicator.
18893 (Analyze_Task_Definition): Ditto.
18894 (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
18895 (Check_Overriding_Indicator): To find overridden interface operation,
18896 examine only homonyms that have an explicit subprogram declaration, not
18897 inherited operations created by an unrelated type derivation.
18898 (Check_Overriding_Indicator): When checking for the presence of "null"
18899 in a procedure, ensure that the queried node is a procedure
18900 specification.
18901 (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
18902 type when the formal is an access to variable.
18903 (Analyze_Protected_Type): Add check for Preelaborable_Initialization
18904 (Analyze_Task_Type): Same addition
18905 (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
18906 provide navigation capabilities for entries.
18907
189082006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
18909 Ed Schonberg <schonberg@adacore.com>
18910 Javier Miranda <miranda@adacore.com>
18911 Gary Dismukes <dismukes@adacore.com>
18912
18913 * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
18914 inherited from an interface ancestor by another interface in the
18915 context of an instance as 'late'.
18916 (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
18917 of a call to a function that dispatches on access result.
18918 (Check_Dispatching_Operation): In case of late overriding of a primitive
18919 that covers abstract interface subprograms we register it in all the
18920 secondary dispatch tables associated with abstract interfaces.
18921 (Check_Dispatching_Call): Add check that a dispatching call is not made
18922 to a function with a controlling result of a limited type. This is a
18923 current implementation restriction.
18924 (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
18925 (Check_Dispatching_Operation): Do no emit a warning if the controlling
18926 argument is an interface type that is a generic formal.
18927 (Is_Interface_Subprogram): Removed.
18928 (Check_Dispatching_Operation): If the subprogram is not a dispatching
18929 operation, check the formals to handle the case in which it is
18930 associated with an abstract interface type.
18931
189322006-10-31 Robert Dewar <dewar@adacore.com>
18933 Ed Schonberg <schonberg@adacore.com>
18934
18935 * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
18936 Add new calls to this procedure during traversal
18937 (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
18938 another unit if expansion is disabled.
18939
189402006-10-31 Robert Dewar <dewar@adacore.com>
18941
18942 * sem_eval.adb (Compile_Time_Compare): Make use of information from
18943 Current_Value in the conditional case, to evaluate additional
18944 comparisons at compile time.
18945
189462006-10-31 Ed Schonberg <schonberg@adacore.com>
18947 Hristian Kirtchev <kirtchev@adacore.com>
18948 Javier Miranda <miranda@adacore.com>
18949
18950 * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
18951 subprogram type to provide better diagnostics in case of ambiguity.
18952 (Covers): Handle coverage of formal and actual anonymous access types in
18953 the context of generic instantiation.
18954 (Covers/Interface_Present_In_Ancestors): Use the base type to manage
18955 abstract interface types; this is required to handle concurrent types
18956 with discriminants and abstract interface types.
18957 (Covers): Include type coverage of both regular incomplete subtypes and
18958 incomplete subtypes of incomplete type visibles through a limited with
18959 clause.
18960
189612006-10-31 Robert Dewar <dewar@adacore.com>
18962 Hristian Kirtchev <kirtchev@adacore.com>
18963 Ed Schonberg <schonberg@adacore.com>
6f7f72f9
EB
18964
18965 * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
70198b9f
AC
18966 messages for entities in packages which are not used.
18967 (Collect_Synchronized_Interfaces): New procedure.
18968 (Overrides_Synchronized_Primitive): New function.
18969 (Denotes_Discriminant): Extend predicate to apply to task types.
18970 Add missing continuation marks in error msgs
18971 (Unqualify): New function for removing zero or more levels of
18972 qualification from an expression. There are numerous places where this
18973 ought to be used, but we currently only deal properly with zero or one
18974 level.
18975 (In_Instance); The analysis of the actuals in the instantiation of a
18976 child unit is not within an instantiation, even though the parent
18977 instance is on the scope stack.
18978 (Safe_To_Capture_Value): Exclude the case of variables that are
18979 renamings.
18980 (Check_Obsolescent): Removed
18981 (Is_Aliased_View): A reference to an enclosing instance in an aggregate
18982 is an aliased view, even when rewritten as a reference to the target
18983 object in an assignment.
18984 (Get_Subprogram_Entity): New function
18985 (Known_To_Be_Assigned): New function
18986 (Type_Access_Level): Compute properly the access level of a return
18987 subtype that is an anonymous access type.
18988 (Explain_Limited_Type): Correct use of "\" for continuation messages.
18989 (Is_Transfer): The new extended_return_statement causes a transfer of
18990 control.
18991 (Has_Preelaborable_Initialization): New function
18992 (Has_Null_Exclusion): New function. Given a node N, determine whether it
18993 has a null exclusion depending on its Nkind.
18994 Change Is_Lvalue to May_Be_Lvalue
18995 (May_Be_Lvalue): Extensive additional code to deal with subprogram
18996 arguments (IN parameters are not Lvalues, IN OUT parameters are).
18997 (Safe_To_Capture_Value): Extend functionality so it can be used for
18998 the current value condition case.
18999 (Has_Compatible_Alignment): New function
19000 (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
19001 objects to handle the Ada 2005 case, where aliasedness no longer implies
19002 that the object is constrained. In particular, for dereferenced names,
19003 the designated object must be assumed to be unconstrained.
19004 (Kill_Current_Values): Properly deal with the case where we encounter
19005 a loop in the scope chain.
19006 (Safe_To_Capture_Value): Do not let a loop stop us from capturing
19007 a value.
19008 (Compile_Time_Constraint_Error): Improve error message in error case
19009
19010 * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
19011 associated with entities of abstract interface primitives.
19012 Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
19013
190142006-10-31 Robert Dewar <dewar@adacore.com>
19015
9e81dbc7 19016 * s-osinte-tru64.adb:
70198b9f
AC
19017 Mark Asm statements Volatile to prevent warnings (seems a
19018 reasonable change anyway)
19019 Fixes new warnings
19020
19021 * s-mastop-irix.adb: Add Volatile to Asm statements
19022 Suppresses warning, and seems appropriate in any case
19023
19024 * s-osinte-vms.adb: Add Volatile to Asm statement
19025
19026 * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
19027
19028 * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
19029 returned.
19030 Add call to Check_Code_Statement
19031
190322006-10-31 Robert Dewar <dewar@adacore.com>
19033 Ed Schonberg <schonberg@adacore.com>
19034 Bob Duff <duff@adacore.com>
19035
19036 * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
19037 Synchronized_Present): Add Formal_Derived_Type_Definition and
19038 Private_Extension_Declaration to the list of assertions.
19039 (Is_Entry_Barrier_Function): New flag
19040 (Has_Self_Reference): New flag on aggregates, to indicate that they
19041 contain a reference to the enclosing type, inserted through a default
19042 initialization.
19043 (Next_Rep_Item): Move from Node4 to Node5.
19044 (Entity): Add this field for N_Attribute_Definition_Clause.
19045 (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
19046 (N_Return_Object_Declaration): Remove this node kind. We now use
19047 N_Object_Declaration instead.
19048 (Actual_Designated_Subtype): Move to a different place to make room in
19049 N_Extended_Return_Statement.
19050 (Procedure_To_Call): Move to a different place to make room in
19051 N_Extended_Return_Statement.
19052 (Return_Type): Removed this field to make room in return statements
19053 (both kinds).
19054 (Return_Statement_Entity): New field in return statements, in part to
19055 replace Return_Type, and in part to support the fact that return
19056 statements are now pushed on the scope stack during semantic analysis.
19057 (Return_Object_Declarations): New field to support extended return
19058 statements.
19059 (N_Extended_Return_Statement): New node for extended_return_statement
19060 nonterminal.
19061 (N_Return_Object_Declaration): New node for part of
19062 extended_return_statement nonterminal. Needed because all the necessary
19063 fields won't fit in N_Extended_Return_Statement.
19064 Generic_associations now carry the Box_Present flag, to indicate a
19065 default for an actual in a partially parametrized formal package.
19066
6f7f72f9 19067 * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
70198b9f
AC
19068 (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
19069 and for the new predefined dispatching policies: EDF_Across_Priorities,
19070 Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
19071 Introduce new name Stub_Type for implementation defined attribute.
19072 Add pragma Preelaborable_Initialization
19073 Add entry for Priority attribute.
19074 Add Pragma_Wide_Character_Encoding
19075 (Get_Convention_Name): Given a convention id, this function returns the
19076 corresponding name id from the names table.
19077
190782006-10-31 Ed Schonberg <schonberg@adacore.com>
19079 Robert Dewar <dewar@adacore.com>
19080 Bob Duff <duff@adacore.com>
19081
19082 * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
19083 print null exclusion twice in the case of an access definition,
19084 Implement new -gnatL switch
19085 Remove N_Return_Object_Declaration. We now use
19086 N_Object_Declaration instead. Implement the case for
19087 N_Extended_Return_Statement. Alphabetize the cases.
19088 Add cases for new nodes N_Extended_Return_Statement and
19089 N_Return_Object_Declaration. The code is not yet written.
19090 Update the output for N_Formal_Object_Declaration
19091 and N_Object_Renaming_Declaration.
19092 (Write_Itype): Account for the case of a modular integer subtype whose
19093 base type is private.
19094
190952006-10-31 Arnaud Charlet <charlet@adacore.com>
19096
19097 * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
19098 Remove elaboration code, now done in the binder.
19099
19100 * s-rident.ads: Make this unit Preelaborate.
19101 (No_Restrictions): New constant used to clean up code and follow
19102 preelaborate constraints.
19103
9e81dbc7 19104 * s-stalib.adb:
70198b9f
AC
19105 Add System.Restrictions dependence, referenced directly from the
19106 binder generated file.
19107
191082006-10-31 Gary Dismukes <dismukes@adacore.com>
19109
19110 * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
19111 True when AAMP extended floating-point is in use (48-bit). Change type
19112 ByteLF to ByteLLF, add new array type ByteLF and condition the size of
19113 the two byte array types on AFloat. Change type of IV_Ilf overlay
19114 variable from Byte8 to ByteLF. Add appropriate initializations of
19115 floating-point overlays for AAMP cases.
19116
191172006-10-31 Javier Miranda <miranda@adacore.com>
19118
19119 * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
19120 (Get_Ceiling): New subprogram that returns
19121 the ceiling priority of the protected object.
19122 (Set_Ceiling): New subprogram that sets the new ceiling priority of
19123 the protected object.
19124
19125 * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
19126
19127 * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
19128
191292006-10-31 Jose Ruiz <ruiz@adacore.com>
19130
19131 * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
19132 requeuing to the same protected object to give higher priority tasks
19133 the opportunity to execute.
19134
191352006-10-31 Robert Dewar <dewar@adacore.com>
19136
19137 * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
19138 add more precise check for the character sequence that follows '[' to
19139 avoid possible confusion in case if '[' is the last character of a
19140 string literals.
19141 (Scan_Wide): Always allow brackets encoding
19142
191432006-10-31 Olivier Hainque <hainque@adacore.com>
19144
19145 * s-stchop.ads: make this unit preelaborate. This is desirable in
19146 general and made mandatory by the use of this unit by s-taprop which
19147 is itself preelaborate.
19148
19149 * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
19150 Td_Events component.
19151
191522006-10-31 Vincent Celier <celier@adacore.com>
19153
19154 * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
19155 in file names.
19156
191572006-10-31 Vincent Celier <celier@adacore.com>
19158
19159 * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
19160
191612006-10-31 Vincent Celier <celier@adacore.com>
19162
19163 * makegpr.adb (Check_Compilation_Needed): Take into account path names
19164 with spaces.
19165 (Check_Compilation_Needed): When checking a C or C++ source, do not
19166 resolve symbolic links.
19167 (Display_Command): New Boolean parameter Ellipse, defaulted to False.
19168 When not in verbose mode and Ellipse is True, display "..." for the
19169 first argument with Display set to False.
19170 (Build_Global_Archive): Always set Display True for the first object
19171 file. Call Display_Command with Ellipse set to True.
19172
191732006-10-31 Matt Heaney <heaney@adacore.com>
19174
19175 * a-crbtgo.ads: Commented each subprogram
19176
19177 * a-crbtgo.adb: Added reference to book from which algorithms were
19178 adapted.
19179
6f7f72f9 19180 * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
70198b9f
AC
19181 indicate which child.
19182 (Generic_Conditional_Insert): changed parameter name from "Success" to
19183 "Inserted".
19184 (Generic_Unconditional_Insert_With_Hint): improved algorithm
19185
19186 * a-coorse.adb (Replace_Element): changed parameter name in call to
19187 conditional insert operation.
19188
19189 * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
19190
19191 * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
19192 Generic_Iteration
19193
19194 * a-ciorse.adb (Replace_Element): changed parameter name in call to
19195 conditional insert operation.
19196
19197 * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
19198 Generic_Iteration.
19199
19200 * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
19201 instead of mode inout.
19202
19203 * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
19204 draft
19205 (Generic_Read): preserve existing buckets array if possible
19206 (Generic_Write): don't send buckets array length anymore
19207
19208 * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
19209 instead of mode inout.
19210
19211 * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
19212 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19213
19214 * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
19215 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19216 (Replace_Element): local operation is now an instantiation
19217
19218 * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
19219 check current length.
19220 (Generic_Replace_Element): new operation
19221
192222006-10-31 Doug Rupp <rupp@adacore.com>
19223
19224 * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
19225 Call TBK$SYMBOLIZE without omitting parameters.
19226
192272006-10-31 Vincent Celier <celier@adacore.com>
19228
19229 * symbols-processing-vms-ia64.adb,
19230 symbols-processing-vms-alpha.adb (Process): Do not include symbols
19231 that come from generic instantiations in bodies.
19232
192332006-10-31 Pat Rogers <rogers@adacore.com>
19234
9e81dbc7 19235 * a-rttiev.ads, a-rttiev.adb:
70198b9f
AC
19236 This is a significant redesign primarily for the sake of automatic
19237 timer task termination but also to fix a design flaw.
19238 Therefore we are now using an RTS lock, instead of a protected
19239 object, to provide mutual exclusion to the queue of pending events
19240 and the type Timing_Event is no longer a protected type.
19241
192422006-10-31 Robert Dewar <dewar@adacore.com>
19243 Cyrille Comar <comar@adacore.com>
19244 Ben Brosgol <brosgol@adacore.com>
19245
19246 * debug.adb: Update flags documentation
19247
6f7f72f9
EB
19248 * gnat_ugn.texi: Add documentation for new -gnatwq switch
19249 Clean up documentation for several other warning switches
19250 Clarify how task stack size can be specified with various
19251 versions of Windows.
19252 Add note that -gnatVo includes ranges including loops
70198b9f
AC
19253 Add documentation for -gnatL switch
19254 Add note on elaboration warning for initializing variables
19255 Add documentation for new -gnatwt warning switch
19256 Document new form of pragma Warnings (On|Off, string)
19257 Add comment on use of pragma Warnings to control warnings
19258 Add documentation for -gnatjnn switch
19259 Modify section on interfacing with C for VMS 64-bit.
19260 Add doc for -gnatVe/E
19261 Add documentation of new warning flags -gnatww/-gnatwW
19262 Add warnings about address clause overlays to list of warnings
19263 (Exception Handling Control): Document that the option --RTS must be
19264 used consistently for gcc and gnatbind.
19265 Clarify that inlining is not always possible
19266 Update documentation on pragma Unchecked_Union.
19267
9e81dbc7 19268 * gnat_rm.texi:
70198b9f
AC
19269 Add documentation for new extended version of pragma Obsolescent
19270 Add documentation for implementation defined attribute 'Stub_Type.
19271 Add note on use of Volatile in asm statements
19272 Add documentation on use of pragma Unreferenced in context clause
19273 Document new form of pragma Warnings (On|Off, pattern)
19274 Document pragma Wide_Character_Encoding
19275 Add note that pragma Restrictions (No_Elaboration_Code) is only fully
19276 enforced if code generation is active.
19277 Add section on pragma Suppress to document GNAT specific check
19278 Alignment_Check
19279 Clarify difference between No_Dispatching_Calls & No_Dispatch.
19280 Add documentation for pragma Restrictions (No_Elaboration_Code)
19281
9e81dbc7 19282 * gnat-style.texi:
70198b9f
AC
19283 Add comments on layout of subprogram local variables in the
19284 presence of nested subprograms.
19285
6f7f72f9 19286 * ug_words: Resync.
70198b9f
AC
19287
19288 * elists.ads: Minor reformatting
19289 Node returns Node_Or_Entity_Id (doc change only)
19290
19291 * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
19292
19293 * g-arrspl.ads (Create): Update comments.
19294
19295 * sem.ads: Add details on the handling of the scope stack.
19296
6f7f72f9 19297 * usage.adb: Update documentation.
70198b9f 19298
9e81dbc7 19299 * validsw.ads, validsw.adb:
70198b9f
AC
19300 Add definition of Validity_Check_Components and implement -gnatVe/E
19301
6f7f72f9 19302 * vms_data.ads: Add missing VMS qualifiers.
70198b9f
AC
19303
19304 * s-addope.ads: Add documentation on overflow and divide by zero
19305
193062006-10-31 Robert Dewar <dewar@adacore.com>
19307 Thomas Quinot <quinot@adacore.com>
19308 Arnaud Charlet <charlet@adacore.com>
19309
19310 * fmap.adb: Put routines in alpha order
19311
19312 * g-boumai.ads: Remove redundant 'in' keywords
19313
19314 * g-cgi.adb: Minor reformatting
19315
19316 * g-cgi.ads: Remove redundant 'in' keywords
19317
19318 * get_targ.adb: Put routines in alpha order
19319
19320 * prj-attr.ads: Minor reformatting
19321
19322 * s-atacco.ads: Minor reformatting
19323
19324 * scn.adb: Put routines in alpha order
19325
19326 * sinput-l.adb: Minor comment fix
19327
19328 * sinput-p.adb: Minor comment fix
19329
19330 * s-maccod.ads: Minor reformatting
19331
19332 * s-memory.adb: Minor reformatting
19333
19334 * s-htable.adb: Fix typo in comment.
19335
19336 * s-secsta.adb: Minor comment update.
19337
19338 * s-soflin.adb: Minor reformatting
19339
9e81dbc7 19340 * s-stoele.ads:
70198b9f
AC
19341 Add comment about odd qualification in Storage_Offset declaration
19342
9e81dbc7 19343 * s-strxdr.adb:
70198b9f
AC
19344 Remove unnecessary 'in' keywords for formal parameters.
19345
19346 * treeprs.adt: Minor reformatting
19347
19348 * urealp.adb: Put routines in alpha order
19349
19350 * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
19351 taking string.
19352
19353 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
19354
19355 * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
19356
19357 * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
19358 workaround as on other platforms.
19359
19360 * g-eacodu-vms.adb: Remove redundant 'in' keywords
19361 * g-expect-vms.adb: Remove redundant 'in' keywords
19362
19363 * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
19364 clear error message if the list-of-files file cannot be opened.
19365
19366 * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
19367 equality operator is always visible.
19368
19369 * lang.opt: Woverlength-strings: New option.
19370
9e81dbc7 19371 * nmake.adt:
70198b9f
AC
19372 Update copyright, since nmake.ads and nmake.adb have changed.
19373
19374 * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
19375 (Binder_Output_Time_Stamps_Set): removed.
19376 (Old_Binder_Output_Time_Stamp): idem.
19377 (New_Binder_Output_Time_Stamp): idem.
19378 (Recording_Time_From_Last_Bind): idem.
19379 (Recording_Time_From_Last_Bind): Make constant.
19380
19381 * output.ads, output.adb (Write_Str): Allow LF characters
19382 (Write_Spaces): New procedure
19383
19384 * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
19385
19386 * inline.adb: Minor reformatting
19387
19388 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
19389
19390 * s-mastop-vms.adb: Remove redundant 'in' keywords
19391
19392 * s-osprim-vms.adb: Remove redundant 'in' keywords
19393
19394 * s-trafor-default.adb: Remove redundant 'in' keywords
19395
19396 * 9drpc.adb: Remove redundant 'in' keywords
19397
19398 * s-osinte-mingw.ads: Minor reformatting
19399
19400 * s-inmaop-posix.adb: Minor reformatting
19401
19402 * a-direio.ads: Remove quotes from Compile_Time_Warning message
19403
19404 * a-exexda.adb: Minor code reorganization
19405
19406 * a-filico.adb: Minor reformatting
19407
19408 * a-finali.adb: Minor reformatting
19409
19410 * a-nudira.ads: Remove quote from Compile_Time_Warning message
19411
19412 * a-numeri.ads: Minor reformatting
19413
19414 * a-sequio.ads: Remove quotes from Compile_Time_Warning message
19415
19416 * exp_pakd.ads: Fix obsolete comment
19417
19418 * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
19419 a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
19420 Probably not a bug, but certainly neater and more efficient.
19421
19422 * a-tienio.adb: Minor reformatting
19423
19424 * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
19425 Avoid assuming low bound of string is 1.
19426
19427 * gnatbind.adb: Change Bindusg to package and rename procedure as
19428 Display, which now ensures that it only outputs usage information once.
19429 (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
19430
19431 * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
19432 Table'First.
19433
19434 * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
19435 warning.
19436 (Match): Add pragma Assert to ensure that Matches'First is zero
19437
19438 * g-regpat.ads (Match): Document that Matches lower bound must be zero
19439
19440 * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
19441 documented preconditions (also kills warnings about bad indexes).
19442
19443 * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
19444 is 1.
19445 (Build_Import_Library): Ditto;
19446
19447 * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
19448
19449 * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
19450
19451 * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
19452 lower bound of choice table is 1.
19453
19454 * sem_case.ads (Analyze_Choices): Document that lower bound of
19455 Choice_Table is 1.
19456
19457 * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
19458 string is 1.
19459
19460 * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
19461 and add appropriate Assert pragma to suppress warnings.
19462
19463 * atree.h, atree.ads, atree.adb
19464 Change Elist24 to Elist25
19465 Add definitions of Field28 and Node28
19466 (Traverse_Field): Use new syntactic parent table in sinfo.
19467
19468 * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
19469
19470 * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
19471
19472 * exp_tss.adb: Put routines in alpha order
19473
19474 * fe.h: Remove redundant declarations.
19475
719bb4e3 194762006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
ed41063a 19477
c79efc4d
RÁE
19478 * utils.c (builtin_function): Rename to gnat_builtin_function.
19479 Move common code to add_builtin_function.
19480 * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
19481 gnat_builtin_function.
19482 * gigi.h (builtin_function): Rename to gnat_builtin_function.
19483 Change the signature.
19484
a8384928
BM
194852006-10-16 Brooks Moses <bmoses@stanford.edu>
19486
19487 * Makefile.in: Add TEXI2PDF definition.
19488 * Make-lang.in: Add "ada.pdf" target.
19489
2285b053
KH
194902006-10-03 Kazu Hirata <kazu@codesourcery.com>
19491
19492 * decl.c, utils.c: Fix comment typos.
c0a69967
KH
19493 * utils.c: Fix a typo.
19494
b55e7f34
EB
194952006-09-28 Eric Botcazou <ebotcazou@adacore.com>
19496
19497 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
19498 on "pure" Ada subprograms if SJLJ exceptions are used.
19499 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
19500 on the declaration node of JMPBUF_SAVE.
19501 * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
19502 of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
19503 * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
19504
9e94c78f 195052006-08-20 Laurent Guerby <laurent@guerby.net>
d2b40c09 19506
7a197678
EB
19507 PR ada/28716
19508 g-socket.adb (Bind_Socket): Call Set_Address.
19509
41d9adc7
EB
195102006-09-15 Eric Botcazou <ebotcazou@adacore.com>
19511
19512 PR ada/15802
19513 * decl.c (same_discriminant_p): New static function.
19514 (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
19515 subtype and we have discriminants, fix up the COMPONENT_REFs
19516 for the discriminants to make them reference the corresponding
19517 fields of the parent subtype after it has been built.
19518
21cc3719
RS
195192006-09-15 Roger Sayle <roger@eyesopen.com>
19520
19521 PR ada/18817
19522 * utils.c (max_size): Perform constant folding of (A ? B : C) - D
19523 into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
19524
6f2789da
OH
195252006-09-13 Olivier Hainque <hainque@adacore.com>
19526
19527 PR ada/29025
19528 * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
19529 of a SAVE_EXPR, just make the operand addressable/not-readonly and
19530 let the common gimplifier code make and propagate a temporary copy.
19531 (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
19532 out/in-out actuals and defer setting the addressable/readonly bits
19533 to the gimplifier.
19534
efaa616e
EB
195352006-09-13 Eric Botcazou <ebotcazou@adacore.com>
19536
19537 PR ada/28591
19538 * decl.c (components_to_record): Defer emitting debug info for the
19539 record type associated with the variant until after we are sure to
19540 actually use it.
19541
2655f1c6
EB
195422006-09-13 Eric Botcazou <ebotcazou@adacore.com>
19543
19544 PR ada/21952
19545 * gigi.h (gnat_internal_attribute_table): Declare.
19546 * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
19547 * utils.c (gnat_internal_attribute_table): New global variable.
19548 (builtin_function): Always call decl_attributes on the builtin.
19549 (handle_const_attribute): New static function.
19550 (handle_nothrow_attribute): Likewise.
19551
48779194
VR
195522006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
19553
19554 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
19555
8df7d439
EB
195562006-06-23 Olivier Hainque <hainque@adacore.com>
19557
19558 * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
19559 not been able to get a constant upper bound from TYPE_SIZE_UNIT.
19560
83fdc7c4 195612006-06-20 James A. Morrison <phython@gcc.gnu.org>
6f7f72f9 19562 Eric Botcazou <ebotcazou@adacore.com>
83fdc7c4
JM
19563
19564 PR ada/18692
19565 * Make-lang.in: Add check-gnat to lang_checks. Rename existing
19566 check-gnat into check-acats.
19567
5f516f59
KB
195682006-06-17 Karl Berry <karl@gnu.org>
19569
6f7f72f9 19570 * gnat-style.texi (@dircategory): Use "Software development"
5f516f59
KB
19571 instead of "Programming", following the Free Software Directory.
19572
ce0d1b88
JDA
195732006-06-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19574
19575 PR ada/27944
19576 * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
19577
9e94c78f 195782006-06-06 Laurent Guerby <laurent@guerby.net>
8c60f779 19579
6f7f72f9
EB
19580 PR ada/27769
19581 mlib-utl.adb: Use Program_Name.
19582
ce2e12c2
KH
195832006-05-28 Kazu Hirata <kazu@codesourcery.com>
19584
19585 * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
19586 sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
19587 trans.c, utils.c: Fix comment typos. Follow spelling
19588 conventions.
19589 * gnat_rm.texi, gnat_ugn.texi, : Fix typos. Follow spelling
19590 conventions.
19591
ba4ac682
EB
195922006-05-19 Nicolas Setton <setton@adacore.com>
19593
19594 * misc.c (gnat_dwarf_name): New function.
19595 (LANG_HOOKS_DWARF_NAME): Define to it.
19596
05b44921
L
195972006-05-14 H.J. Lu <hongjiu.lu@intel.com>
19598
19599 * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
19600 (ada/misc.o): Likewise.
19601 (ada/utils.o): Likewise.
19602
a3bd7058
AJ
196032006-04-08 Aurelien Jarno <aurel32@debian.org>
19604
19605 * Makefile.in: Add Ada support for GNU/kFreeBSD.
19606 * s-osinte-kfreebsd-gnu.ads: New file.
19607
ad3a7ce3
CD
196082006-03-29 Carlos O'Donell <carlos@codesourcery.com>
19609
19610 * Make-lang.in: Rename docdir to gcc_docdir.
19611
936a6fa7
EB
196122006-03-04 Eric Botcazou <ebotcazou@adacore.com>
19613
19614 * gigi.h (get_ada_base_type): Delete.
19615 * utils2.c (get_ada_base_type): Likewise.
19616 * trans.c (convert_with_check): Operate in the real base type.
19617
93f978b7
RK
196182006-03-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
19619
19620 * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
19621
434aeebb
RS
196222006-03-02 Richard Sandiford <richard@codesourcery.com>
19623
19624 * utils.c (create_var_decl): Use have_global_bss_p when deciding
19625 whether to make the decl common.
19626
719bb4e3 196272006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
93f978b7 19628
ed41063a 19629 * Make-lang.in (Ada): Remove.
9d29a5b7
RE
19630 (.PHONY): Remove Ada
19631
c63f730e
AC
196322006-02-17 Ed Schonberg <schonberg@adacore.com>
19633
19634 * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
19635 aggregate, check the interpretations of the other operand to find one
19636 that may be a boolean array.
19637
19638 (Analyze_Selected_Component): Fix flow-of-control typo in case where
19639 the prefix is a private extension.
19640
196412006-02-17 Eric Botcazou <botcazou@adacore.com>
19642
19643 PR ada/26315
c63f730e
AC
19644 * utils2.c (find_common_type): If both input types are BLKmode and
19645 have the same constant size, keep using the first one.
19646
19647 * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
19648
19649 * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
19650
19651 * misc.c (gnat_handle_option): New case for -Woverlength-strings.
19652
196532006-02-17 Jose Ruiz <ruiz@adacore.com>
19654
9e81dbc7
AS
19655 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
19656 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
19657 s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
c63f730e
AC
19658 s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
19659 Abort_Defer/Undefer pairs to avoid the possibility of a task being
19660 aborted while owning a lock.
19661
196622006-02-17 Javier Miranda <miranda@adacore.com>
19663 Robert Dewar <dewar@adacore.com>
19664
19665 * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
19666 through an access to class-wide interface we force the displacement of
19667 the pointer to the allocated object to reference the corresponding
19668 secondary dispatch table.
19669 (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
19670 if Long_Shifts are supported on the target, even if 64 bit divides
19671 are not supported (configurable run time mode).
19672 (Expand_N_Type_Conversion): Do validity check if validity checks on
19673 operands are enabled.
19674 (Expand_N_Qualified_Expression): Do validity check if validity checks
19675 on operands are enabled.
19676
196772006-02-17 Ed Schonberg <schonberg@adacore.com>
19678
19679 * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
19680 must be materialized when the renamed expression is an explicit
19681 dereference.
19682
196832006-02-17 Ed Schonberg <schonberg@adacore.com>
19684
19685 * freeze.adb (Statically_Discriminated_Components): Return false if
19686 the bounds of the type of the discriminant are not static expressions.
19687
19688 * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
19689 the bounds of the discriminant type are not static.
19690
196912006-02-17 Robert Dewar <dewar@adacore.com>
19692
19693 * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
19694 then we close To if it is valid.
19695
196962006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
19697
19698 * init.c (facility_resignal_table): new array
19699 (__gnat_default_resignal_p): enhance default predicate to resignal if
19700 VMS condition has one of the predefined facility codes.
19701
197022006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
19703
19704 * Makefile.in: Use VMS64 specialized versions of several units in
19705 Interfaces.C hierarchy to be compatible with HP C default size choices.
19706 Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
19707
197082006-02-17 Ed Schonberg <schonberg@adacore.com>
19709
19710 * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
19711 instantiation, the corresponding entity is the related_instance of the
19712 wrapper package created for the instance.
19713
197142006-02-17 Ed Schonberg <schonberg@adacore.com>
19715
19716 * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
19717 the current instance is nested within another instance in a child unit.
19718
197192006-02-17 Javier Miranda <miranda@adacore.com>
19720 Ed Schonberg <schonberg@adacore.com>
19721
19722 * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
19723 type we cannot inherit the primitive operations; we inherit the
19724 Corresponding_Record_Type (which has the list of primitive operations).
19725 (Check_Anonymous_Access_Types): When creating anonymous access types for
19726 access components, use Rewrite in order to preserve the tree structure,
19727 for ASIS use.
19728 (Analyze_Object_Declaration): For limited types with access
19729 discriminants with defaults initialized by an aggregate, obtain
19730 subtype from aggregate as for other mutable types.
19731 (Derived_Type_Declaration): If the derived type is a limited interface,
19732 set the corresponding flag (Is_Limited_Record is not sufficient).
19733
197342006-02-17 Ed Schonberg <schonberg@adacore.com>
19735
19736 * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
19737 to inline a function that returns an unconstrained type, the return
19738 expression must be the first variable declared in the body of the
19739 function.
19740
197412006-02-17 Javier Miranda <miranda@adacore.com>
19742
19743 * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
19744 abstract interface type, the static analysis is not enough to know if
19745 the interface is implemented or not by the source tagged type. Hence
19746 we must pass the work to the expander to generate the required code to
19747 evaluate the conversion at run-time.
19748 (Resolve_Equality_Op): Do not apply previous
19749 transformation if expansion is disasbled, to prevent anomalies when
19750 locating global references in a generic unit.
19751
197522006-02-17 Vincent Celier <celier@adacore.com>
19753
19754 * snames.ads, snames.adb: New standard names for new project attributes:
19755 archive_builder, archive_indexer, compiler_pic_option,
19756 config_body_file_name, config_body_file_name_pattern,
19757 config_file_switches, config_file_unique, config_spec_file_name,
19758 config_spec_file_name_pattern, default_builder_switches,
19759 default_global_compiler_switches, default_language,
19760 dependency_file_kind, global_compiler_switches, include_path,
19761 include_path_file, language_kind, linker_executable_option,
19762 linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
19763 roots, runtime_project.
19764
197652006-02-17 Matthew Heaney <heaney@adacore.com>
19766
9e81dbc7 19767 * a-convec.ads, a-convec.adb:
c63f730e
AC
19768 (operator "&"): handle potential overflow for large index types
19769 (Insert): removed Contraint_Error when using large index types
19770 (Insert_Space): removed Constraint_Error for large index types
19771 (Length): moved constraint check from Length to Insert
19772
19773 * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
19774 as not null access.
19775 Explicit raise statements now include an exception message.
19776 (operator "&"): handle potential overflow for large index types
19777 (Insert): removed Contraint_Error when using large index types
19778 (Insert_Space): removed Constraint_Error for large index types
19779 (Length): moved constraint check from Length to Insert
19780
197812006-02-17 Robert Dewar <dewar@adacore.com>
19782
19783 * s-wchcnv.adb: Document handling of [ on output (we do not change
19784 this to ["5B"] and the new comments say why not.
19785
9e81dbc7 19786 * gnat_ugn.texi:
c63f730e
AC
19787 Add note for -gnatVo that this now includes the cases of type
19788 conversions and qualified expressions.
19789 Add comments on handling of brackets encoding for Text_IO
19790
197912006-02-17 Ramon Fernandez <fernandez@adacore.com>
19792 Thomas Quinot <quinot@adacore.com>
19793 Robert Dewar <dewar@adacore.com>
19794 Javier Miranda <miranda@adacore.com>
19795
19796 * expander.adb: Fix typo in comment
19797
19798 * exp_pakd.adb: Fix typo
19799 Minor comment reformatting.
19800
19801 * g-dyntab.adb: Minor reformatting
19802
19803 * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
19804 aliased subprograms to look for the abstract interface subprogram.
19805
fd7927cd
EB
198062006-02-16 Eric Botcazou <ebotcazou@adacore.com>
19807
19808 * env.c (__gnat_setenv): Use size_t.
19809 (__gnat_unsetenv): Likewise.
19810 (__gnat_clearenv): Likewise.
19811
3f806915
AC
198122006-02-16 Arnaud Charlet <charlet@adacore.com>
19813
19814 * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
19815
cc26ad97
AC
198162006-02-13 Arnaud Charlet <charlet@adacore.com>
19817
19818 * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
19819 g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
19820 i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
19821 s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
19822 s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
19823 s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
19824 s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
19825 s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
19826 s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
19827 no longer used.
19828
198292006-02-13 Jose Ruiz <ruiz@adacore.com>
19830
19831 * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
19832 protection against race conditions is not needed.
19833 (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
19834 fallback handler.
19835 (Set_Specific_Handler): Add mutual exclusive access to the specific
19836 handler.
19837 (Specific_Handler): Add mutual exclusive access for retrieving the
19838 specific handler.
19839
19840 * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
19841 back handler.
19842
19843 * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
19844 Fall_Back_Handler and Specific_Handler.
19845
19846 * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
19847 termination handlers.
19848 Set two different owerflow depending on the maximal stack size.
19849
19850 * s-solita.adb (Task_Termination_Handler_T): Document why explicit
19851 protection against race conditions is not needed when executing the
19852 task termination handler.
19853
198542006-02-13 Robert Dewar <dewar@adacore.com>
19855
19856 * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
19857 a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
19858 a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
19859 a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
19860 a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
19861 a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
19862 a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
19863 a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
19864 a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
19865 a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
19866 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
19867 a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
19868 a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
19869 a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
19870 a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
19871 a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
19872 a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
19873 a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
19874 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
19875 a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
19876 g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
19877 g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
19878 mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
19879 prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
19880 s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
19881 s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
19882 s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
19883 s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
19884 s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
19885 s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
19886 a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
19887 fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
19888 par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
19889 system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
19890 reformatting.
19891
198922006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
19893
19894 * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
19895 s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
19896 s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
19897 s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
19898 a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
19899 s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
19900 a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
19901 s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
19902 s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
19903
199042006-02-13 Arnaud Charlet <charlet@adacore.com>
19905
9e81dbc7
AS
19906 * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
19907 s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
19908 s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
19909 s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
19910 s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
cc26ad97
AC
19911 s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
19912 replaced by anonymous access type.
19913 (pthread_sigmask): Now take an access sigset_t
19914
19915 * s-osinte-hpux.ads: Ditto.
19916 (pthread_mutex_t, pthread_cond_t): Update definitions to support
19917 properly 32 and 64 bit ABIs.
19918
199192006-02-13 Pascal Obry <obry@adacore.com>
19920
9e81dbc7
AS
19921 * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
19922 s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
cc26ad97
AC
19923 s-taprop-linux.adb, s-taprop-solaris.adb,
19924 s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
19925 adjustement is already done when calling this routine.
19926
199272006-02-13 Pascal Obry <obry@adacore.com>
19928
19929 * system-mingw.ads (Underlying_Priorities): Update the priority mapping
19930 table to take advantage of the 16 priority levels available on Windows
19931 2000 and XP. On NT4 there are only 7 priority levels, this is properly
19932 supported by this new mapping.
19933
199342006-02-13 Nicolas Setton <setton@adacore.com>
19935
19936 * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
19937 (get_encoding): New subprogram. Extracts the encodings from an encoded
19938 Ada name.
19939
199402006-02-13 Pascal Obry <obry@adacore.com>
19941 Nicolas Roche <roche@adacore.com>
19942 Arnaud Charlet <charlet@adacore.com>
19943
19944 * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
19945 support.
19946 (__gnat_try_lock): Add unicode support by using a specific section on
19947 Windows.
19948 (__gnat_get_current_dir): Idem.
19949 (__gnat_open_read): Idem.
19950 (__gnat_open_rw): Idem.
19951 (__gnat_open_create): Idem.
19952 (__gnat_create_output_file): Idem.
19953 (__gnat_open_append): Idem.
19954 (__gnat_open_new): Idem.
19955 (__gnat_file_time_name): Idem.
19956 (__gnat_set_file_time_name): Idem.
19957 (__gnat_stat): Idem.
19958 (win32_no_block_spawn): Idem.
19959 (__gnat_locate_exec_on_path): Idem.
19960 (__gnat_opendir): New routine.
19961 (__gnat_closedir): Idem.
19962 (__gnat_readdir): Add new parameter length (pointer to int). Update
19963 implementation to use it and add specific Win32 code for Unicode
19964 support.
19965 (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
19966 (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
19967 (convert_addresses): Do not define this dummy routine on VMS.
19968
19969 * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
19970 runtime Unicode support will be activated.
19971 (S2WS): String to Wide-String conversion. This version just copy a
19972 string in non Unicode version.
19973 (WS2S): Wide-String to String conversion. This version just copy a
19974 string in non Unicode version.
19975
19976 * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
19977 (Open): Now import __gnat_opendir from adaint.c.
19978 (Read): Change the implementation to support unicode characters. It is
19979 not possible to use strlen() on Windows as this version supports only
19980 standard ASCII characters. So the length of the directory entry is now
19981 returned from the imported __gnat_readdir routine.
19982 Update copyright notice.
19983
19984 * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
19985 (opendir): Moved to adaint.c.
19986
19987 * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
19988 (Get_Directory): Fix wrong indexing.
19989 (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
19990 __gnat_getenv from env.c
19991 (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
19992 from env.c
19993
19994 * env.h, env.c: New file.
19995
19996 * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
19997 adaint.c by __gnat_getenv from env.c
19998
19999 * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
20000 adaint.c by __gnat_getenv from env.c
20001
20002 * Make-lang.in: Add env.o in the list of C object needed by gnat1
20003 and gnatbind.
20004 Update dependencies.
20005
200062006-02-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
20007 Olivier Hainque <hainque@adacore.com>
20008 Eric Botcazou <ebotcazou@adacore.com>
20009
20010 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
9e81dbc7 20011
cc26ad97
AC
20012 * gigi.h (value_factor_p): Add prototype and description, now public.
20013
20014 * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
20015 promotion for field with rep clause if the associated size was proven
20016 to be in error.
20017 Expand comments describing attempts to use a packable type.
20018 (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
20019 E_Floating_Point_Subtype>: Inherit alias set of what we are making a
20020 subtype of to ensure conflicts amongst all subtypes in a hierarchy,
20021 necessary since these are not different types and pointers may
20022 actually designate any subtype in this hierarchy.
20023 (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
20024 discriminants but put them into record only if not Unchecked_Union;
20025 pass flag to components_to_record showing Unchecked_Union.
20026 (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
20027 components before variants; don't set TYPE_UNCHECKED_UNION_P.
20028 (components_to_record): New argument UNCHECKED_UNION.
20029 Remove special case code for Unchecked_Union and instead use main code
20030 with small changes.
20031
20032 PR ada/26096
ed41063a
EB
20033 (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
20034 variable with the expression being built, only its inner field.
cc26ad97
AC
20035
20036 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
20037 emit_sequence_entry_statements.
20038 (emit_sequence_entry_statements, body_with_handlers_p): Delete.
20039 (establish_gnat_vms_condition_handler): Move before
20040 Subprogram_Body_to_gnu.
20041 (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
20042 for a subprogram if it has a foreign convention or is exported.
20043 (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
20044 substituted for a CONST_DECL.
20045 (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
20046 Etype to assoc_to_constructor.
20047 (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
20048 discriminants of Unchecked_Union.
20049 (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
20050 don't need cluttering preprocessor directives.
20051 (establish_gnat_vms_condition_handler): New function. Establish the GNAT
20052 condition handler as current in the compiled function.
20053 (body_with_handlers_p): New function. Tell whether a given sequence of
20054 statements node is attached to a package or subprogram body and involves
20055 exception handlers possibly nested within inner block statements.
20056 (emit_sequence_entry_statements): New function, to emit special
20057 statements on entry of sequences when necessary. Establish GNAT
20058 condition handler in the proper cases for VMS.
20059 (Handled_Sequence_Of_Statements_to_gnu): Start block code with
20060 emit_sequence_entry_statements.
20061
20062 * utils2.c (find_common_type): If both input types are BLKmode and
20063 have a constant size, use the smaller one.
20064 (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
20065 the same.
20066
20067 * utils.c (value_factor_p): Make public, to allow uses from other gigi
20068 units.
20069 (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
20070 (convert, case UNION_TYPE): Remove special treatment for unchecked
20071 unions.
20072
20073 PR ada/18659
ed41063a
EB
20074 (update_pointer_to): Update variants of pointer types to unconstrained
20075 arrays by attaching the list of fields of the main variant.
cc26ad97
AC
20076
200772006-02-13 Arnaud Charlet <charlet@adacore.com>
20078 Robert Dewar <dewar@adacore.com>
20079
20080 * a-exexpr.adb, a-exexpr-gcc.adb
20081 (Process_Raise_Exception): Removed, merged with Propagate_Exception.
20082 (Propagate_Exception): Now take extra From_Signal_Handler parameter.
20083 Remove code unused for exception propagation for the compiler itself
20084 from a-except.adb and update to still share separate packages.
20085
20086 * a-except.ads, a-except.adb: Ditto.
20087 Add comments that this version is now used only by the compiler and
20088 other basic tools. The full version that includes the Ada 2005 stuff
20089 is in separate files a-except-2005.ads/adb. The reason is that we do
20090 not want to cause bootstrap problems with compilers not recognizing
20091 Wide_Wide_String.
20092 Add exception reason code PE_Implicit_Return
20093 Add new exception reason code (Null Exception_Id)
20094
20095 * a-except-2005.adb, a-except-2005.ads: New files.
20096
20097 * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
20098
20099 * s-wchcon.adb: New file.
20100
20101 * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
20102 (traceback.o deps): Likewise.
20103 (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
20104 Activate build of GMEM instrumentation library on VMS targets.
20105 (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
20106 Use a-except-2005.ads/adb for all run-time library builds unless
20107 specified otherwise.
20108 [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
20109 s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
20110 Use s-parame.adb on all native platforms.
20111 Use s-parame-vxworks.adb on all vxworks platforms.
20112 Add env.c env.h in LIBGNAT_SRCS
20113 Add env.o in LIBGNAT_OBJS
20114 (GNATMAKE_OBJS): Remove ctrl_c.o object.
20115 (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
20116 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
20117 supports VxWorks 6 RTPs.
20118 (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
20119 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
20120
20121 * types.h, types.ads (Terminate_Program): New exception
20122 Add comment on modifying multiple versions of a-except.adb when the
20123 table of exception reasons is modified.
20124 Add exception reason code PE_Implicit_Return
20125 Add new exception reason code (Null Exception_Id)
20126
6f7f72f9
EB
20127 * clean.adb (Initialize): Get the target parameters before checking
20128 if target is OpenVMS. Move the OpenVMS specific code here from package
20129 body elaboration code.
cc26ad97
AC
20130
201312006-02-13 Thomas Quinot <quinot@adacore.com>
20132 Vincent Celier <celier@adacore.com>
20133 Robert Dewar <dewar@adacore.com>
20134
20135 * ali-util.adb (Get_File_Checksum): Update to account for change in
20136 profile of Initialize_Scanner.
20137
20138 * gprep.adb (Gnatprep): Update to account for change in profile of
20139 Initialize_Scanner.
20140 (Process_One_File): Same.
20141
20142 * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
20143 common code between Get_Code_Unit and Get_Source_Unit. Reimplement
20144 that behaviour using the new Unit information recorded in the source
20145 files table, rather than going through all units every time.
20146 (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
20147 (Get_Source_Unit): Same.
20148
20149 * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
20150 change in profile of Initialize_Scanner.
20151 (Prepare_To_Preprocess): Same.
20152
20153 * lib.ads: Fix typo in comment (templace -> template).
20154
20155 * prj-part.adb (Parse_Single_Project): Update to account for change in
20156 profile of Initialize_Scanner.
20157
20158 * scn.adb (Initialize_Scanner): Account for change in profile of
20159 Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
20160 Also record the association of the given Source_File_Index to the
20161 corresponding Unit_Number_Type.
20162
20163 * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
20164 procedure.
20165 (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
20166 Remove Unit formal for generic scanner: this formal
20167 is only relevant to Scn (the scanner instance used to parse Ada source
20168 files), not to other instances. Update comment accordingly.
20169 (Scan): Use new function Snames.Is_Keyword_Name.
20170
20171 * sinfo-cn.adb: Fix typo in comment.
20172
20173 * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
20174 Unit.
20175
20176 * sinput.ads (Source_File_Record): New component Unit, used to capture
20177 the unit identifier (if any) associated to a source file.
20178
20179 * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
20180 Unit in Source_File_Record.
20181
20182 * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
20183 in profile of Initialize_Scanner.
20184
20185 * scans.adb (Initialize_Ada_Keywords): New procedure
20186
20187 * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
20188 Ada keywords in the Namet table, without the need to call
20189 Initialize_Scanner.
20190
20191 * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
20192 (Is_Keyword_Name): New function
20193
20194 * snames.ads: Add subtype Configuration_Pragma_Names
20195 Add pragma Ada_2005 (synonym for Ada_05)
20196 (Is_Keyword_Name): New function
20197
20198 * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
20199
202002006-02-13 Arnaud Charlet <charlet@adacore.com>
20201
20202 * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
20203 index.
20204
20205 * a-stwima.adb (To_Set): Add extra check when N = 0.
20206
20207 * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
20208
202092006-02-13 Arnaud Charlet <charlet@adacore.com>
20210
20211 * s-parame-mingw.adb, s-parame-linux.adb,
20212 s-parame-solaris.adb: Removed, replaced by s-parame.adb
20213
20214 * s-parame-vxworks.ads: Fix typo.
20215
20216 * s-parame-vxworks.adb: New file.
20217
20218 * s-parame.adb: Version now used by all native platforms.
20219 (Default_Stack_Size): Use 2 megs for default stack size and use
20220 __gl_default_stack_size when available.
20221 (Minimum_Stack_Size): Use 12K.
20222
20223 * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
20224 (Create_Task): Refine implementation taking advantage of the XP stack
20225 size support. On XP, we now create the thread using the flag
20226 STACK_SIZE_PARAM_IS_A_RESERVATION.
20227
20228 * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
20229
20230 * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
20231 XP and 0 on older Windows versions.
20232
20233 * interfac-vms.ads: Removed, no longer used.
20234
202352006-02-13 Matthew Heaney <heaney@adacore.com>
20236
9e81dbc7
AS
20237 * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
20238 a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
cc26ad97
AC
20239 a-cohase.adb: All explicit raise statements now include an exception
20240 message.
20241
20242 * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
20243 (Update_Element_Preserving_Key): renamed op to just Update_Element.
20244 Explicit raise statements now include an exception message
20245
20246 * a-cihase.ads, a-cohase.ads: Removed comment.
20247
20248 * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
20249 a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
20250 a-szbzha.adb, a-szfzha.ads: New files.
20251
202522006-02-13 Matthew Heaney <heaney@adacore.com>
20253
20254 * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
20255 quicksort.
20256
202572006-02-13 Eric Botcazou <ebotcazou@adacore.com>
20258
20259 * lang.opt: Wvariadic-macros: New option.
20260 Wold-style-definition: Likewise.
20261 Wmissing-format-attribute: Likewise.
20262
20263 * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
20264 -Wold-style-definition and -Wmissing-format-attribute.
20265
202662006-02-13 Robert Dewar <dewar@adacore.com>
20267
20268 * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
20269
20270 * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
20271
202722006-02-13 Nicolas Roche <roche@adacore.com>
20273
20274 * a-envvar.adb, a-envvar.ads: New files.
20275
202762006-02-13 Douglas Rupp <rupp@adacore.com>
20277
20278 * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
20279
20280 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
20281
202822006-02-13 Pat Rogers <rogers@adacore.com>
20283
20284 * a-rttiev.adb, a-rttiev.ads: New files.
20285
202862006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
20287
20288 * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
20289 a-wwboio.ads, a-zzboio.adb, a-zzboio.ads: New files.
20290
20291 * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
20292
202932006-02-13 Robert Dewar <dewar@adacore.com>
20294
9e81dbc7 20295 * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
cc26ad97
AC
20296 sem_case.adb: Minor code reorganization (not Present should be No)
20297
202982006-02-13 Geert Bosch <bosch@adacore.com>
20299 Gary Dismukes <dismukes@adacore.com>
20300
20301 * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
20302 0, since the lower bound of the actual string may be greater than one.
20303
20304 PR ada/20753
ed41063a 20305 * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
cc26ad97
AC
20306 layout is requested.
20307
203082006-02-13 Vincent Celier <celier@adacore.com>
20309
20310 * back_end.adb (Scan_Compiler_Arguments): Check if
20311 Search_Directory_Present is True and, if it is, add the argument in
20312 the source search directory path.
20313
20314 * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
20315 Search_Directory_Present to True.
20316
203172006-02-13 Joel Brobecker <brobecke@adacore.com>
20318
20319 * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
20320 volatile, to tell the compiler to preserve this variable at any level
20321 of optimization.
20322 (Gen_Versions_Ada): Temporarily work around codegen bug.
20323
203242006-02-13 Vincent Celier <celier@adacore.com>
20325
20326 * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
20327 gcc to link with option -shared-libgcc.
20328 (Gnatlink): Remove duplicate switches -shared-libgcc
20329
203302006-02-13 Robert Dewar <dewar@adacore.com>
20331
20332 * gnatvsn.ads (Current_Year): New constant, used to easily update
20333 copyright on all GNAT tools.
20334
20335 * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
20336 copyright notice.
20337
203382006-02-13 Robert Dewar <dewar@adacore.com>
20339
20340 * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
20341 after hyphen (small aesthetic change useful for a range of numbers
20342 using ^-^.
20343 Suppress range checks for a couple of assignments which otherwise
20344 cause validity checks with validity checking turned on.
20345
20346 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
20347 Improvement in error message for object.
20348 (Rep_Item_Too_Late): Remove '!' in warning message.
20349
203502006-02-13 Robert Dewar <dewar@adacore.com>
20351 Eric Botcazou <ebotcazou@adacore.com>
20352
20353 * err_vars.ads: Suppress range checks for a couple of assignments
20354 which otherwise cause validity checks with validity checking turned on.
20355 Update comments.
20356
20357 * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
20358 Make message unconditional if it is a warning.
20359 (Error_Msg_NEL): Always output warning messages.
20360 Suppress range checks for a couple of assignments which otherwise
20361 cause validity checks with validity checking turned on.
20362
20363 * errout.ads (Message Insertion Characters): Document that '!' is
20364 implied by '?' in error messages.
20365
20366 * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
20367 (Gnat1drv): Use a goto to end of main subprogram instead of
20368 Exit_Program (E_Success) so that finalization can occur normally.
20369
203702006-02-13 Eric Botcazou <ebotcazou@adacore.com>
20371
20372 * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
20373 wrapped around.
20374
203752006-02-13 Vincent Celier <celier@adacore.com>
20376
20377 * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
20378 Unchecked_Conversion functions.
20379 (Modification_Time): Use direct conversion of OS_Time to Calendar time
20380 when OpenVMS returns False.
20381
20382 * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
20383 a-dirval.adb (OpenVMS): New Boolean function
20384
203852006-02-13 Ed Schonberg <schonberg@adacore.com>
20386 Thomas Quinot <quinot@adacore.com>
20387
20388 * checks.adb (Build_Discriminant_Checks): If the expression being
20389 checks is an aggregate retrieve the values of its discriminants to
20390 generate the check, rather than creating a temporary and a reference
20391 to it.
20392 (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
20393 (Install_Null_Excluding_Check): Ditto
20394 (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
20395 not for the renamed object, so that the actual itype is attached in the
20396 proper context.
20397
203982006-02-13 Robert Dewar <dewar@adacore.com>
20399 Vincent Celier <celier@adacore.com>
20400
20401 * debug.adb: Eliminate numeric switches for binder/gnatmake
20402
20403 * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
20404 switches for the compiler.
20405 (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
20406 (Scan_Make_Switches): When failing with an illegal switch, output an
20407 error message with the full switch.
20408 Eliminate numeric switches for binder/gnatmake
20409
20410 * switch.ads, switch.adb (Bad_Switch): New procedure
20411
20412 * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
20413 Remove 0-9 as debug flag character possibilities
20414 -d is now controlling the primary stack size when its value is a
20415 positive. Also add checks against invalid values, and support for kb,
20416 mb. Ditto for -D switch.
20417
204182006-02-13 Robert Dewar <dewar@adacore.com>
20419 Serguei Rybin <rybin@adacore.com>
20420
20421 * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
20422 save/restore routines.
20423 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20424 were not always properly handled previously.
20425 Since we are changing the tree format anyway, also get rid of the
20426 junk obsolete Immediate_Errors flag.
20427 (Tree_Read): Change the way of reading Tree_Version_String - now we
20428 read the version string from the tree even if its length is not the
20429 same as the length of the version string computed from Gnatvsn.
20430 (Search_Directory_Present): New Boolean flag for the compiler.
20431 Define Tree_Version_String as a dynamic string.
20432 (Default_Stack_Size): new variable, used to handle switch -d.
20433
9e81dbc7 20434 * par-prag.adb:
cc26ad97
AC
20435 For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
20436 only for main unit.
20437 Add pragma Ada_2005 (synonym for Ada_05)
20438 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20439 were not always properly handled previously.
20440
20441 * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
20442 explicit Ada_95 to Ada_2005.
20443
204442006-02-13 Javier Miranda <miranda@adacore.com>
20445 Robert Dewar <dewar@adacore.com>
20446 Ed Schonberg <schonberg@adacore.com>
20447
20448 * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
20449 against errors in the source program: a private types for which the
20450 corresponding full type declaration is missing and pragma CPP_Virtual
20451 is used.
20452 (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
20453 (Is_Known_Null): New flag
20454 (Has_Pragma_Pure): New flag
20455 (No_Return): Present in all entities, set only for procedures
20456 (Is_Limited_Type): A type whose ancestor is an interface is limited if
20457 explicitly declared limited.
20458 (DT_Offset_To_Top_Func): New attribute that is present in E_Component
20459 entities. Only used for component marked Is_Tag. If present it stores
20460 the Offset_To_Top function used to provide this value in tagged types
20461 whose ancestor has discriminants.
20462
20463 * exp_ch2.adb: Update status of new Is_Known_Null flag
20464
20465 * sem_ch7.adb: Maintain status of new Is_Known_Null flag
20466
20467 * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
20468 the categorization sense if Is_Pure was set by pragma Pure_Function.
20469
204702006-02-13 Quentin Ochem <ochem@adacore.com>
20471 Olivier Hainque <hainque@adacore.com>
20472
20473 * bindusg.adb: Updated documentation for -d and -D switches.
20474
20475 * raise.h (__gnat_set_globals): added new parameter for
20476 Default_Stack_Size.
20477
20478 * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
20479 (__gnat_handle_vms_condition): Adjust context before raise.
20480 (__gnat_install_handler): Restore the global vector setup for GCC
20481 versions before 3.4, as the frame based circtuitry is not available
20482 in this case.
20483 (__gnat_set_globals): added a parameter default_stack_size
20484 (__gl_default_stack_size): new variable.
20485
204862006-02-13 Ed Schonberg <schonberg@adacore.com>
20487
20488 * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
20489 "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
20490 does not exist in the Ada RM.
20491 (Compatible_Int_Bounds): Determine whether two integer range bounds
20492 are of equal length and have the same start and end values.
20493 (Is_Int_Range_Bounds): Determine whether a node is an integer range.
20494 (Build_Record_Aggr_Code): Perform proper sliding of a nested array
20495 aggregate when it is part of an object declaration.
20496 (Build_Record_Aggr_Code) If the aggregate ttype is a derived type that
20497 constrains discriminants of its parent, add explicitly the discriminant
20498 constraints of the ancestor by retrieving them from the
20499 stored_constraint of the parent.
20500
205012006-02-13 Robert Dewar <dewar@adacore.com>
20502
20503 * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
20504 attribute Mechanism_Code is applied to renamed subprogram, modify
20505 prefix to point to base subprogram.
20506 Max/Min attributes now violate Restriction No_Implicit_Conditionals
20507
20508 * sinfo.ads: Document that Mechanism_Code cannot be applied to
20509 renamed subprograms so that the front-end must replace the prefix
20510 appropriately.
20511
205122006-02-13 Javier Miranda <miranda@adacore.com>
20513 Gary Dismukes <dismukes@adacore.com>
20514
20515 * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
20516 availability of RE_Interface_Tag.
20517 (Build_Initialization_Call): Fix wrong access to the discriminant value.
20518 (Freeze_Record_Type): Do not generate the tables associated with
20519 timed and conditional dispatching calls through synchronized
20520 interfaces if compiling under No_Dispatching_Calls restriction.
20521 When compiling for Ada 2005, for a nonabstract
20522 type with a null extension, call Make_Controlling_Function_Wrappers
20523 and insert the wrapper function declarations and bodies (the latter
20524 being appended as freeze actions).
20525 (Predefined_Primitive_Bodies): Do not generate the bodies of the
20526 predefined primitives associated with timed and conditional
20527 dispatching calls through synchronized interfaces if we are
20528 compiling under No_Dispatching_Calls.
20529 (Build_Init_Procedure): Use RTE_Available to check if a run-time
20530 service is available before generating a call.
20531 (Make_Controlling_Function_Wrappers): New procedure.
20532 (Expand_N_Full_Type_Declaration): Create a class-wide master for
20533 access-to-limited-interfaces because they can be used to reference
20534 tasks that implement such limited interface.
20535 (Build_Offset_To_Top_Functions): Build the tree corresponding to the
20536 procedure spec and body of the Offset_To_Top function that is generated
20537 when the parent of a type with discriminants has secondary dispatch
20538 tables.
20539 (Init_Secondary_Tags): Handle the case in which the parent of the type
20540 containing secondary dispatch tables has discriminants to generate the
20541 correct arguments to call Set_Offset_To_Top.
20542 (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
20543
20544 * a-tags.ads, a-tags.adb: (Check_Index): Removed.
20545 Add Wide_[Wide_]Expanded_Name.
20546 (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
20547 the same functionality of Get_Prim_Op_Address but applied to predefined
20548 primitive operations because the pointers to the predefined primitives
20549 are now saved in a separate table.
20550 (Parent_Size): Modified to get access to the separate table of primitive
20551 operations or the parent type.
20552 (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
20553 functionality of Set_Prim_Op_Address but applied to predefined primitive
20554 operations.
20555 (Set_Signature): New subprogram used to store the signature of a DT.
20556 (Displace): If the Offset_To_Top value is not static then call the
20557 function generated by the expander to get such value; otherwise use
20558 the value stored in the table of interfaces.
20559 (Offset_To_Top): The type of the actual has been changed to Address to
20560 give the correct support to tagged types with discriminants. In this
20561 case this value is stored just immediately after the tag field.
20562 (Set_Offset_To_Top): Two new formals have been added to indicate if the
20563 offset_to_top value is static and hence pass this value to the run-time
20564 to store it in the table of interfaces, or else if this value is dynamic
20565 and then pass to the run-time the address of a function that is
20566 generated by the expander to provide this value for each object of the
20567 type.
20568
20569 * rtsfind.ads (Default_Prin_Op_Count): Removed.
20570 (Default_Prim_Op_Count): New entity
20571 (Get_Predefined_Prim_Op_Address): New entity
20572 (Set_Predefined_Prim_Op_Address): New entity
20573 (RE_Set_Signature): New entity
20574
205752006-02-13 Thomas Quinot <quinot@adacore.com>
20576 Ed Schonberg <schonberg@adacore.com>
20577
20578 * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
20579 Make_Adjust_Call done for a newly-allocated object.
20580
20581 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
20582 in a subprogram are wrapped in a cleanup block, indicate that the
20583 subprogram contains an inner block with an exception handler.
20584 (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
20585 Adjust call is for a newly-allocated object. In that case we must not
20586 assume that the finalization list chain pointers are correct (since they
20587 come from a bit-for-bit copy of the original object's pointers) so if
20588 the attach level would otherwise be zero (no change), we set it to 4
20589 instead to cause the pointers to be reset to null.
20590
20591 * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
20592 reset chain pointers to null.
20593
205942006-02-13 Ed Schonberg <schonberg@adacore.com>
20595
20596 * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
20597 string, and the context requires a loop for the assignment (e.g.
20598 because the left-hand side is packed), generate a unique name for the
20599 temporary that holds the string, to prevent spurious name clashes.
20600
206012006-02-13 Ed Schonberg <schonberg@adacore.com>
20602 Javier Miranda <miranda@adacore.com>
20603 Robert Dewar <dewar@adacore.com>
20604 Gary Dismukes <dismukes@adacore.com>
20605
20606 * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
20607 return unconstrained arrays.
20608 Update comments.
20609 (Expand_Call): An indirect call through an access parameter of a
20610 protected operation is not a protected call.
20611 Add circuit to raise CE in Ada 2005 mode following call
20612 to Raise_Exception.
20613 (Register_DT_Entry): Do nothing if
20614 the run-time does not give support to abstract interfaces.
20615 (Freeze_Subprogram): In case of dispatching operations, do not generate
20616 code to register the operation in the dispatch table if the source
20617 is compiled with No_Dispatching_Calls.
20618 (Register_Predefined_DT_Entry): Generate code that calls the new
20619 run-time subprogram Set_Predefined_Prim_Op_Address instead of
20620 Set_Prim_Op_Address.
20621
20622 * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
20623 on array assignments if the right-hand side is a function call that has
20624 been inlined. Check is performed on the assignment in the block.
20625 (Process_Bounds): If bounds and range are overloaded, apply preference
20626 rule for root operations to disambiguate, and diagnose true ambiguity.
20627 (Analyze_Assignment): Propagate the tag for a class-wide assignment with
20628 a tag-indeterminate right-hand side even when Expander_Active is True.
20629 Needed to ensure that dispatching calls to T'Input are allowed and
20630 get the tag of the target class-wide object.
20631
20632 * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
20633 an inherited primitive operation that already overrides several
20634 abstract interface primitives. For transitivity, the new entity must
20635 also override all the abstract interface primitives covered by the
20636 inherited overriden primitive.
20637 Emit warning if new entity differs from homograph in same scope only in
20638 that one has an access parameter and the other one has a parameter of
20639 a general access type with the same designated type, at the same
20640 position in the signature.
20641 (Make_Inequality_Operator): Use source locations of parameters and
20642 subtype marks from corresponding equality operator when creating the
20643 tree structure for the implicit declaration of "/=". This does not
20644 change anything in behaviour except that the decoration of the
20645 components of the subtree created for "/=" allows ASIS to get the
20646 string images of the corresponding identifiers.
20647 (Analyze_Return_Statement): Remove '!' in warning message.
20648 (Check_Statement_Sequence): Likewise.
20649 (Analyze_Subprogram_Body): For an access parameter whose designated type
20650 is an incomplete type imported through a limited_with clause, use the
20651 type of the corresponding formal in the body.
20652 (Check_Returns): Implicit return in No_Return procedure now raises
20653 Program_Error with a compile time warning, instead of beging illegal.
20654 (Has_Single_Return): Function returning unconstrained type cannot be
20655 inlined if expression in unique return statement is not an identifier.
20656 (Build_Body_To_Inline): It is possible to inline a function call that
20657 returns an unconstrained type if all return statements in the function
20658 return the same local variable. Subsidiary procedure Has_Single_Return
20659 verifies that the body conforms to this restriction.
20660
20661 * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
20662 same type, and one of them is of an anonymous access type, convert
20663 the other operand to it, so that this is a valid binary operation for
20664 gigi.
20665 (Resolve_Type_Conversion): Handle subtypes of protected types and
20666 task types when accessing to the corresponding record type.
20667 (Resolve_Allocator): Add '\' in 2-line warning message.
20668 Remove '!' in warning message.
20669 (Resolve_Call): Add '\' in 2-line warning message.
20670 (Valid_Conversion): Likewise.
20671 (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
20672 resulting type may be an access type with an implicit dereference.
20673 Obtain the proper component from the designated type.
20674 (Make_Call_Into_Operator): Handle properly a call to predefined equality
20675 given by an expanded name with prefix Standard, when the operands are
20676 of an anonymous access type.
20677 (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
20678 Explicit_Dereference and Resolve_Selected_Component, to verify that the
20679 prefix of the expression is not of an incomplete type. Allows full
20680 diagnoses of all semantic errors.
20681 (Resolve_Actuals): If the actual is an allocator whose directly
20682 designated type is a class-wide interface we build an anonymous
20683 access type to use it as the type of the allocator. Later, when
20684 the subprogram call is expanded, if the interface has a secondary
20685 dispatch table the expander will add a type conversion to force
20686 the displacement of the pointer.
20687 (Resolve_Call): If a function that returns an unconstrained type is
20688 marked Inlined_Always and inlined, the call will be inlined and does
20689 not require the creation of a transient scope.
20690 (Check_Direct_Boolean_Op): Removed
20691 (Resolve_Comparison_Op): Remove call to above
20692 (Resolve_Equality_Op): Remove call to above
20693 (Resolve_Logical_Op): Inline above, since this is only call.
20694 (Valid_Conversion): Handle properly conversions between arrays of
20695 convertible anonymous access types.
20696
20697 PR ada/25885
cc26ad97
AC
20698 (Set_Literal_String_Subtype): If the lower bound is not static, wrap
20699 the literal in an unchecked conversion, because GCC 4.x needs a static
20700 value for a string bound.
20701
207022006-02-13 Ed Schonberg <schonberg@adacore.com>
20703 Hristian Kirtchev <kirtchev@adacore.com>
20704
20705 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
20706 components of the corresponding record, take into account component
20707 definitions that are access definitions.
20708 (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
20709 procedure is not considered a dispatching call and will be expanded
20710 properly.
20711
207122006-02-13 Javier Miranda <miranda@adacore.com>
20713
20714 * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
20715 controlling argument of the dispatching call is an abstract interface
20716 class-wide type then we use it directly.
20717 Check No_Dispatching_Calls restriction.
20718 (Default_Prim_Op_Position): Remove the code that looks for the last
20719 entity in the list of aliased subprograms. This code was wrong in
20720 case of renamings.
20721 (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
20722 when the source is compiled with the No_Dispatching_Calls restriction.
20723 (Init_Predefined_Interface_Primitives): No need to inherit primitives
20724 if we are compiling with restriction No_Dispatching_Calls.
20725 (Make_Disp_XXX): Addition of assertion to avoid the use of all these
20726 subprograms if we are compiling under No_Dispatching_Calls restriction.
20727 (Make_DT): Generate a dispatch table with a single dummy entry if
20728 we are compiling with the No_Dispatching_Calls restriction. In
20729 addition, in this case we don't generate code that calls to the
20730 following run-time subprograms: Set_Type_Kind, Inherit_DT.
20731 (Make_Select_Specific_Data_Table): Add assertion to avoid the use
20732 of this subprogram if compiling with the No_Dispatching_Calls
20733 restriction.
20734 (Expand_Type_Conversion): Instead of using the actual parameter,
20735 the argument passed as parameter to the conversion function was
20736 erroneously referenced by the expander.
20737 (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
20738 Set_Predefined_Primitive_Op_Address and Set_Signature.
20739 (Expand_Dispatching_Call): Generate call to
20740 Get_Predefined_Prim_Op_Address for predefined primitives.
20741 (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
20742 predefined primitives.
20743 (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
20744 primitives we reserve one dummy entry to ensure that the tag does not
20745 point to some memory that is associated with some other object. In
20746 addition, remove all the old code that generated the assignments
20747 associated with the signature of the dispatch table and replace them
20748 by a call to the new subprogram Set_Signature.
20749 (Set_All_DT_Position): Change the algorithm because now we have a
20750 separate dispatch table associated with predefined primitive operations.
20751 (Expand_Interface_Conversion): In case of non-static offset_to_top
20752 add explicit dereference to get access to the object after the call
20753 to displace the pointer to the object.
20754 (Expand_Interface_Thunk): Modify the generation of the actual used
20755 in the calls to the run-time function Offset_To_Top to fulfil its
20756 new interface.
20757 (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
20758
207592006-02-13 Ed Schonberg <schonberg@adacore.com>
20760
20761 * exp_dist.adb (Copy_Specification): For access parameters, copy
20762 Null_Exclusion flag, which will have been set for stream subprograms
20763 in Ada2005 mode.
20764
207652006-02-13 Pascal Obry <obry@adacore.com>
20766
20767 * expect.c (__gnat_expect_portable_execvp): New implementation. The
20768 previous implementation was using the C runtime spawnve routine but
20769 the corresponding wait was using directly the Win32 API. This was
20770 causing some times a lock when waiting for an event using
20771 WaitForSingleObject in __gnat_waitpid. This new implementation uses
20772 the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
20773 API fixes this problem.
20774
207752006-02-13 Robert Dewar <dewar@adacore.com>
20776
20777 * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
20778 call.
20779
207802006-02-13 Thomas Quinot <quinot@adacore.com>
20781
20782 * exp_pakd.ads: Fix typos in comments.
20783
20784 * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
20785 array reference that is an explicit dereference, mark the converted
20786 (packed) array reference as analyzed to prevent a forthcoming
20787 reanalysis from resetting its type to the original (non-packed) array
20788 type.
20789
207902006-02-13 Ed Schonberg <schonberg@adacore.com>
20791 Javier Miranda <miranda@adacore.com>
20792 Eric Botcazou <ebotcazou@adacore.com>
20793
20794 * exp_util.ads, exp_util.adb (Find_Prim_Op,
20795 Is_Predefined_Primitive_Operation): When
20796 searching for the predefined equality operator, verify that operands
20797 have the same type.
20798 (Is_Predefined_Dispatching_Operation): Remove the code that looks
20799 for the last entity in the list of aliased subprograms. This code
20800 was wrong in case of renamings.
20801 (Set_Renamed_Subprogram): New procedure
20802 (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
20803 Exp_Type constant computed when entering this subprogram.
20804 (Known_Null): New function
20805 (OK_To_Do_Constant_Replacement): New function
20806 (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
20807 (Side_Effect_Free): An attribute reference 'Input is not free of
20808 side effect, unlike other attributes that are functions. (from code
20809 reading).
20810 (Remove_Side_Effects): Expressions that involve packed arrays or records
20811 are copied at the point of reference, and therefore must be marked as
20812 renamings of objects.
20813 (Is_Predefined_Dispatching_Operation): Return false if the operation is
20814 not a dispatching operation.
20815
20816 PR ada/18819
20817 (Remove_Side_Effects): Lift enclosing type conversion nodes for
20818 elementary types in all cases.
20819
208202006-02-13 Javier Miranda <miranda@adacore.com>
20821
20822 * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
20823 task types when accessing to the corresponding record type.
20824 Remove '!' in warning message.
20825
208262006-02-13 Olivier Hainque <hainque@adacore.com>
20827
20828 * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
20829 to avoid useless and space inefficient overalignments on targets where
20830 Max_Alignment is larger than 16.
20831
208322006-02-13 Pascal Obry <obry@adacore.com>
20833
20834 * g-catiio.adb (Sec_Number): New type used to compute the number of
20835 seconds since 1-1-1970.
20836 (Image) [Natural]: The parameter was an Integer, as we can't deal with
20837 negative numbers (years, months...) it is better to have a Natural here.
20838 Code clean-up.
20839 (Image) [Number]: Change parameter from Long_Integer to Number.
20840 (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
20841 overflow for dates past year 2038.
20842
208432006-02-13 Matthew Heaney <heaney@adacore.com>
20844
20845 * g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
20846 Constraint_Error.
20847
208482006-02-13 Arnaud Charlet <charlet@adacore.com>
20849
20850 * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
20851 native platforms.
20852 (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
20853 finalization can occur normally.
20854
208552006-02-13 Vincent Celier <celier@adacore.com>
20856
20857 * gnatcmd.adb (Rules_Switches): New table
20858 (Add_To_Rules_Switches): New procedure
20859 (GNATCmd): For command CHECK, put all options following "-rules" in the
20860 Rules_Switches table. Append these -rules switches after the -cargs
20861 switches.
20862
208632006-02-13 Robert Dewar <dewar@adacore.com>
20864
20865 * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
20866 These two cases were generating incorrect output, and if this unit
20867 was built with checks on, generated a discriminant mismatch constraint
20868 error.
20869
208702006-02-13 Ed Schonberg <schonberg@adacore.com>
20871 Robert Dewar <dewar@adacore.com>
20872
20873 * lib-xref.adb (Get_Type_Reference): For a private type whose full
20874 view is an array type, indicate the component type as well, for
20875 navigation purposes.
20876 (Generate_Reference): Don't consider array ref on LHS to be a case
20877 of violating pragma Unreferenced.
20878 Do not give Ada 2005 warning except on real reference.
20879
208802006-02-13 Vincent Celier <celier@adacore.com>
20881
20882 * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
20883 main source, add switch -mdebug-main=_ada_ so that the executable can
20884 be debugged by the standard VMS debugger.
20885 (Gnatmake): Set No_Main_Subprogram to True when there is no main
20886 subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
20887 Exit the Multi_Main_Loop when Unique_Compile is True after compilation
20888 of the last source, as the binding and linking phases are never
20889 performed.
20890 Set all executable obsolete when rebuilding a library.
20891
20892 * makeutl.adb (Linker_Options_Switches): Do not process empty linker
20893 options.
20894
208952006-02-13 Javier Miranda <miranda@adacore.com>
20896
20897 PR ada/23973
cc26ad97
AC
20898 * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
20899 code to improve the error message reported when the program has
20900 declarations of abstract interface types and it is not compiled with
20901 the -gnat05 switch.
20902 (P_Access_Definition): Reorganize the code to improve the error
20903 message reported when the new Ada 2005 syntax for anonymous
20904 access types is used and the program is not compiled with the
20905 -gnat05 switch.
20906
209072006-02-13 Robert Dewar <dewar@adacore.com>
20908
20909 * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
20910 stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
20911 (MODE_IN)
20912
209132006-02-13 Javier Miranda <miranda@adacore.com>
20914
20915 * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
20916 against source containing syntax errors.
20917
209182006-02-13 Vincent Celier <celier@adacore.com>
20919
20920 * prj.adb (Reset): Initialize the first element of table Namings with
20921 the standard naming data.
20922
209232006-02-13 Vincent Celier <celier@adacore.com>
20924
20925 * prj.ads (Error_Warning): New enumeration type
20926
20927 * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
20928 unknown, use the location of the project to report the error.
20929 (When_No_Sources): New global variable
20930 (Report_No_Ada_Sources): New procedure
20931 (Check): New parameter When_No_Sources. Set value of global variable
20932 When_No_Sources,
20933 (Find_Sources): Call Report_No_Ada_Sources when appropriate
20934 (Get_Sources_From_File): Ditto
20935 (Warn_If_Not_Sources): Better warning messages indicating the unit name
20936 and the file name.
20937
20938 * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
20939 Call Prj.Proc.Process with parameter When_No_Sources.
20940
20941 * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
20942 Call Recursive_Check with parameter When_No_Sources.
20943 (Recursive_Check): New parameter When_No_Sources. Call itself and
20944 Prj.Nmsc.Check with parameter When_No_Sources.
20945 (Process): New parameter When_No_Sources. Call Check with parameter
20946 When_No_Sources.
20947 (Copy_Package_Declarations): New procedure to copy renamed parameters
20948 and setting the location of the declared attributes to the location
20949 of the renamed package.
20950 (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
20951 packages.
20952
209532006-02-13 Vincent Celier <celier@adacore.com>
20954
20955 * prj-makr.adb (Make): Preserve the comments from the original project
20956 file.
20957 When removing nodes (attributes Source_Dirs, Source_Files,
20958 Source_List_File and package Naming), save the comments and attach the
20959 saved comments to the newly created nodes.
20960 Do not add a with clause for the naming package if one already exists.
20961
209622006-02-13 Javier Miranda <miranda@adacore.com>
20963 Gary Dismukes <dismukes@adacore.com>
20964 Robert Dewar <dewar@adacore.com>
20965
20966 * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
20967
20968 * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
20969 aliased entities to look for the overriden abstract interface
20970 subprogram.
20971 (Is_Interface_Subprogram): Complete documentation.
20972 (Check_Dispatching_Operation): Do not generate code to register the
20973 operation in the dispatch table if the source is compiled with
20974 restriction No_Dispatching_Calls.
20975 (Override_Dispatching_Operation): Check for illegal attempt to override
20976 No_Return procedure with procedure that is not No_Return
20977 (Check_Dispatching_Call): Suppress the check for an abstract operation
20978 when the original node of an actual is a tag-indeterminate attribute
20979 call, since the attribute, which must be 'Input, can never be abstract.
20980 (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
20981 call to the Input attribute (even when rewritten).
20982 (Propagate_Tag): Augment comment to indicate the possibility of a call
20983 to an Input attribute.
20984
20985 * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
20986 calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
20987
20988 * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
20989 No_Wide_Characters is no longer partition-wide
20990 No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
20991 rather than GNAT
20992
209932006-02-13 Douglas Rupp <rupp@adacore.com>
20994
20995 * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
20996
209972006-02-13 Javier Miranda <miranda@adacore.com>
20998
20999 * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
21000 handles default-initialized components to keep separate the management
21001 of this feature but also avoid the unrequired resolution and
21002 expansion of components that do not have partially initialized
21003 values.
21004 (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
21005 (Check_Bounds): Likewise.
21006 (Check_Length): Likewise.
21007
210082006-02-13 Javier Miranda <miranda@adacore.com>
21009 Ed Schonberg <schonberg@adacore.com>
21010
21011 * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
21012 abstract interface type call analyze_and_resolve to expand the type
21013 conversion into the corresponding displacement of the
21014 reference to the base of the object.
21015 (Eval_Attribute, case Width): For systems where IEEE extended precision
21016 is supported, the maximum exponent occupies 4 decimal digits.
21017 (Accessibility_Message): Add '\' in 2-line warning message.
21018 (Resolve_Attribute): Likewise.
21019 (case Attribute_Access): Significantly revise checks
21020 for illegal access-to-subprogram Access attributes to properly enforce
21021 the rules of 3.10.2(32/2).
21022 Diagnose use of current instance with an illegal attribute.
21023
6f7f72f9
EB
21024 * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
21025 to a Node_Id.
21026 (Enclosing_Generic_Unit): New function to return a node's innermost
21027 enclosing generic declaration node.
21028 (Compile_Time_Constraint_Error): Remove '!' in warning messages.
21029 (Type_Access_Level): The accessibility level of anonymous acccess types
21030 associated with discriminants is that of the current instance of the
21031 type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
21032 (Compile_Time_Constraint_Error): Handle case of conditional expression.
21033 (Kill_Current_Values_For_Entity): New function
21034 (Enter_Name): Change formal type to Entity_Id
cc26ad97
AC
21035
210362006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
21037 Ed Schonberg <schonberg@adacore.com>
21038 Gary Dismukes <dismukes@adacore.com>
21039
21040 * sem_ch10.adb (Check_Redundant_Withs): New procedure in
21041 Analyze_Compilation_Unit.
21042 Detect and warn on redundant with clauses detected in a package spec
21043 and/or body when -gnatwr is used.
21044 (Analyze_Context): Analyze config pragmas before other items
21045 (Install_Context_Items): Don't analyze config pragmas here
21046 (Install_Limited_Withed_Unit): Set limited entity of package in
21047 with_clause so that cross-reference information or warning messages on
21048 unused packages can be properly generated
21049 (Is_Visible_Through_Renamings): Return false if the limited_with_clause
21050 has Error_Posted set. Prevent infinite loops in illegal programs.
21051 (Check_Private_Child_Unit): Move test for a nonprivate with clause down
21052 to the point of the error test requiring the current unit to be private.
21053 This ensures that private with clauses are not exempted from the basic
21054 checking for being a descendant of the same library unit parent as a
21055 withed private descendant unit.
21056 (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
21057 handle private with clauses properly, as well as to account for cases
21058 where the withed unit is a public descendant of a private ancestor
21059 (in which case the current unit must be a descendant of the private
21060 ancestor's parent). The spec comments were updated accordingly. Also,
21061 the old error message in this subprogram was replaced with error
21062 messages that mirror the errors tested and reported by
21063 Check_Private_Child_Unit.
21064 Parameter and variable names improved for readability.
21065 (Install_Limited_Context_Clauses): Remove test for a withed unit being
21066 private as the precondition for calling
21067 Check_Private_Limited_Withed_Unit since that subprogram has been
21068 revised to test public units as well as private units.
21069
210702006-02-13 Thomas Quinot <quinot@adacore.com>
21071 Robert Dewar <dewar@adacore.com>
21072 Ed Schonberg <schonberg@adacore.com>
21073 Javier Miranda <miranda@adacore.com>
21074
21075 * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
21076 that Scope_Stack.First = 1.
21077 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
21078 were not always properly handled previously.
21079 (Formal_Entity): Complete rewrite, to handle properly some complex case
21080 with multiple levels of parametrization by formal packages.
21081 (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
21082 to the corresponding derived type declaration for proper semantics.
21083
21084 * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
21085 (Check_Component): Enforce restriction on components of
21086 unchecked_unions: a component in a variant cannot contain tasks or
21087 controlled types.
21088 (Unchecked_Union): Allow nested variants and multiple discriminants, to
21089 conform to AI-216.
21090 Add pragma Ada_2005 (synonym for Ada_05)
21091 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
21092 were not always properly handled previously.
21093 Document that pragma Propagate_Exceptions has no effect
21094 (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
21095 (Set_Convention_From_Pragma): Check that if a convention is
21096 specified for a dispatching operation, then it must be
21097 consistent with the existing convention for the operation.
21098 (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
21099 longer required to specify an vtable-ptr component in the record. For
21100 compatibility reasons we leave the support for the previous definition.
21101 (Analyze_Pragma, case No_Return): Allow multiple arguments
21102
21103 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
21104 non-overrideen inherited operation with a controlling result as
21105 illegal only its implicit declaration comes from the derived type
21106 declaration of its result's type.
21107 (Check_Possible_Deferred_Completion): Relocate the object definition
21108 node of the subtype indication of a deferred constant completion rather
21109 than directly analyzing it. The analysis of the generated subtype will
21110 correctly decorate the GNAT tree.
21111 (Record_Type_Declaration): Check whether this is a declaration for a
21112 limited derived record before analyzing components.
21113 (Analyze_Component_Declaration): Diagnose record types not explicitly
21114 declared limited when a component has a limited type.
21115 (Build_Derived_Record_Type): Code reorganization to check if some of
21116 the inherited subprograms of a tagged type cover interface primitives.
21117 This check was missing in case of a full-type associated with a private
21118 type declaration.
21119 (Constant_Redeclaration): Check that the subtypes of the partial and the
21120 full view of a constrained deferred constant statically match.
21121 (Mentions_T): A reference to the current type in an anonymous access
21122 component declaration must be an entity name.
21123 (Make_Incomplete_Type_Declaration): If type is tagged, set type of
21124 class_wide type to refer to full type, not to the incomplete one.
21125 (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
21126 available. Required to give support to the certified run-time.
21127 (Analyze_Component_Declaration): In case of anonymous access components
21128 perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
21129 (Process_Discriminants): For an access discriminant, use the
21130 discriminant specification as the associated_node_for_itype, to
21131 simplify accessibility checks.
21132
211332006-02-13 Ed Schonberg <schonberg@adacore.com>
21134 Javier Miranda <miranda@adacore.com>
21135
21136 * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
21137 abstract interpretations on an operator, remove interpretations that
21138 yield Address or a type derived from it, if one of the operands is an
21139 integer literal.
21140 (Try_Object_Operation.Try_Primitive_Operation,
21141 Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
21142 location when creating the new reference to a primitive or class-wide
21143 operation as a part of rewriting a subprogram call.
21144 (Try_Primitive_Operations): If context requires a function, collect all
21145 interpretations after the first match, because there may be primitive
21146 operations of the same type with the same profile and different return
21147 types. From code reading.
21148 (Try_Primitive_Operation): Use the node kind to choose the proper
21149 operation when a function and a procedure have the same parameter
21150 profile.
21151 (Complete_Object_Operation): If formal is an access parameter and prefix
21152 is an object, rewrite as an Access reference, to match signature of
21153 primitive operation.
21154 (Find_Equality_Type, Find_One_Interp): Handle properly equality given
21155 by an expanded name with prefix Standard, when the operands are of an
21156 anonymous access type.
21157 (Remove_Abstract_Operations): If the operation is abstract because it is
21158 inherited by a user-defined type derived from Address, remove it as
21159 well from the set of candidate interpretations of an overloaded node.
21160 (Analyze_Membership_Op): Membership test not applicable to cpp-class
21161 types.
21162
211632006-02-13 Bob Duff <duff@adacore.com>
21164
21165 * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
21166 redundant use clauses.
21167 In particular, if the scope of two use clauses overlaps, but one is not
21168 entirely included in the other, we should not warn. This can happen
21169 with nested packages.
21170 (Analyze_Subprogram_Renaming): Protect the compiler against previously
21171 reported errors. The bug was reported when the compiler was built
21172 with assertions enabled.
21173 (Find_Type): If the node is a 'Class reference and the prefix is a
21174 synchronized type without a corresponding record, return the type
21175 itself.
21176
211772006-02-13 Javier Miranda <miranda@adacore.com>
21178
21179 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
21180 if this is the full-declaration associated with a private declaration
21181 that implement interfaces, then the private type declaration must be
21182 limited.
21183 (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
21184 as aliased. The use of the 'access attribute is not available for such
21185 object (for this purpose the object should be explicitly marked as
21186 aliased, but being an anonymous type this is not possible).
21187
211882006-02-13 Ed Schonberg <schonberg@adacore.com>
21189 Robert Dewar <dewar@adacore.com>
21190
21191 * sem_elab.adb (Same_Elaboration_Scope): A package that is a
21192 compilation unit is an elaboration scope.
21193 (Add_Task_Proc): Add '\' in 2-line warning message.
21194 (Activate_All_Desirable): Deal with case of unit with'ed by parent
21195
211962006-02-13 Ed Schonberg <schonberg@adacore.com>
21197 Javier Miranda <miranda@adacore.com>
21198
21199 * sem_type.adb (Write_Overloads): Improve display of candidate
21200 interpretations.
21201 (Add_One_Interp): Do not add to the list of interpretations aliased
21202 entities corresponding with an abstract interface type that is an
21203 immediate ancestor of a tagged type; otherwise we have a dummy
21204 conflict between this entity and the aliased entity.
21205 (Disambiguate): The predefined equality on universal_access is not
21206 usable if there is a user-defined equality with the proper signature,
21207 declared in the same declarative part as the designated type.
21208 (Find_Unique_Type): The universal_access equality operator defined under
21209 AI-230 does not cover pool specific access types.
21210 (Covers): If one of the types is a generic actual subtype, check whether
21211 it matches the partial view of the other type.
21212
212132006-02-13 Thomas Quinot <quinot@adacore.com>
21214
21215 * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
21216 line. This is necessary to allow In_Extended_Main_Unit to provide
21217 correct results for itypes while writing out expanded source.
21218 (Close_File): No need to update the source_index_table here since it's
21219 now done for each line.
21220
212212006-02-13 Ed Schonberg <schonberg@adacore.com>
21222 Robert Dewar <dewar@adacore.com>
21223
21224 * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
21225 preserve the source unit where the itype is declared, and prevent a
21226 backend abort.
21227 (Note_Implicit_Run_Time_Call): New procedure
21228 (Write_Itype): Handle missing cases (E_Class_Wide_Type and
21229 E_Subprogram_Type)
21230
21231 * sprint.ads: Document use of $ for implicit run time routine call
21232
212332006-02-13 Quentin Ochem <ochem@adacore.com>
21234
21235 * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
21236 task name.
21237
212382006-02-13 Bob Duff <duff@adacore.com>
21239
21240 * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
21241 Scan_Unsigned, so we do not scan leading blanks and sign twice.
21242 Integer'Value("- 5") and Integer'Value("-+5") now correctly
21243 raise Constraint_Error.
21244
21245 * s-vallli.adb (Scan_Long_Long_Integer): Call
21246 Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
21247 do not scan leading blanks and sign twice.
21248 Integer'Value("- 5") and Integer'Value("-+5") now correctly
21249 raise Constraint_Error.
21250
21251 * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
21252 Scan_Long_Long_Unsigned): Split out most of the processing from
21253 Scan_Long_Long_Unsigned out into
21254 Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
21255 This prevents scanning leading blanks and sign twice.
21256 Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
21257 See RM-3.5(44).
21258
21259 * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
21260 out most of the processing from Scan_Unsigned out into
21261 Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
21262 This prevents scanning leading blanks and sign twice.
21263
21264 * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
21265 use with Modular'Value attribute.
21266 (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
21267 attribute.
21268
212692006-02-13 Robert Dewar <dewar@adacore.com>
21270
21271 * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
21272
212732006-02-13 Eric Botcazou <ebotcazou@adacore.com>
21274
21275 * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
21276 (PPC VxWorks): Likewise.
21277 (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
21278 (forced_callee): Make non-inlinable and non-pure.
21279 (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
21280
212812006-02-13 Arnaud Charlet <charlet@adacore.com>
21282 Ben Brosgol <brosgol@adacore.com>
21283 Robert Dewar <dewar@adacore.com>
21284
21285 * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
21286 support.
21287 Document that gnatbind -M option is for cross environments only.
21288 Added description of using gnatmem to trace gnat rtl allocs and deallocs
21289 Add note on use of $ to label implicit run time calls
21290 Add documentation for -gnatyI (check mode IN)
21291 Updated chapter on compatibility with HP Ada
21292 VMS-oriented edits.
21293 Ran spell and corrected errors
21294 Add documentation for gnatbind -d and rework documentation of -D
21295 at the same time.
21296 Add subprogram/data elimination section.
21297 Minor editing of annex A.
21298 Add section for gnatcheck.
21299 Add documentation for restriction No_Dispatching_Calls
21300 Add documentation for pragma Ada_2005
21301 Remove mention of obsolete pragma Propagate_Exceptions
21302 Document that pragma Unreferenced can appear after DO in ACCEPT
21303 Clarify Pure_Function for library level units
21304 Mention Max/Min in connection with No_Implicit_Conditionals
21305 No_Wide_Characters restriction is no longer partition-wide
21306 Add a nice example for Universal_Literal_String attribute
21307 Document that pragma No_Return can take multiple arguments
21308
21309 * ug_words: Added entry for gnatcheck
21310
21311 * g-ctrl_c.ads (Install_Handler): Enhance comments
21312
21313 * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
21314
21315 * g-trasym.ads: Add documentation on how to do off line symbolic
21316 traceback computation.
21317
21318 * s-fatgen.adb: Add comments for Unaligned_Valid
21319
21320 * stand.ads: Fix typo in comment
21321
0e692cc0
RO
213222006-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
21323
21324 * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
21325
f44013ae
RS
213262006-02-06 Roger Sayle <roger@eyesopen.com>
21327
21328 * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
21329
3df6582b
JDA
213302006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21331
21332 PR target/25926
21333 * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
21334 implementation that calls __main.
21335
f57a2203
PG
213362006-01-25 Peter O'Gorman <peter@pogma.com>
21337
21338 PR bootstrap/25859
21339 * Makefile.in (GCC_LINK): Remove quotes.
21340 (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
21341 or $(GCC_LINK).
21342
21343 (powerpc-darwin): Pass -shared-libgcc when building shared library.
21344
4bf2d473
JDA
213452006-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21346
21347 PR ada/24533
21348 * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
21349
4580c9a6
JDA
213502005-12-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21351
21352 * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
21353
e5c681b3
AC
213542005-12-12 Arnaud Charlet <charlet@adacore.com>
21355
21356 * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
21357 needed.
21358
b0b8e176
AC
213592005-12-12 Arnaud Charlet <charlet@adacore.com>
21360
21361 * Make-lang.in: Update dependencies
21362
53fcb103
AC
213632005-12-12 Arnaud Charlet <charlet@adacore.com>
21364
21365 * Make-lang.in: Add rule for ada/exp_sel.o
21366
25b06cda
AC
213672005-12-12 Arnaud Charlet <charlet@adacore.com>
21368
21369 * Makefile.in (mingw section): Remove EH_MECHANISM setting.
21370
aedc2c2b
AC
213712005-12-09 Arnaud Charlet <charlet@adacore.com>
21372
21373 * gnatvsn.ads (Library_Version): Bump to version 4.2
21374 (ASIS_Version_Number): Bumped.
21375
213762005-12-09 Doug Rupp <rupp@adacore.com>
21377
21378 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
21379 Ada bind file prefix on VMS from b$ to b__.
21380 (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
21381 __init.
21382
21383 * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
21384 Targparm.OpenVMS_On_Target.
21385 (Object_Suffix): Initialize with target object suffix.
21386 (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
21387
21388 * butil.adb: Change some Hostparm.OpenVMS checks to
21389 Targparm.OpenVMS_On_Target.
21390
21391 * clean.adb: Change some Hostparm.OpenVMS checks to
21392 Targparm.OpenVMS_On_Target.
21393 (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
21394 ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
21395 Ada bind file prefix on VMS from b$ to b__.
21396
21397 * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
21398 --GCC so that Get_Target_Parameters can find system.ads.
21399 (Gnatlink): Call Get_Target_Parameters in mainline.
21400 Initialize standard packages for Targparm.
21401 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
21402 (Process_Args): Also Check for object files with target object
21403 extension.
21404 (Make_Binder_File_Names): Create with target object extension.
21405 (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
21406 to b__.
21407
21408 * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
21409 Targparm.OpenVMS_On_Target.
21410 ({declaration},Build_Library,Check_Library): Change Ada bind file
21411 prefix on VMS from b$ to b__.
21412
21413 * osint-b.adb: Change some Hostparm.OpenVMS checks to
21414 Targparm.OpenVMS_On_Target.
21415 (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
21416 b__.
21417
21418 * targext.c: New file.
21419
21420 * Makefile.in: add support for vxworks653 builds
21421 (../../vxaddr2line): gnatlink with targext.o.
21422 (TOOLS_LIBS): Move targext.o to precede libgnat.
21423 (init.o, initialize.o): Minor clean up in dependencies.
21424 (GNATLINK_OBJS): Add targparm.o, snames.o
21425 Add rules fo building targext.o and linking it explicitly with all
21426 tools.
21427 Also add targext.o to gnatlib.
21428
21429 * Make-lang.in: Add rules for building targext.o and linking it in
21430 with gnat1 and gnatbind.
21431 Add entry for exp_sel.o.
21432
21433 * osint.adb Change some Hostparm.OpenVMS checks to
21434 Targparm.OpenVMS_On_Target.
21435 (Object_File_Name): Use target object suffix.
21436
21437 * osint.ads (Object_Suffix): Remove, no longer used.
21438 (Target_Object_Suffix): Initialize with target object suffix.
21439
21440 * rident.ads: Add special exception to license.
21441
21442 * targparm.adb (Get_Target_Parameters): Set the value of
21443 Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
21444 value.
21445 (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
9e81dbc7 21446
aedc2c2b
AC
21447 * targparm.ads: Add special exception to license.
21448
21449 * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
21450 function.
21451 (Copy_File): Make sure from file is closed if error on to file
21452 (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
21453
21454 * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
21455 (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
21456
21457 * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
21458 target object suffix.
21459
214602005-12-09 Jose Ruiz <ruiz@adacore.com>
21461 Quentin Ochem <ochem@adacore.com>
21462 Florian Villoing <villoing@adacore.com>
21463
6f7f72f9 21464 * a-taster.ads, a-taster.adb: New files.
aedc2c2b
AC
21465
21466 * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
21467 link to the version that does nothing. This way the task termination
21468 routine is not executed twice for the environment task when finishing
21469 because of an unhandled exception.
21470
21471 * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
21472 handler because of an unhandled exception.
21473
21474 * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
21475 System.Tasking.Utilities instead of that in System.Tasking.Stages.
21476
21477 * s-finimp.adb (initialization code): Modify the soft link for the
21478 finalization of the global list instead of Adafinal.
21479
21480 * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
21481 non-tasking version of the soft link for task termination. We do
21482 nothing since if we are using the non-tasking version it
21483 means that the task termination functionality is not used.
21484 (Null_Finalize_Global_List): Add this null version for the procedure
21485 in charge of finalizing the global list for controlled objects.
21486 (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
21487 instead for handling run-time termination in a more flexible way.
21488 (Adafinal_NT): This new procedure will take care of finalizing the
21489 global list for controlled objects if needed, but no tasking
21490 finalization.
21491
21492 * s-tarest.adb (Task_Lock): Do not try to lock again the
21493 Global_Task_Lock if we already own it. Otherwise, we get blocked in
21494 some run-time operations.
21495 (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
21496 until all nested locks have been released.
21497 (Task_Wrapper): Call the fall-back task termination handler. It
21498 applies to all tasks but the environment task.
21499 (Finalize_Global_Tasks): Add the call for the task termination
21500 procedure for the environment task.
21501 (Task_Wrapper): suppress warnings around declaration of
21502 Secondary_Stack_Address.
21503
21504 * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
21505 moved to the Common_ATCB record.
21506 (Task_Lock): Global_Task_Lock_Nesting has been moved to the
21507 Common_ATCB record.
21508 (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
21509 Common_ATCB record.
21510
21511 * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
21512 Fall_Back_Handler, and Specific_Handler.
21513
21514 * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
21515 defined in Ada.Task_Termination, to avoid circular dependencies.
21516 (Termination_Handler): Redefine this type here, alredy defined in
21517 Ada.Task_Termination, for avoiding circular dependencies.
21518 (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
21519 for storing task termination handlers. In addition,
21520 Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
21521 Common_ATCB because it is used by both the regular and the restricted
21522 run times.
21523 (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
21524 Common_ATCB because it is used by both the regular and the restricted
21525 run times.
21526 (Common_ATCB): Added a dynamic task analyzer field.
21527
21528 * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
21529 potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
21530 (Task_Wrapper): Call the task termination handler. It applies to all
21531 tasks but the environment task.
21532 (Finalize_Global_Tasks): Call the task termination procedure for the
21533 environment task. The call to Finalize_Global_List is now performed
21534 using the soft links mechanism.
21535 (Task_Wrapper): added dynamic stack analysis.
21536
21537 * s-tasuti.adb (Abort_Tasks): The code in charge of checking
21538 potentially blocking operations has been moved from
21539 System.Tasking.Stages.Abort_Tasks to this procedure. There can be
21540 direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
21541 through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
21542 this run-time check.
21543
21544 * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
21545 of task termination procedure.
21546 (Init_Tasking_Soft_Links): Install the task-safe version of the soft
21547 link for the task termination procedure.
21548
21549 * bindusg.adb: (Bindusg): Added documentation for -u option.
21550
21551 * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
21552 (Get_Main_C): Add handling of dynamic stack analysis.
21553 (Gen_Output_File_C): Add external functions for dynamic stack analysis.
21554
21555 * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
21556 (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
21557 (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
21558
21559 * opt.ads: Added flags used by dynamic stack measurement.
21560 (Max_Line_Length): Remove (not used anymore)
21561
21562 * s-io.ads, s-io.adb (Standard_Error): new subprogram
21563 (Standart_Output): new subprogram
21564 (Set_Output): new subprogram
21565 (Put): now uses the value of Current_Out to know if the output has to be
21566 send to stderr or stdout.
9e81dbc7 21567
aedc2c2b
AC
21568 * s-stausa.ads: Complete implementation.
21569
21570 * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
9e81dbc7 21571
aedc2c2b
AC
21572 * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
21573 list of Ada 05 files.
21574 (GNAT Library Units): Add AltiVec files.
21575
21576 * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
21577 g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
21578 g-alvety.ads, g-alvevi.ads: New files providing altivec API.
21579
215802005-12-09 Nicolas Setton <setton@adacore.com>
21581
21582 * adaint.c (__gnat_locate_regular_file): Return immediately if
21583 file_name is empty.
21584
215852005-12-09 Javier Miranda <miranda@adacore.com>
21586 Hristian Kirtchev <kirtchev@adacore.com>
21587
21588 * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
21589 to the specification because the frontend generates code that uses this
21590 subprogram.
21591 (Set_Interface_Table): Add missing assertion.
21592 Update documentation describing the run-time structure.
21593 (Displace): New subprogram that displaces the pointer to the object
21594 to reference one of its secondary dispatch tables.
21595 (IW_Membership): Modified to use the new table of interfaces.
21596 (Inherit_TSD): Modified to use the new table of interfaces.
21597 (Register_Interface_Tag): Use the additional formal to fill the
21598 contents of the new table of interfaces.
21599 (Set_Interface_Table): New subprogram that stores in the TSD the
21600 pointer to the table of interfaces.
21601 (Set_Offset_To_Top): Use the additional formal to save copy of
21602 the offset value in the table of interfaces.
21603 Update structure of GNAT Primary and Secondary dispatch table diagram.
21604 Add comment section on GNAT dispatch table prologue.
21605 (Offset_To_Signature): Update the constant value of the Signature field.
21606 (Dispatch_Table): Update comment on hidden fields in the prologue.
21607 (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
21608 Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
21609 the type of formal parameter T to Tag, introduce additional assertions.
21610 (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
21611 conversion.
21612 (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
21613
21614 * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
21615 in all the calls to Expand_Interface_Thunk. Instead of referencing the
21616 record component containing the tag of the secondary dispatch table we
21617 have to use the Offset_To_Top run-time function to get this information;
21618 otherwise if the pointer to the base of the object has been displace
21619 we get a wrong value if we use the 'position attribute.
21620
21621 * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
21622 all the calls to Expand_Interface_Thunk.
21623 (Make_Secondary_DT): Secondary dispatch tables do not have a table of
21624 interfaces; hence the call to Set_Interface_Table was clearly wrong.
21625 (Collect_All_Interfaces): Modify the internal subprogram Collect to
21626 ensure that the interfaces implemented by the ancestors are placed
21627 at the header of the generated list.
21628 (Expand_Interface_Conversion): Handle the case in which the displacement
21629 associated with the interface conversion is not statically known. In
21630 this case we generate a call to the new run-time subprogram Displace.
21631 (Make_DT): Generate and fill the new table of interfaces.
21632 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
21633 Get_Tagged_Kind and Set_Tagged_Kind.
21634 (Tagged_Kind): New function that determines the tagged kind of a type
21635 with respect to limitedness and concurrency and returns a reference to
21636 RE_Tagged_Kind.
21637 (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
21638 Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
21639 primary dispatch table for a type.
21640 (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
21641 secondary dispatch table respectively of a tagged type.
21642
21643 * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
21644 (Expand_Interface_Conversion): New subprogram to indicate if the
21645 displacement of the type conversion is statically known.
21646 (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
21647
21648 * rtsfind.ads (RE_Offset_To_Top): New entity
21649 (RTU_Id): Add Ada_Task_Termination to the list so that it is made
21650 accessible to users.
21651 (Re_Displace): New entity
21652 (RE_Interface_Data): New entity
21653 (RE_Set_Interface_Data): New_Entity
21654 (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
21655 Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
21656 RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
21657 RE_TK_Tagged, RE_TK_Task.
21658
21659 * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
21660 Init_Secondary_Tags_Internal to allow its use with interface types and
21661 also to generate the code for the new additional actual required
21662 by Set_Offset_To_Top.
21663 (Build_Init_Statements): In case of components associated with abstract
21664 interface types there is no need to generate a call to its IP.
21665 (Freeze_Record_Type): Generate Select Specific Data tables only for
21666 concurrent types.
21667 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
21668 the bodies and specifications of the predefined primitive operations
21669 dealing with dispatching selects and abort, 'Callable, 'Terminated only
21670 for concurrent types.
21671
6f7f72f9 21672 * exp_sel.ads, exp_sel.adb: New files.
aedc2c2b
AC
21673
21674 * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
21675 Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
21676 properly protected objects and attach handler in the case of the
21677 restricted profile.
21678 Move embeded package Select_Expansion_Utilities into a separate external
21679 package.
21680 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
21681 Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
21682 (Build_K, Build_S_Assignment): New subprograms, part of the select
21683 expansion utilities.
21684 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
21685 Expand_N_Timed_Entry_Call): Optimize expansion of select statements
21686 where the trigger is a dispatching procedure of a limited tagged type.
21687
216882005-12-09 Olivier Hainque <hainque@adacore.com>
21689
21690 * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
21691 pointer initialization values. Make a SAVE_EXPR instead. Add comments
21692 about the use and expansion of SAVE_EXPRs in the various possible
21693 renaming handling cases.
21694 (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
21695 abusing DECL_FCONTEXT.
21696
216972005-12-09 Matthew Heaney <heaney@adacore.com>
21698
21699 * a-convec.adb (Merge): Added assertions to check whether vector params
21700 are sorted.
21701
21702 * a-coinve.adb (Merge): Added assertions to check whether vector params
21703 are sorted.
21704
21705 * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
21706 draft.
21707 (Cursor'Read): raises PE
21708
21709 * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
21710 to its default value.
21711
21712 * a-cihama.adb: Manually check whether cursor's key and elem are
21713 non-null
21714
21715 * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
21716 (Merge): Assert that target and source lists are in order
21717 (Swap): Declare non-const temporaries, to pass to Splice
21718
21719 * a-cdlili.ads: (Splice): Changed param name and param mode
21720
21721 * a-cdlili.adb: (Splice): Changed param name and param mode
21722 (Merge): Assert that target and source lists are in order
21723 (Swap): Declare non-const temporaries, to pass to Splice
21724
21725 * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
21726 (Write): declare Stream param as not null
21727
21728 * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
21729 an exception message.
21730
217312005-12-09 Thomas Quinot <quinot@adacore.com>
21732 Robert Dewar <dewar@adacore.com>
21733
21734 * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
21735 which is the absolute maximum length we can support.
21736
21737 * frontend.adb: For the processing of configuration pragma files,
21738 remove references to Opt.Max_Line_Length, which is not checked anymore.
21739
21740 * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
21741 length.
21742
9e81dbc7 21743 * scn.adb, scng.adb:
aedc2c2b
AC
21744 Always check line length against the absolute supported maximum,
21745 Hostparm.Max_Line_Length.
21746
21747 * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
21748 value for the maximum line length is Max_Line_Length (not
21749 Column_Number'Last).
21750 Minor error msg update
21751 (Set_Style_Check_Options): New interface returning error msg
21752 Minor code reorganization (processing for 'M' was out of alpha order)
21753
21754 * switch-c.adb: New interface for Set_Style_Check_Options
21755
21756 * stylesw.ads (Set_Style_Check_Options): New interface returning error
21757 msg.
21758
217592005-12-09 Javier Miranda <miranda@adacore.com>
21760
21761 * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
21762 with IP subprogram were only supported if there were limited types.
21763
21764 * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
21765 records with IP subprogram were only supported if there were limited
21766 types.
21767
217682005-12-09 Olivier Hainque <hainque@adacore.com>
21769 Eric Botcazou <ebotcazou@adacore.com>
21770
21771 * trans.c (tree_transform, emit_check): Adjust calls to
21772 build_call_raise, passing the now expected GNAT_NODE argument.
21773
21774 * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
21775 source line information than what the current global locus indicates
21776 when appropriate.
21777
21778 * utils2.c (build_simple_component_ref): Return 0 if the offset of the
21779 field has overflowed.
21780 (build_call_raise): Add a GNAT_NODE argument to convey better source
21781 line information than what the current global locus indicates when
21782 appropriate.
21783 (build_component_ref): Adjust call to build_call_raise.
21784
217852005-12-09 Pascal Obry <obry@adacore.com>
21786
21787 * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
21788 the iterator is quitting iteration on parent directory.
21789
217902005-12-09 Javier Miranda <miranda@adacore.com>
21791
21792 * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
21793 and the assignment to a class-wide object, before the assignment we
21794 generate a run-time check to ensure that the tag of the Target is
21795 covered by the tag of the source.
21796
217972005-12-09 Robert Dewar <dewar@adacore.com>
21798
21799 * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
21800 parameter in call to Image_Wide_Character.
21801
21802 * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
21803 parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
21804 (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
21805 annoying FFFE/FFFF inconsistency.
21806
218072005-12-09 Robert Dewar <dewar@adacore.com>
21808 Javier Miranda <miranda@adacore.com>
21809 Ed Schonberg <schonberg@adacore.com>
21810
21811 * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
21812 of type conversion.
21813 (Find_Interface): New subprogram that given a tagged type and one of its
21814 component associated with the secondary table of an abstract interface
21815 type, return the entity associated with such abstract interface type.
21816 (Make_Subtype_From_Expr): If type has unknown discriminants, always use
21817 base type to create anonymous subtype, because entity may be a locally
21818 declared subtype or generic actual.
21819 (Find_Interface): New subprogram that given a tagged type and one of its
21820 component associated with the secondary table of an abstract interface
21821 type, return the entity associated with such abstract interface type.
21822
21823 * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
21824 conversion cannot be handled at compile time. In this case we pass this
21825 information to the expander to generate the appropriate code.
21826
218272005-12-09 Robert Dewar <dewar@adacore.com>
21828 Ed Schonberg <schonberg@adacore.com>
21829 Gary Dismukes <dismukes@adacore.com>
21830 Javier Miranda <miranda@adacore.com>
21831 Hristian Kirtchev <kirtchev@adacore.com>
21832
21833 * einfo.adb (Itype_Printed): New flag
21834 (Is_Limited_Type): Derived types do not inherit limitedness from
21835 interface progenitors.
21836 (Is_Return_By_Reference_Type): Predicate does not apply to limited
21837 interfaces.
21838
21839 * einfo.ads (Itype_Printed): New flag
21840 Move Is_Wrapper_Package to proper section
21841 Add missing Inline for Is_Volatile
21842
21843 * output.ads, output.adb (Write_Erase_Char): New procedure
21844 (Save/Restore_Output_Buffer): New procedures
21845 (Save/Restore_Output_Buffer): New procedures
21846
21847 * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
21848 Add missing support for anonymous access type
21849 (Write_Id): Insert calls to Write_Itype
21850 (Write_Itype): New procedure to output itypes
21851
21852 * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
21853 use of "limited" in declaration.
21854
9e81dbc7 21855 * sinfo.ads, sinfo.adb:
aedc2c2b
AC
21856 Formal derived types can carry an explicit "limited" indication.
21857
21858 * sem_ch3.adb: Add with and use of Targparm.
21859 (Create_Component): If Frontend_Layout_On_Target is True and the
21860 copied component does not have a known static Esize, then reset
21861 the size and positional fields of the new component.
21862 (Analyze_Component_Declaration): A limited component is
21863 legal within a protected type that implements an interface.
21864 (Collect_Interfaces): Do not add to the list the interfaces that
21865 are implemented by the ancestors.
21866 (Derived_Type_Declaration): If the parent of the full-view is an
21867 interface perform a transformation of the tree to ensure that it has
21868 the same parent than the partial-view. This simplifies the job of the
21869 expander in order to generate the correct object layout, and it is
21870 needed because the list of interfaces of the full-view can be given in
21871 any order.
21872 (Process_Full_View): The parent of the full-view does not need to be
21873 a descendant of the parent of the partial view if both parents are
21874 interfaces.
21875 (Analyze_Private_Extension_Declaration): If declaration has an explicit
21876 "limited" the parent must be a limited type.
21877 (Build_Derived_Record_Type): A derived type that is explicitly limited
21878 must have limited ancestor and progenitors.
21879 (Build_Derived_Type): Ditto.
21880 (Process_Full_View): Verify that explicit uses of "limited" in partial
21881 and full declarations are consistent.
21882 (Find_Ancestor_Interface): Remove function.
21883 (Collect_Implemented_Interfaces): New procedure used to gather all
21884 implemented interfaces by a type.
21885 (Contain_Interface): New function used to check whether an interface is
21886 present in a list.
21887 (Find_Hidden_Interface): New function used to determine whether two
21888 lists of interfaces constitute a set equality. If not, the first
21889 differing interface is returned.
21890 (Process_Full_View): Improve the check for the "no hidden interface"
21891 rule as defined by AI-396.
21892
218932005-12-09 Robert Dewar <dewar@adacore.com>
21894
21895 * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
21896 types, not on record subtypes.
21897 (Freeze_Entity): Code cleanup. Add barrier to the loop
21898 that generates the references for primitive operations. This allows to
21899 remove an unnecessary exception handler.
21900 Code reformatting and comment clean ups.
21901
219022005-12-09 Vincent Celier <celier@adacore.com>
21903
21904 * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
21905 If GNAT CHECK is called with a project file, but with no
21906 source on the command line, call gnatcheck with all the compilable
21907 sources of the project.
21908 Take into account the new command Check, for gnatcheck. Treat as for
21909 other ASIS tools: take into account project, specific package Check and
21910 Compiler switches.
21911 For ASIS tools, add the switches in package Compiler for
21912 the invocation of the compiler.
21913
21914 * prj-attr.adb: Add package Check and its attributes
21915
21916 * vms_conv.ads (Command_Type): New command Check, for gnatcheck
21917
21918 * vms_conv.adb (Initialize): Change Params of command Check to
21919 unlimited files.
21920 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
21921 Add data for new command Check
21922
21923 * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
21924 ELIM.
21925 Add qualifiers for Check command options
21926 (Command_Type): New command Check
21927
219282005-12-09 Thomas Quinot <quinot@adacore.com>
21929
21930 * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
21931 command line switch overruns the output buffer.
21932
219332005-12-09 Robert Dewar <dewar@adacore.com>
21934
21935 * sem_prag.adb: Processing for new pragma Complete_Representation
21936 (Analyze_Pragma, case Debug): Implement two argument form.
21937
21938 * par-prag.adb: Entry for new pragma Complete_Representation
21939 (Prag, case Debug): Recognize two argument form of pragma Debug
21940 New interface for Set_Style_Check_Options.
21941
21942 * sem_ch13.adb: Implement new pragma Complete_Representation.
21943
21944 * snames.adb, snames.ads, snames.h: Entry for new pragma
21945 Complete_Representation.
21946
219472005-12-09 Gary Dismukes <dismukes@adacore.com>
21948
21949 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
21950 available user-specified stream attributes on limited parameters to
21951 also test the type directly rather than only its underlying type (for
21952 Ada 95) and, in the case of Ada 2005, to check that the user-specified
21953 attributes are visible at the point of the subprogram declaration.
21954 For Ada 2005, the error message is modified to indicate that the
21955 type's stream attributes must be visible (again, only for -gnat05).
21956
219572005-12-09 Ed Schonberg <schonberg@adacore.com>
21958
21959 * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
21960 anonymous access types.
21961
21962 * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
21963 matching of anonymous access types and anonymous access to subprogram
21964 types. 'R'M 4.9.1 (2/2).
21965
219662005-12-09 Ed Schonberg <schonberg@adacore.com>
21967
21968 * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
21969 rule prematurely when operands are universal, remaining ambiguities
21970 will be removed during resolution.
21971 Code cleanup.
21972
21973 * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
21974 that are Ada 2005 functions.
21975 (Has_Abstract_Interpretation): Subsidiary to
21976 Remove_Conversions, to remove ambiguities caused by abstract operations
21977 on numeric types when operands are universal.
21978
219792005-12-09 Robert Dewar <dewar@adacore.com>
21980
21981 * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
21982 for case where spec is categorized.
21983
219842005-12-09 Javier Miranda <miranda@adacore.com>
21985
21986 * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
21987 types use the corresponding record type. This was not needed before
21988 the implementation of Ada 2005 synchronized types because
21989 concurrent types were never tagged types in Ada 95.
21990
219912005-12-09 Ed Schonberg <schonberg@adacore.com>
21992
21993 * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
21994 first subtype of the type of the expression to verify that it is a
21995 legal Time type.
21996
219972005-12-09 Robert Dewar <dewar@adacore.com>
21998
21999 * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
22000 decoded names.
22001
220022005-12-09 Quentin Ochem <ochem@adacore.com>
22003 Robert Dewar <dewar@adacore.com>
22004 Ed Falis <falis@adacore.com>
22005 Florian Villoing <villoing@adacore.com>
22006 Thomas Quinot <quinot@adacore.com>
22007 Arnaud Charlet <charlet@adacore.com>
22008
22009 * gnat_ugn.texi: Created section "Stack Related Tools"
22010 Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
22011 "Stack Related Tools"
22012 Added subsection "Static Stack Usage Analysis"
22013 Added subsection "Dynamic Stack Usage Analysis"
22014 Include documentation of itypes in sprint listing (-gnatG)
22015 Documented gnatbind -D switch (default sec stack size for fixed sec
22016 stacks).
22017 Added Interrupt_State and Persistent_BSS to list of configuration
22018 pragmas.
22019 Add missing doc for maximum value of nnn in -gnatyMnnn
22020
22021 * gnat_rm.texi: Document the AltiVec binding.
22022 Add documentation for pragma Complete_Representation
22023 Shortened an overly long line (> 79 chars)
22024 Clarify documentation of unchecked conversion in implementation
22025 defined cases.
22026 Document two argument form of pragma Debug
22027
22028 * types.ads (Column_Number): Update documentation.
22029
22030 * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
22031 library level Finalize_Storage_Only objects (these are not attached to
22032 any finalization list).
22033
22034 * system-mingw.ads: (Underlying_Priorities): Update comment.
22035
220362005-12-09 Robert Dewar <dewar@adacore.com>
22037
22038 * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
6f7f72f9 22039 i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
aedc2c2b
AC
22040 inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
22041 i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
22042 krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
22043 lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
22044 interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
22045 s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
22046 reformatting.
22047
220482005-12-09 Robert Dewar <dewar@adacore.com>
22049
22050 * s-vaflop-vms-alpha.adb: (Ne_F): New function
22051 (Ne_G): New function
22052
22053 * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
22054 for tag assignment.
22055 (Rewrite_Comparison): Handle case where operation is not a comparison
22056 and ignore, and also handle type conversion case.
22057
220582005-12-09 Thomas Quinot <quinot@adacore.com>
22059
22060 * exp_aggr.ads: Fix typo in comment.
22061 ???-mark Convert_Aggr_In_Assignment as needing documentation.
22062
220632005-12-09 Gary Dismukes <dismukes@adacore.com>
22064
22065 * layout.adb: Replace various uses of byte by storage unit throughout.
22066 (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
22067 static size, convert to storage units before returning, to conform to
22068 spec.
22069
220702005-12-09 Matthew Gingell <gingell@adacore.com>
22071
22072 * g-exctra.ads: Fix typo in comment.
22073
220742005-12-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22075
22076 * utils.c: Minor reformatting.
22077
220782005-12-09 Robert Dewar <dewar@adacore.com>
22079
9e81dbc7 22080 * g-soccon.ads:
aedc2c2b
AC
22081 Further comment fixes to make the status of the default file clear
22082
22083 * s-bitops.adb: Clarify comment for Bits_Array
22084
719bb4e3 220852005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
bd97af06
RÁE
22086
22087 * Make-lang.in (ada.install-normal): Remove.
22088
719bb4e3 220892005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2f4d2d18
AM
22090
22091 * Make-lang.in: Remove all dependencies on s-gtype.
22092
53917868
RG
220932005-12-05 Richard Guenther <rguenther@suse.de>
22094
22095 * utils.c (convert): Use fold_convert where appropriate.
22096
40077270
PB
220972005-12-05 Paolo Bonzini <bonzini@gnu.org>
22098
6f7f72f9 22099 * Makefile.in (gnatlib): Fix regex, using \. instead of . when
40077270
PB
22100 a period is meant.
22101
a380cd0a
RG
221022005-12-02 Richard Guenther <rguenther@suse.de>
22103
22104 * trans.c (gnat_gimplify_expr): Use buildN instead of build.
22105
87f2a9f5
RS
221062005-12-01 Roger Sayle <roger@eyesopen.com>
22107
22108 * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
22109 nodes.
22110
9e94c78f 221112005-11-23 Laurent Guerby <laurent@guerby.net>
f8d15f14 22112
6f7f72f9 22113 * mlib-prj.adb (Build_Library): Initialize Delete.
f8d15f14 22114
9e94c78f 221152005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
04b5d587
JS
22116
22117 * socket.c: Add extern int h_errno for rtems since networking header
22118 files are not available at this point in a tool bootstrap. Newlib
22119 only has basic C library header files.
22120
452b5b1e
RG
221212005-11-19 Richard Guenther <rguenther@suse.de>
22122 Roger Sayle <roger@eyesopen.com>
22123
22124 PR ada/23717
22125 * misc.c (internal_error_function): Don't use vsprintf to format
22126 the error message text, instead use pp_format_text and the new
22127 pretty printer APIs. This allows handling of %qs, %w, etc.
22128
9e94c78f 221292005-11-18 Laurent Guerby <laurent@guerby.net>
e0709888 22130
6f7f72f9
EB
22131 PR ada/24857
22132 * Makefile.in: Use s-auxdec-empty for RTEMS.
e0709888 22133
115a82d3
RK
221342005-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22135
22136 PR ada/22333
22137 * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
22138 a temporary if taking the address of something that is neither
22139 reference, declaration, or constant, since the gimplifier
22140 can't handle that case.
22141
9e94c78f 221422005-11-17 Laurent Guerby <laurent@guerby.net>
f92af607
LG
22143
22144 PR ada/24857
22145 * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
6f7f72f9 22146
0678ec6b
RG
221472005-11-16 Richard Guenther <rguenther@suse.de>
22148
22149 * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
22150
9e94c78f 221512005-11-16 Joel Sherrill <joel.sherrill@oarcorp.com>
b381d30b 22152
6f7f72f9
EB
22153 PR ada/24855
22154 * raise-gcc.c: Add missing stdarg.h include.
9e81dbc7 22155
1367ca38
RG
221562005-11-16 Richard Guenther <rguenther@suse.de>
22157
22158 * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
22159 (ada/misc.o): Likewise.
22160
5de923eb
AC
221612005-11-14 Thomas Quinot <quinot@adacore.com>
22162
22163 * g-soccon.ads: Minor reformatting. Update comments.
22164
22165 * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
22166 gain visibility on the declaration of struct timeval.
22167
22168 * g-soccon-freebsd.ads,
22169 g-soccon-darwin.ads,
22170 g-soccon-tru64.ads,
22171 g-soccon-aix.ads,
22172 g-soccon-irix.ads,
22173 g-soccon-hpux.ads,
22174 g-soccon-solaris.ads,
22175 g-soccon-vms.ads,
22176 g-soccon-mingw.ads,
22177 g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
22178
22179 * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
22180 g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
22181 g-soccon-linux-x86.ads: New files.
22182
9e81dbc7 22183 * g-socthi-mingw.adb:
5de923eb
AC
22184 (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
22185
22186 * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
22187 (time_t, suseconds_t): New types constructed to match the tv_sec
22188 and tv_usec fields of C struct timeval.
22189 (Timeval): Construct structure in terms of the new types.
22190 (Host_Errno): New function (imported from socket.c), returns last hosts
22191 database error.
22192
22193 * g-socthi-vxworks.adb: Add error handling circuitry.
22194
22195 * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
22196 components of struct timeval.
22197 (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
22198 (Check_Selector): In error conditions, clear internal socket sets to
22199 avoid a memory leak.
22200 (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
22201 Send_Timeout, Receive_Timeout.
22202
22203 * g-socthi.ads (time_t, suseconds_t): New types constructed to match
22204 the tv_sec and tv_usec fields of C struct timeval.
22205 (Timeval): Construct structure in terms of the new types.
22206 (Host_Errno): New function (imported from socket.c), returns last hosts
22207 database error.
22208
22209 * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
22210 hosts database last error code.
22211
22212 * gen-soccon.c: Complete value expansion should not be performed on
22213 TARGET, as it has the form of a math expression, and some components
22214 may be platform-defined macros.
22215 For VxWorks, generate the OK and ERROR values.
22216 New constants giving the sizes of the components of C struct timeval.
22217
222182005-11-14 Robert Dewar <dewar@adacore.com>
22219 Ed Schonberg <schonberg@adacore.com>
22220
22221 PR ada/18434
5de923eb
AC
22222 * types.ads: Include All_Checks in Suppress_Array
22223
22224 * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
22225 not(a=b), since we no longer do this rewriting, and hence it is not
22226 needed.
22227 (Elaboration_Checks_Suppressed): Add special casing to
22228 deal with different cases of static and dynamic elaboration checks (all
22229 checks does not count in the first case, but does in the second).
22230 (Expr_Known_Valid): Do not assume that the result of any arbitrary
22231 function call is valid, since this is not the case.
22232 (Ensure_Valid): Do not apply validity check to a real literal
22233 in a universal or fixed context
22234
22235 * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
22236 elementary types using the operator in standard. It is cleaner not to
22237 modify the programmers intent, especially in the case of floating-point.
22238 (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
22239 it did not matter because we always rewrote a/=b to not(a=b).
22240 (Expand_Allocator_Expression): For an allocator expression whose nominal
22241 subtype is an unconstrained packed type, convert the expression to its
22242 actual constrained subtype.
22243 Implement warning for <= or >= where < or > not possible
22244 Fix to Vax_Float tests (too early in many routines, causing premature
22245 Vax_Float expansions.
22246
22247 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
22248 to be used with packages and generic packages as well as with
22249 subprograms.
22250 (Suppress): Set All_Checks, but not Elaboration_Check, for case
22251 of pragma Suppress (All_Checks)
22252 (Analyze_Pragma, case Warnings): Implement first argument allowed to be
22253 a string literal for precise control over warnings.
22254 Avoid raise of pragma in case of unrecognized pragma and just return
22255 instead.
22256
22257 * sem_prag.ads: Minor reformatting
22258
22259 * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
22260 with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
22261 Switch. Do not handle any exception.
22262 Include -gnatwx as part of -gnatg (warn on redundant parens)
22263 Allow optional = after -gnatm
22264 (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
22265 longer sets Elaboration_Checks.
22266 Code to set warning mode moved to Sem_Warn
22267 so that it can be shared by pragma processing.
22268
22269 * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
22270 statement.
22271
9e81dbc7 22272 * s-taprop-solaris.adb:
5de923eb
AC
22273 Change some <= to =, to avoid new warning
22274
9e81dbc7 22275 * a-exexda.adb, prj-proc.adb:
5de923eb
AC
22276 Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
22277 Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
22278
222792005-11-14 Robert Dewar <dewar@adacore.com>
22280
22281 * exp_vfpt.adb: Handle /= case
22282 (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
22283 so that we do not get duplicate scaling for fixed point conversions.
22284
22285 * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
22286
222872005-11-14 Matthew Gingell <gingell@adacore.com>
22288
9e81dbc7 22289 * system-lynxos-ppc.ads, system-lynxos-x86.ads:
5de923eb
AC
22290 Increase default priority on Lynx from 15 to 17, and meet the Ada
22291 requirement that Default_Priority be ((Priority'First +
22292 Priority'Last) / 2) by increasing the range of Interrupt_Priority.
22293
222942005-11-14 Vincent Celier <celier@adacore.com>
22295
22296 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
22297 mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
22298 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
22299 mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
22300 mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
22301 mlib-tgt-lynxos.adb (DLL_Prefix): New function
22302
223032005-11-14 Doug Rupp <rupp@adacore.com>
22304
22305 * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
22306 private part.
22307
223082005-11-14 Arnaud Charlet <charlet@adacore.com>
22309
22310 * s-traces-default.adb, s-trafor-default.ads,
22311 s-tratas-default.adb: Fix compilation errors.
22312
223132005-11-14 Jose Ruiz <ruiz@adacore.com>
22314
22315 * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
22316 raising the exception so the memory used is freed.
22317
223182005-11-14 Arnaud Charlet <charlet@adacore.com>
22319
22320 * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
22321 (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
22322 (convert_address): Update comments and list of platforms using this.
22323
22324 * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
22325 no longer used.
22326
223272005-11-14 Pascal Obry <obry@adacore.com>
22328 Vincent Celier <celier@adacore.com>
22329
22330 * gnatdll.adb (Parse_Command_Line): Remove redundant use of
22331 GNAT.Command_Line.
22332
22333 * memroot.adb: Remove redundant with/use clause on
22334 System.Storage_Elements.
22335
223362005-11-14 Arnaud Charlet <charlet@adacore.com>
22337
22338 * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
22339 (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
22340 related code to a-exexpr.adb
22341 (Save_Occurrence_And_Private): Move GCC EH related code to
22342 a-exexpr-gcc.adb
22343 (Raise_Current_Excep): Add new variable Id with pragma
6f7f72f9 22344 volatile, to ensure that the variable lives on stack.
5de923eb
AC
22345
22346 * a-exexpr-gcc.adb, raise-gcc.c: New file.
22347
22348 * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
22349 from a-except.adb.
22350 Move GCC EH related code to a-exexpr-gcc.adb
22351
22352 * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
22353 64-bit Solaris
22354 Split the Linux version of g-soccon into separate variants for 32 and 64
22355 bit platforms.
22356 (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
22357 vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
22358 install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
22359 of host variable $(RANLIB_FLAGS).
22360 (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
22361 Code clean up: remove unused/obsolete targets.
22362 (EH_MECHANISM): New variable introduced to differenciate between the
22363 two EH mechanisms statically.
22364 (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
22365 (LIBGNAT_OBJS): Add raise-gcc.o
22366 (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
22367 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
22368 supports VxWorks 6 RTPs.
22369 (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
22370 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
22371
22372 * raise.c: Move all GCC EH-related routines to raise-gcc.c
22373
223742005-11-14 Jose Ruiz <ruiz@adacore.com>
22375
22376 * s-tassta.adb (Create_Task): Move the code in charge of resetting the
22377 deferral level, when abort is not allowed, to a later stage (the
22378 Task_Wrapper).
22379 (Task_Wrapper): If Abort is not allowed, reset the deferral level since
22380 it will not get changed by the generated code. It was previously done
22381 in Create_Task.
22382
223832005-11-14 Thomas Quinot <quinot@adacore.com>
22384 Olivier Hainque <hainque@adacore.com>
22385 Eric Botcazou <ebotcazou@adacore.com>
22386
22387 * decl.c:
22388 Factor common code to build a storage type for an unconstrained object
22389 from a fat or thin pointer type and a constrained object type.
22390 (annotate_value): Handle BIT_AND_EXPR.
22391 (annotate_rep): Don't restrict the back annotation of inherited
22392 components to the type_annotate_only case.
22393 (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
22394 we are not defining the type.
22395 <E_Record_Type>: Likewise.
22396 (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
22397 to get advantage of the new maybe_stabilize_reference interface, to
22398 ensure that what we reference is indeed stabilized instead of relying
22399 on assumptions on what the stabilizer does.
22400 (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
22401 type imported through a limited_with clause, use its non-limited view.
22402 (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
22403 differentiation.
22404 (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
22405 of #if sections + explicit comparisons of convention identifiers.
22406 (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
22407 before early-returning for certain types when code generation is
22408 disabled.
22409 (gnat_to_gnu_entity) <object>: Adjust comment attached to the
22410 nullification of gnu_expr we do for objects with address clause and
22411 that we are not defining.
22412 (elaborate_expression_1): Do not create constants when creating
22413 variables needed by the debug info: the dwarf2 writer considers that
22414 CONST_DECLs is used only to represent enumeration constants, and emits
22415 nothing for them.
22416 (gnat_to_gnu_entity) <object>: When turning a non-definition of an
22417 object with an address clause into an indirect reference, drop the
22418 initializing expression.
22419 Include "expr.h".
22420 (STACK_CHECK_BUILTIN): Delete.
22421 (STACK_CHECK_PROBE_INTERVAL): Likewise.
22422 (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
22423 (STACK_CHECK_MAX_VAR_SIZE): Likewise.
22424 (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
22425 corresponding to the renamed object as ignored for debugging purposes.
22426
22427 * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
22428 related): For a prefix that is a dereference of a fat or thin pointer,
22429 if there is an actual subtype provided by the front-end, use that
22430 subtype to build an actual type with bounds template.
22431 (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
22432 is provided by the front-end, use that subtype to compute the size of
22433 the deallocated object.
22434 (gnat_to_gnu): When adding a statement into an elaboration procedure,
22435 check for a potential violation of a No_Elaboration_Code restriction.
22436 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
22437 with extra arguments to control whether to recurse through non-values
22438 and to let the caller know if the stabilization has succeeded.
22439 (gnat_stabilize_reference): Now a simple wrapper around
22440 maybe_stabilize, for common uses without restriction on lvalues and
22441 without need to check for the success indication.
22442 (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
22443 pass false instead of 0 as the FORCE argument which is a bool.
22444 (Identifier_to_gnu): Remove checks ensuring that an renamed object
22445 attached to a renaming pointer has been properly stabilized, as no such
22446 object is attached otherwise.
22447 (call_to_gnu): Invoke create_var_decl to create the temporary when the
22448 function uses the "target pointer" return mechanism.
22449 Reinstate conversion of the actual to the type of the formal
22450 parameter before any other specific treatment based on the passing
22451 mechanism. This turns out to be necessary in order for PLACEHOLDER
22452 substitution to work properly when the latter type is unconstrained.
22453
22454 * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
22455 common pattern.
22456 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
22457 with extra arguments to control whether to recurse through non-values
22458 and to let the caller know if the stabilization has succeeded.
22459
22460 * utils2.c (gnat_build_constructor): Only sort the fields for possible
22461 static output of record constructor if all the components are constant.
22462 (gnat_build_constructor): For a record type, sort the list of field
22463 initializers in increasing bit position order.
22464 Factor common code to build a storage type for an unconstrained object
22465 from a fat or thin pointer type and a constrained object type.
22466 (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
22467 types variants, and process special cases of VIEW_CONVERT expressions
22468 as their NOP_EXPR counterpart to ensure we get to the
22469 CORRESPONDING_VARs associated with CONST_DECls.
22470 (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
22471 on the right-hand side.
22472
22473 * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
22474 a common pattern.
22475 (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
22476 are converting back to its original type.
22477 (convert) <JM input>: Fallthrough regular conversion code instead of
22478 extracting the object if converting to a type variant.
22479 (create_var_decl): When a variable has an initializer requiring code
22480 generation and we are at the top level, check for a potential violation
22481 of a No_Elaboration_Code restriction.
22482 (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
22483 SIZE and SIZE_UNIT which we need for later back-annotations.
22484 * utils.c: (convert) <STRING_CST>: Remove obsolete code.
22485 <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
22486 is an unchecked union.
22487 (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
22488 (convert) <VIEW_CONVERT_EXPR>: When the types have the same
22489 main variant, just replace the VIEW_CONVERT_EXPR.
22490 <UNION_TYPE>: Revert 2005-03-02 change.
22491
22492 * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
22493
22494 * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
22495
224962005-11-14 Matthew Heaney <heaney@adacore.com>
22497
9e81dbc7
AS
22498 * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads,
22499 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb,
22500 a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads,
22501 a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb,
22502 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
22503 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb:
5de923eb
AC
22504 Compiles against the spec for ordered maps described in sections
22505 A.18.6 of the most recent (August 2005) AI-302 draft.
22506
225072005-11-14 Olivier Hainque <hainque@adacore.com>
22508
22509 * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
22510 to ensure bias adjustments take place when need be and to prevent
22511 occurrences of intermediate overflows.
22512
225132005-11-14 Matthew Gingell <gingell@adacore.com>
22514 Olivier Hainque <hainque@adacore.com>
22515
22516 * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
22517 ia64 HP-UX.
22518
22519 * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
22520 tracebacks on ia64 HP-UX and provide explanatory comment.
22521 Enable backtraces on ia64 GNU/Linux.
22522 (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
22523 base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
22524
225252005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
22526 Javier Miranda <miranda@adacore.com>
22527
22528 * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
22529 exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
22530 exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
22531 einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
22532
22533 * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
22534 properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
22535 assertions).
22536
22537 * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
22538 subprogram that generates the external name associated with a
22539 secondary dispatch table.
22540 (Get_Secondary_DT_External_Name): New subprogram that generates the
22541 external name associated with a secondary dispatch table.
22542
225432005-11-14 Emmanuel Briot <briot@adacore.com>
22544
22545 * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
22546 line in the ALI file to include both an instantiation reference, and a
22547 returned value.
22548
225492005-11-14 Vincent Celier <celier@adacore.com>
22550
22551 * clean.adb (Check_Project): Look for Ada code in extending project,
22552 even if Ada is not specified as a language.
22553 Use new function DLL_Prefix for DLL_Name
22554 (Clean_Interface_Copy_Directory): New procedure
22555 (Clean_Library_Directory): New procedure
22556 (Clean_Directory): Remove procedure, no longer used
22557 (Clean_Project): Do not delete any file in an externally built project
22558
22559 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
22560 directory of an extending project, even when there are no Ada source
22561 present.
22562 (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
22563 (Set_Ada_Paths.Add.Recursive_Add): Ditto
22564
22565 * mlib-prj.adb (Check_Library): For all library projects, get the
22566 library file timestamp.
22567 (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
22568 (Build_Library): Use new function DLL_Prefix for the DLL_Name
22569 (Clean): Remove procedure, no longer used
22570 (Ultimate_Extension_Of): New function
22571 (Build_Library): When cleaning the library directory, only remove an
22572 existing library file and any ALI file of a source of the project.
22573 When cleaning the interface copy directory, remove any source that
22574 could be a source of the project.
22575
22576 * prj.ads, prj.adb (Project_Empty): Add values of new components
22577 Library_TS and All_Imported_Projects.
22578 (Project_Empty): Add values for new components of Project_Data:
22579 Library_ALI_Dir and Display_Library_ALI_Dir
22580
22581 * prj-attr.adb: New project level attribute name Library_ALI_Dir
22582
22583 * prj-nmsc.adb (Check_Library_Attributes): Take into account new
22584 attribute Library_ALI_Dir.
22585 (Check_Library_Attributes): The library directory cannot be the same as
22586 any source directory of the project tree.
22587 (Check_Stand_Alone_Library): The interface copy directory cannot be
22588 the same as any source directory of the project tree.
22589
22590 * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
22591 all temporary files.
22592
225932005-11-14 Robert Dewar <dewar@adacore.com>
22594 Ed Schonberg <schonberg@adacore.com>
22595
22596 * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22597 (Check_Elab_Call): A call within a protected body is never an
22598 elaboration call, and does not require checking.
22599 (Same_Elaboration_Scope): Take into account protected types for both
22600 entities.
22601 (Activate_Elaborate_All_Desirable): New procedure
22602
22603 * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
22604 desirable
22605
22606 * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
22607 (Elab_Error_Msg): Use -da to include internal unit links, not -de.
22608
9e81dbc7 22609 * lib-writ.ads, lib-writ.adb:
5de923eb
AC
22610 Implement new AD/ED for Elaborate_All/Elaborate desirable
22611 Use new Elaborate_All_Desirable flag in N_With_Clause node
22612
22613 * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
22614 N_Free_Statement nodes.
22615 Define new class N_Subprogram_Instantiation
22616 Add Elaborate_Desirable flag to N_With_Clause node
22617 Add N_Delay_Statement (covering two kinds of delay)
22618
22619 * debug.adb: Introduce d.f flag for compiler
22620 Add -da switch for binder
22621
226222005-11-14 Ed Schonberg <schonberg@adacore.com>
22623 Cyrille Comar <comar@adacore.com>
22624
22625 * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
22626 for task component, in the case of a limited aggregate. The enclosed
22627 object declaration will create it earlier. Otherwise, in the case of a
22628 nested aggregate, the object may appear in the wrong scope.
22629 (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
22630 (Gen_Assign): If the component being assigned is an array type and the
22631 expression is itself an aggregate, wrap the assignment in a block to
22632 force finalization actions on the temporary created for each row of the
22633 enclosing object.
22634 (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
22635 structures are initialized after all discriminants are set so that
22636 they can be accessed even when their offset is dynamic.
22637
226382005-11-14 Robert Dewar <dewar@adacore.com>
22639 Hristian Kirtchev <kirtchev@adacore.com>
22640
22641 * sem_attr.adb: Implement Machine_Rounding attribute
22642 (Analyze_Access_Attribute): The access attribute may appear within an
22643 aggregate that has been expanded into a loop.
22644 (Check_Task_Prefix): Add semantic check for attribute 'Callable and
22645 'Terminated whenever the prefix is of a task interface class-wide type.
22646 (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
22647 the prefix is of a task interface class-wide type.
22648
22649 * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
22650 to avoid warnings.
22651
22652 * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
22653 Remove pragma Inline for [Unaligned_]Valid.
22654 Add comments that Valid routines do not work for Vax_Float
22655
22656 * exp_attr.adb: Implement Machine_Rounding attribute
22657
22658 * snames.h: Add entry for Machine_Rounding attribute
22659
226602005-11-14 Javier Miranda <miranda@adacore.com>
22661 Robert Dewar <dewar@adacore.com>
22662 Hristian Kirtchev <kirtchev@adacore.com>
22663
22664 * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
22665 and related): For a prefix that is an explicit dereference of an
22666 access to unconstrained packed array type, annotate the dereference
22667 with an actual subtype so GIGI can make a correct size computation.
22668 (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
22669 'Unrestricted_Access, if the designated type is an interface we
22670 add a type conversion to force the displacement of the pointer
22671 to the secondary dispatch table.
22672 Use Universal_Real instead of Long_Long_Float when we need a high
22673 precision float type for the generated code (prevents gratuitous
22674 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
22675 (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
22676 'Terminated for task interface class-wide objects. Generate a call to
22677 the predefined dispatching routine used to retrieve the _task_id from
22678 a task corresponding record.
22679 (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
22680
22681 * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22682 (Check_Dispatching_Operation): Protect the frontend againts
22683 previously detected errors.
22684
22685 * Makefile.rtl: Add new instantiations of system.fat_gen
22686
9e81dbc7 22687 * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads:
5de923eb
AC
22688 Change name of instantiated package for better consistency
22689 with newly added system.fat_gen instantiations.
22690
22691 * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
22692 s-fvagfl.ads: New files.
22693
226942005-11-14 Cyrille Comar <comar@adacore.com>
22695 Thomas Quinot <quinot@adacore.com>
22696
22697 * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
22698 assignment of a value of a tagged type that has been rewritten to a
22699 block statement, it is known by construction that no checks are
22700 necessary for the statements within the block: analyze it with checks
22701 suppressed.
22702 (Expand_N_If_Statement): When killing a dead then-branch in an
22703 if-statement that has elsif_parts, recompute the Current_Value node
22704 for any entity whose value is known from the condition of the first
22705 elsif_part.
22706 (Expand_N_Return_Statement): When returning a mutable record, convert
22707 the return value into its actual subtype in order to help the backend
22708 to return the actual size instead of the maximum. This is another
22709 aftermath of not returning mutable records on the sec-stack anymore.
22710
22711 * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
22712 handling of error msg for suspicious reverse range iteration.
22713 (Check_Possible_Current_Value_Condition): Move declaration from body to
22714 spec, to allow this subprogram to be called from exp_ch5.
22715
227162005-11-14 Thomas Quinot <quinot@adacore.com>
22717
22718 * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
22719 generate a set of nested array aggregates instead of a single flat
22720 aggregate for multi-dimensional arrays.
22721
227222005-11-14 Pascal Obry <obry@adacore.com>
22723
22724 * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
22725 by spawnve is a process handle, no need to convert. Add a parameter
22726 close to control wether the process handle must be closed.
22727 (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
22728 a process handle, not need to convert.
22729 (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
22730
22731 * g-expect.adb: (Kill): Document the new close parameter.
22732 (Close): Do not release the process handle in the kill there as
22733 waitpid() is using it.
22734 (Send_Signal): Release the process handle.
22735
227362005-11-14 Robert Dewar <dewar@adacore.com>
22737
22738 * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
22739 need a high precision float type for the generated code (prevents
22740 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
22741 used).
22742
22743 * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
22744 need a high precision float type for the generated code (prevents
22745 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
22746 used).
22747 (Expand_Width_Attribute): In configurable run-time, the attribute is not
22748 allowed on non-static enumeration subtypes. Force a load error to emit
22749 the correct diagnostic.
22750
227512005-11-14 Thomas Quinot <quinot@adacore.com>
22752 Robert Dewar <dewar@adacore.com>
22753 Ed Schonberg <schonberg@adacore.com>
22754
22755 * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
22756 subtype to compute the size of the designated object at run-time,
22757 create such a subtype and store it in the Actual_Designated_Subtype
22758 attribute of the N_Free_Statement.
22759 Generate itype for classwide designated object in both cases of
22760 user-specified storage pool: specific and class-wide, not only in the
22761 specific case.
22762 Raise CE when trying to set a not null access type object to null.
22763 (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
22764 an explicit loop, because freeze nodes make its position variable.
22765
22766 * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
22767 null object.
22768
227692005-11-14 Javier Miranda <miranda@adacore.com>
22770
22771 * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
22772 Build_Stream_Procedure): Add the null-excluding attribute to the first
22773 formal.
22774 This has no semantic meaning under Ada95 mode but it is a
22775 requirement under Ada05 mode.
22776
22777 * par-ch3.adb (P_Access_Definition): Addition of warning message if
22778 the null exclusion is used under Ada95 mode
22779 (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
22780 (P_Access_Definition): Remove assertion that forbids the use of
22781 the null-exclusion feature in Ada95.
22782
227832005-11-14 Robert Dewar <dewar@adacore.com>
22784
22785 * impunit.adb: Exclude container helper units not intended for use by
22786 users.
22787
227882005-11-14 Ed Schonberg <schonberg@adacore.com>
22789
22790 * freeze.adb (Freeze_Entity): For an access formal that is an access
22791 to subprogram, freeze the anonymous subprogram type at the same time,
22792 to prevent later freezing in the wrong scope, such as the enclosing
22793 subprogram body.
22794 (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
22795 subprogram whenever available.
22796
227972005-11-14 Arnaud Charlet <charlet@adacore.com>
22798
22799 PR ada/23732
22800 * gnatvsn.ads (Library_Version): Bump to 4.1
22801
228022005-11-14 Robert Dewar <dewar@adacore.com>
22803
22804 * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
22805 Storage_Offset to avoid wrap around causing invalid results.
22806
228072005-11-14 Pascal Obry <obry@adacore.com>
22808
22809 * gnatbind.adb (Is_Cross_Compiler): New function returning True for
22810 cross-compiler.
22811 (Scan_Bind_Arg): Fail with an error message if -M option is used
22812 on a native compiler.
22813
228142005-11-14 Robert Dewar <dewar@adacore.com>
22815 Vincent Celier <celier@adacore.com>
22816
22817 * gprep.adb: Implement -C switch to scan comments
22818
22819 * scng.adb: Scan comment symbol separately if Replace_In_Comments set
22820
22821 * scans.ads: Comment updates (including new use of Tok_Comment in
22822 preprocessing)
22823
22824 * opt.ads: Add documentation for flags that are used by gprmake,
22825 currently and in the next version of gprmake.
22826 (Verbosity_Level): New variable
22827 Add Replace_In_Comments switch
22828
22829 * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
22830 and -vm.
22831 Add /REPLACE_IN_COMMENTS for gnatprep -C switch
22832
228332005-11-14 Arnaud Charlet <charlet@adacore.com>
22834
22835 * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
22836 message, friendlier.
22837
228382005-11-14 Robert Dewar <dewar@adacore.com>
22839
22840 * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
22841
228422005-11-14 Doug Rupp <rupp@adacore.com>
22843
22844 * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
22845
228462005-11-14 Robert Dewar <dewar@adacore.com>
22847
22848 * interfac.ads: Change declarations of IEEE float types so that we no
22849 longer need a separate version of this package for VMS.
22850
228512005-11-14 Ed Schonberg <schonberg@adacore.com>
22852
22853 * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
22854 internal entity created for the declaration of a child subprogram body
22855 with no spec as coming from source, to generate proper cross-reference
22856 information.
22857
228582005-11-14 Vincent Celier <celier@adacore.com>
22859
22860 * make.adb (Compile_Sources): Change verbose message to minimum
22861 verbosity level High for "is in an Ada library", "is a read-only
22862 library" and "is an internal library",
22863 (Create_Binder_Mapping_File): Path name of ALI file for library project
22864 must include the library directory, not the object directory.
22865 (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
22866 for new switches -vl, -vm and -vh.
22867 (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
22868 (Check): Use minimum verbosity Medium for some Verbose_Msg calls
22869 (Compile_Sources): Do not attempt to compile if an ALI file is missing
22870 in a project that is externally built.
22871 (Compute_All_Imported_Projects): New procedure
22872 (Gnatmake): Check if importing libraries should be regenerated because
22873 at least an imported library is more recent.
22874 (Initialize): For each project compute the list of the projects it
22875 imports directly or indirectly.
22876 (Add_Library_Search_Dir): New procedure, used in place of
22877 Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
22878 put in the search paths.
22879 (Add_Source_Search_Dir): New procedure, used in place of
22880 Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
22881 put in the search paths.
22882 (Mark_Directory): Resolve the absolute path the directory before marking
22883 it.
22884
22885 * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
22886 call to new procedure Bad_Switch. Call Scan_Pos with new parameter
22887 Switch. Do not handle any exception.
22888 (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
22889 so that the switch is recognized as valid.
22890 (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
22891
228922005-11-14 GNAT Script <nobody@adacore.com>
22893
22894 * Make-lang.in: Makefile automatically updated
22895
228962005-11-14 Pascal Obry <obry@adacore.com>
22897
22898 * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
22899 used.
22900 (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
22901 In both cases the last argument was dropped.
22902
229032005-11-14 Eric Botcazou <ebotcazou@adacore.com>
22904
22905 * namet.h: (Column_Numbe): New type.
22906 (Get_Column_Number): Define to sinput__get_column_number.
22907 (Instantiation): Define to sinput__instantiation.
22908 (Get_Column_Number): Declare.
22909 (Instantiation): Likewise.
22910
229112005-11-14 Robert Dewar <dewar@adacore.com>
22912
22913 * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
22914 syntax, which could cause compiler hangs.
22915
229162005-11-14 Vincent Celier <celier@adacore.com>
22917
22918 * prj-ext.adb: Take into account new environment variable
22919 GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
22920 are defined.
22921 (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
22922 normalize its path name, making it absolute and resolving symbolic
22923 links, and replace the original if resolved path is different.
22924
229252005-11-14 Vincent Celier <celier@adacore.com>
22926
22927 * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
22928 into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
22929
229302005-11-14 Emmanuel Briot <briot@adacore.com>
22931
22932 * prj-pp.adb (Print): Do not output the with statement if the
22933 associated name is empty, which happens for virtual extending projects.
22934 (Print): Preserve the "extends all" attribute when printing the project.
22935
22936 * prj-tree.ads (String_Value_Of): Add comment about returned value for
22937 a virtual extending project.
22938
229392005-11-14 Ed Schonberg <schonberg@adacore.com>
22940
22941 * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
22942 rhs of an assignment even if the type is unconstrained, when the
22943 context is non-expanding.
22944 In an inlined body, if the context type is private,
22945 resolve with its full view, which must be a composite type.
22946
229472005-11-14 Robert Dewar <dewar@adacore.com>
22948 Ed Schonberg <schonberg@adacore.com>
22949
22950 * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22951 Do not give obsolescent warning on with of subprogram (since we
22952 diagnose calls)
22953 (Analyze_With_Clause): Add test for obsolescent package
22954 (Install_Context_Clauses): If the unit is the body of a child unit, do
22955 not install twice the private declarations of the parents, to prevent
22956 circular lists of Use_Clauses in a parent.
22957 (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
22958 compiling body of child unit.
22959 Use new class N_Subprogram_Instantiation
22960 (Expand_With_Clause): If this is a private with_clause for a child unit,
22961 appearing in the context of a package declaration, then the implicit
22962 with_clauses generated for parent units are private as well.
22963 (License_Check): Do not generate message if with'ed unit is internal
22964
229652005-11-14 Gary Dismukes <dismukes@adacore.com>
22966 Ed Schonberg <schonberg@adacore.com>
22967 Thomas Quinot <quinot@adacore.com>
22968
22969 * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
22970 names are internal, because they will not have a corresponding partner
22971 in the actual package.
22972 (Analyze_Formal_Package): Move the setting of the formal package spec's
22973 Generic_Parent field so that it occurs prior to analyzing the package,
22974 to allow proper operation of Install_Parent_Private_Declarations.
22975 (Analyze_Package_Instantiation): Set the instantiated package entity's
22976 Package_Instantiation field.
22977 (Get_Package_Instantiation_Node): Move declaration to package spec.
22978 Retrieve the N_Package_Instantiation node when the Package_Instantiation
22979 field is present.
22980 (Check_Generic_Child_Unit): Within an inlined call, the only possible
22981 instantiation is Unchecked_Conversion, for which no parents are needed.
22982 (Inline_Instance_Body): Deinstall and record the use_clauses for all
22983 parent scopes of a scope being removed prior to inlining an instance
22984 body.
22985 (Analyze_Package_Instantiation): Do not perform front-end inlining when
22986 the current context is itself an instance within a non-instance child
22987 unit, to prevent scope stack errors.
22988 (Save_References): If the node is an aggregate that is an actual in a
22989 call, rewrite as a qualified expression to preserve some type
22990 information, to resolve possible ambiguities in the instance.
22991 (Instance_Parent_Unit): New global variable to record the ultimate
22992 parent unit associated with a generic child unit instance (associated
22993 with the existing Parent_Unit_Visible flag).
22994 (type Instance_Env): New component Instance_Parent_Unit for stacking
22995 parents recorded in the global Instance_Parent_Unit.
22996 (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
22997 stack.
22998 (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
22999 it's not a top-level unit, and only do this if Instance_Parent_Unit is
23000 not already set. Replace test of Is_Child_Unit with test of parent's
23001 scope against package Standard. Add comments and a ??? comment.
23002 (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
23003 on a child instance parent to test that the parent equals
23004 Instance_Parent rather than simply checking that the unit is not a
23005 child unit.
23006 (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
23007 (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
23008 a formal interface are ancestors of the corresponding actual.
23009 (Validate_Formal_Interface_Type): Additional legality checks.
23010 (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
23011 interface types with ancestors.
23012 (Analyze_Formal_Package): If formal is a renaming, use renamed entity
23013 to diagnose attempts to use generic within its own declaration.
23014
230152005-11-14 Ed Schonberg <schonberg@adacore.com>
23016 Javier Miranda <miranda@adacore.com>
23017
23018 * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
23019 discriminant.
23020 (Build_Private_Derived_Type): The entity of the created full view of the
23021 derived type does not come from source. If after installing the private
23022 declarations of the parent scope the parent is still private, use its
23023 full view to construct the full declaration of the derived type.
23024 (Build_Derived_Record_Type): Relax the condition that controls the
23025 execution of the check that verifies that the partial view and
23026 the full view agree in the set of implemented interfaces. In
23027 addition, this test now only takes into account the progenitors.
23028 (Derive_Interface_Subprograms): No need to derive subprograms
23029 of ancestors that are interfaces.
23030 (Derive_Subprograms): Remove formal No_Predefined_Prims and the
23031 associated code.
23032 Change name Is_Package to Is_Package_Or_Generic_Package
23033 (Complete_Subprograms_Derivation): Handle the case in which the full
23034 view is a transitive derivation of the ancestor of the partial view.
23035 (Process_Full_View): Rename local subprogram Find_Interface_In_
23036 Descendant to Find_Ancestor_Interface to leave the code more clear.
23037 Remove wrong code that avoids the generation of an error message
23038 when the immediate ancestor of the partial view is an interface.
23039 In addition some minor reorganization of the code has been done to
23040 leave it more clear.
23041 (Analyze_Type_Declaration): If type has previous incomplete tagged
23042 partial view, inherit properly its primitive operations.
23043 (Collect_Interfaces): Make public, for analysis of formal
23044 interfaces.
23045 (Analyze_Interface_Declaration): New procedure for use for regular and
23046 formal interface declarations.
23047 (Build_Derived_Record_Type): Add support for private types to the code
23048 that checks if a tagged type implements abstract interfaces.
23049 (Check_Aliased_Component_Type): The test applies in the spec of an
23050 instance as well.
23051 (Access_Type_Declaration): Clean up declaration of malformed type
23052 declared as an access to its own classwide type, to prevent cascaded
23053 crash.
23054 (Collect_Interfaces): For private extensions and for derived task types
23055 and derived protected types, the parent may be an interface that must
23056 be included in the interface list.
23057 (Access_Definition): If the designated type is an interface that may
23058 contain tasks, create Master_Id for it before analyzing the expression
23059 of the declaration, which may be an allocator.
23060 (Record_Type_Declaration): Set properly the interface kind, for use
23061 in allocators, the creation of master id's for task interfaces, etc.
23062
230632005-11-14 Javier Miranda <miranda@adacore.com>
23064 Ed Schonberg <schonberg@adacore.com>
23065
23066 * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
23067 omitted in case of stream attribute subprograms.
23068 (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
23069 appear immediately after a subprogram body, when there is no previous
23070 subprogram declaration.
23071 Change name Is_Package to Is_Package_Or_Generic_Package
23072 (Process_Formals): A non null qualifier on a non null named access
23073 type is not an error, and is a warning only if Redundant_Constructs
23074 are flagged.
23075
230762005-11-14 Gary Dismukes <dismukes@adacore.com>
23077 Ed Schonberg <schonberg@adacore.com>
23078
23079 * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
23080 nested within Analyze_Package_Specification to install the private
23081 declarations and use clauses within each of the parent units of a
23082 package instance of a generic child package.
23083 (Analyze_Package_Specification): When entering a private part of a
23084 package associated with a generic instance or formal package, the
23085 private declarations of the parent must be installed (by calling new
23086 procedure Install_Parent_Private_Declarations).
23087 Change name Is_Package to Is_Package_Or_Generic_Package
23088 (Preserve_Full_Attributes): For a synchronized type, the corresponding
23089 record is absent in a generic context, which does not indicate a
23090 compiler error.
23091
230922005-11-14 Ed Schonberg <schonberg@adacore.com>
23093
23094 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
23095 not try to rewrite a renamed stream attribute, because the operations
23096 on the type may not have been generated.
23097 Handle properly a renaming_as_body generated for a stream operation
23098 whose default is abstract because the object type itself is abstract.
23099 (Find_Type): If the type is incomplete and appears as the prefix of a
23100 'Class reference, it is tagged, and its list of primitive operations
23101 must be initialized properly.
23102 (Chain_Use_Clauses): When chaining the use clauses that appear in the
23103 private declaration of a parent unit, prior to compiling the private
23104 part of a child unit, find on the scope stack the proper parent entity
23105 on which to link the use clause.
23106 (Note_Redundant_Use): Emit a warning when a redundant use clause is
23107 detected.
23108 (Analyze_Object_Renaming): An attribute reference is not a legal object
23109 if it is not a function call.
23110
231112005-11-14 Robert Dewar <dewar@adacore.com>
23112 Ed Schonberg <schonberg@adacore.com>
23113
23114 * sem_eval.adb: Implement d.f flag
23115 (Subtype_Statically_Match): A generic actual type has unknown
23116 discriminants when the corresponding actual has a similar partial view.
23117 If the routine is called to validate the signature of an inherited
23118 operation in a child instance, the generic actual matches the full view,
23119
231202005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
23121 Ed Schonberg <schonberg@adacore.com>
23122 Robert Dewar <dewar@adacore.com>
23123 Thomas Quinot <quinot@adacore.com>
23124
23125 * sem_res.adb (Resolve_Call): Provide a better error message whenever
23126 a procedure call is used as a select statement trigger and is not an
23127 entry renaming or a primitive of a limited interface.
23128 (Valid_Conversion): If the operand has a single interpretation do not
23129 remove address operations.
23130 (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
23131 statement to inhibit warning.
23132 (Resolve_Unary_Op): Do not produce a warning when
23133 processing an expression of the form -(A mod B)
23134 Use Universal_Real instead of Long_Long_Float when we need a high
23135 precision float type for the generated code (prevents gratuitous
23136 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
23137 (Resolve_Concatenation_Arg): Improve error message when argument is an
23138 ambiguous call to a function that returns an array.
23139 (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
23140 there is an implicit operator in the given scope if we are within an
23141 instance: legality check has been performed on the generic.
23142 (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
23143 after resolving operand, to avoid false warnings on overloaded calls.
23144
231452005-11-14 Ed Schonberg <schonberg@adacore.com>
23146 Javier Miranda <miranda@adacore.com>
23147
23148 PR ada/15604
5de923eb
AC
23149 * sem_type.adb (Covers): In an inlined body, a composite type matches
23150 a private type whose full view is a composite type.
23151 (Interface_Present_In_Ancestor): Protect the frontend against
23152 previously detected errors to ensure that its compilation
23153 with assertions enabled gives the same output that its
23154 compilation without assertions.
23155 (Interface_Present_In_Ancestor): Add support for private types.
23156 Change name In_Actual to In_Generic_Actual (clean up)
23157 (Disambiguate): New predicate In_Actual, to recognize expressions that
23158 appear in the renaming declaration generated for generic actuals, and
23159 which must be resolved in the outer context.
23160
231612005-11-14 Robert Dewar <dewar@adacore.com>
23162 Thomas Quinot <quinot@adacore.com>
23163 Hristian Kirtchev <kirtchev@adacore.com>
23164 Ed Schonberg <schonberg@adacore.com>
23165
23166 * sem_util.ads, sem_util.adb: Change name Is_Package to
23167 Is_Package_Or_Generic_Package.
23168 (Check_Obsolescent): New procedure.
23169 (Set_Is_Public): Remove obsolete junk test.
23170 (Set_Public_Status): Do not set Is_Public on an object whose declaration
23171 occurs within a handled_sequence_of_statemets.
23172 (Is_Controlling_Limited_Procedure): Factor some of the logic, account
23173 for a parameterless procedure.
23174 (Enter_Name): Recognize renaming declarations created for private
23175 component of a protected type within protected operations, so that
23176 the source name of the component can be used in the debugger.
23177
231782005-11-14 Ed Schonberg <schonberg@adacore.com>
23179 Robert Dewar <dewar@adacore.com>
23180
23181 * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
23182 of a generic subprogram are not visible outside the body.
23183 (Set_Warning_Switch): New procedure (code to set warning mode moved
23184 here from Switch.C so that it can be shared by pragma processing.
23185 (Check_References): Special case warning for non-modified non-imported
23186 volatile objects.
23187 * par-prag.adb: Modify processing of pragma Warnings to accomodate new
23188 form with a string literal argument
23189
231902005-11-14 Javier Miranda <miranda@adacore.com>
23191
23192 * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
23193 anonymous access.
23194 (Write): Addition of "not null" to the anonymous access.
23195 (Read): Addition of "not null" to the anonymous access.
23196 (Write): Addition of "not null" to the anonymous access.
23197
23198 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
23199 I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
23200 I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
23201 (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
23202 W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
23203 "not null" to the anonymous access.
23204
232052005-11-14 Robert Dewar <dewar@adacore.com>
23206
23207 * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
23208 offset values
23209
232102005-11-14 Vincent Celier <celier@adacore.com>
23211
23212 * switch.adb (Bad_Switch): New procedure
23213 (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
23214 message when in error.
23215
23216 * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
23217 Too_Many_Output_Files): Remove declarations, no longer used.
23218 (Scan_Nat): New parameter Switch
23219 (Scan_Pos): Ditto
23220 (Bad_Switch): New procedure
23221
23222 * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
23223 with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
23224 new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
23225 to Osint.Fail. Do not handle any exception.
23226
232272005-11-14 Vincent Celier <celier@adacore.com>
23228
23229 * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
23230 designates a non existent directory.
23231
232322005-11-14 Robert Dewar <dewar@adacore.com>
23233
23234 * xgnatugn.adb: Replace invalid membership test by 'Valid
23235
232362005-11-14 Vincent Celier <celier@adacore.com>
23237
23238 * makegpr.adb (Gprmake): Do not attempt to build the global archive if
23239 there is no object directory.
23240
232412005-11-14 Robert Dewar <dewar@adacore.com>
23242
23243 * usage.adb: Minor adjustment to output format, use nn instead of nnn
23244 (so that -gnateInnn does not run into next column)
23245
232462005-11-14 Ed Falis <falis@adacore.com>
23247
23248 * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
23249 "constrained"
23250
232512005-11-14 Cyrille Comar <comar@adacore.com>
23252
23253 * s-chepoo.ads: Add comments on Dereference.
23254 Remove unnecessary inherited abstract primitives.
23255 Cosmetic cleanup.
23256
232572005-11-14 Robert Dewar <dewar@adacore.com>
23258
23259 * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
23260 node parameter, not needed, since it is available as Declaration_Node.
23261
232622005-11-14 Geert Bosch <bosch@adacore.com>
23263
23264 * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
23265 grammatically correct.
23266
232672005-11-14 Vincent Celier <celier@adacore.com>
23268
23269 * s-fileio.ads: Correct spelling error in comment
23270
232712005-11-14 Cyrille Comar <comar@adacore.com>
23272 Robert Dewar <dewar@adacore.com>
23273 Vincent Celier <celier@adacore.com>
23274 Ben Brosgol <brosgol@adacore.com>
23275 Jose Ruiz <ruiz@adacore.com>
23276 Pascal Obry <obry@adacore.com>
23277
9e81dbc7 23278 * gnat_ugn.texi:
5de923eb
AC
23279 Document that -fstack-check is needed for strict compliance with the
23280 Ada 95 Reference Manual.
23281 Correct reference to VAX systems to meet HP guidelines
23282 Add documentation for new gnatmake switches -vl, -vm and -vh
23283 Replace DEC Ada by HP Ada
23284 Replace DIGITAL by HP
23285 Remove empty section on tools in compatibility section
23286 Clarify the Windows convention semantics.
23287 Document the Win32 calling convention.
23288 The Stdcall, Win32 and DLL convention are synonyms.
23289 Add a note in -gnatR description about zero size record components
23290 Note on new >= and <= warnings for -gnatwc
23291 Document that equal sign after -gnatm is optional.
23292 Note that strip is working fine on DLL built with a Library
23293 Project. The restriction apply only to DLL built with gnatdll.
23294 Update section about the way to debug a DLL.
23295 Update information about the DLL convention.
23296 Document -C switch for gnatprep
23297 Document new attribute Library_ALI_Dir
23298 Update elaboration doc to include implicit Elaborate pragmas now
23299 generated for subprogram instantiations.
23300 Document limitation on executable names that include spaces for --GCC,
23301 --GNATBIND, and --GNATLINK switches.
23302 Document that -w causes -gnatws to be added at start of gcc switches
23303
23304 * gnat_rm.texi: Document that -mieee is needed for generating infinite
23305 and NaN values in case of overflow on machines that are not fully
23306 compliant with the IEEE floating-point standard.
23307 Create a section describing the set of compiler options needed for
23308 strict compliance with the Ada 95 Reference Manual.
23309 Add documentation for pragma Obsolescent applied to a package
23310 Clarify potential issues of mixed language programs related to the
23311 I/O buffering enabling in the elaboration of the GNAT runtime.
23312 Add extra documentation for pragma Restrictions (No_Elaboration_Code)
23313 This documentation only patch adds extra documentsion for pragma
23314 Restrictions (No_Elaboration_Code), explaining why it is not possible
23315 to document this restriction in terms of allowed source constructs.
23316 Document string literal form of pragma Warnings
23317 Document new attribute Library_ALI_Dir
23318 Add documentation on stable attributes in project files that was missing
23319
23320 * gnat-style.texi: Indicate that paragraphs within a single comment
23321 should be separated by empty comment lines
23322
23323 * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
23324 /05 respectively)
23325
23326 * bindusg.adb: Minor cleanup, put -m before -M for consistency
23327
233282005-11-14 Robert Dewar <dewar@adacore.com>
23329
23330 * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
23331 a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
23332 a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
23333 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
23334 a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
23335 a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
23336 a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
23337 a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
23338 a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
23339 a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
23340 a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
23341 a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
23342 g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
23343 a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
23344 a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
23345 system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
23346 g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
23347 g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
23348 a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
23349 a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
23350 a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
23351 a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
23352 a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
23353 a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
23354 system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
23355 system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
23356 a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
23357 a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
23358 a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
23359 system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
23360 system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
23361 s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
23362 system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
23363 system-interix.ads, system-solaris-sparc.ads,
23364 system-solaris-sparcv9.ads, s-inmaop-vms.adb,
23365 s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
23366 system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
23367 s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
23368 a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
23369 a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
23370 a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
23371 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
23372 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
23373 a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
23374 a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
23375 a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
23376 a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
23377 a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
23378 a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
23379 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
23380 a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
23381 a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
23382 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
23383 a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
23384 a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
23385 a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
23386 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
23387 a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
23388 a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
23389 a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
23390 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
23391 a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
23392 a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
23393 a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
23394 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
23395 a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
23396 a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
23397 a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
23398 bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
23399 csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
23400 errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
23401 errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
23402 exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
23403 exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
23404 freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
23405 g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
23406 g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
23407 g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
23408 g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
23409 g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
23410 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
23411 g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
23412 g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
23413 gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
23414 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
23415 g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
23416 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
23417 g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
23418 g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
23419 g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
23420 layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
23421 mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
23422 mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
23423 nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
23424 osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
23425 par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
23426 par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
23427 par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
23428 prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
23429 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
23430 prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
23431 prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
23432 sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
23433 sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
23434 sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
23435 sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
23436 s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
23437 sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
23438 s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
23439 s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
23440 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
23441 s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
23442 s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
23443 s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
23444 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
23445 s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
23446 s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
23447 s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
23448 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
23449 s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
23450 s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
23451 s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
23452 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
23453 s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
23454 s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
23455 s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
23456 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
23457 s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
23458 s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
23459 s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
23460 s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
23461 s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
23462 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
23463 s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
23464 styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
23465 s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
23466 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
23467 s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
23468 s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
23469 s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
23470 s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
23471 s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
23472 s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
23473 s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
23474 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
23475 table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
23476 tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
23477 ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
23478 usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
23479 xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
23480 xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
23481 a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
23482 a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
23483 a-numaux-darwin.ads, a-numaux-darwin.adb,
23484 a-swuwha.ads, a-stunha.ads: Minor reformatting
23485
e0ac6309
RD
234862005-11-14 Robert Dewar <dewar@adacore.com>
23487
23488 PR ada/18434
23489 * osint-m.adb: Add pragma Elaborate_All for Osint
23490
f45ddfe0
EB
234912005-11-10 Eric Botcazou <ebotcazou@adacore.com>
23492
23493 PR ada/23995
23494 * trans.c (call_to_gnu): Restore statement lost in translation.
23495
13bb031a
EB
234962005-11-08 Eric Botcazou <ebotcazou@adacore.com>
23497
23498 * init.c: Use the Linux-specific section for the IA-64/Linux target.
23499 (__gnat_adjust_context_for_raise): Add conditional code so that the
23500 IA-64 is also supported.
23501
72098128
JW
235022005-11-03 James E Wilson <wilson@specifix.com>
23503
23504 PR ada/23427
13bb031a
EB
23505 * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
23506 TREE_OVERFLOW check.
72098128 23507
8fafe21d
OH
235082005-09-21 Olivier Hainque <hainque@adacore.com>
23509
23510 PR ada/22418
23511 * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
23512 as we create them to store a size in bits.
23513
552725e3
EB
235142005-10-21 Eric Botcazou <ebotcazou@adacore.com>
23515
23516 PR ada/21937
23517 PR ada/22328
23518 PR ada/22381
23519 PR ada/22383
23520 PR ada/22419
23521 PR ada/22420
23522 * utils2.c (build_return_expr): New helper function.
23523 * gigi.h (build_return_expr): Declare it.
23524 * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
23525 of manually building the RETURN_EXPR tree.
23526 (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
23527 (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
8fafe21d 23528 build_binary_op for the "target pointer" case. Use build_return_expr
552725e3
EB
23529 instead of manually building the RETURN_EXPR tree.
23530
9e94c78f 235312005-09-16 Laurent Guerby <laurent@guerby.net>
ccdeca37
LG
23532
23533 PR ada/23788
23534 * s-tpinop.ads: Make this unit Preelaborate.
23535
da8f5fd9
AJ
235362005-09-16 Andreas Jaeger <aj@suse.de>
23537
23538 * socket.c: Add string.h for memcpy.
23539
98b40956
AC
235402005-09-05 Arnaud Charlet <charlet@adacore.com>
23541
23542 * dec-io.ads, dec-io.adb: Removed, no longer used.
23543
235442005-09-01 Arnaud Charlet <charlet@adacore.com>
23545
23546 * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
23547
23548 * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
23549 s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
23550 s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
23551 s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
23552 dependent units are Preelaborate.
23553 (Initialize): Call Interrupt_Managemeent.Initialize and
23554 OS_Primitives.Initialize to ensure proper initialization of this unit.
23555 Remove use of System.Soft_Links
23556 Make this unit Preelaborate.
23557
23558 * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
23559 s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
23560 s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
23561 s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
23562 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
23563 s-tratas.ads, s-tasinf.ads: Minor reformatting.
23564 Add pragma Preelaborate, since these packages are suitable for this
23565 categorization.
23566 Update comments.
23567
23568 * s-traent-vms.ads, s-intman-dummy.adb,
23569 s-taprop-dummy.adb: Make this unit Preelaborate.
23570
23571 * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
da8f5fd9 23572 s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
98b40956
AC
23573 s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
23574 s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
23575 s-intman-solaris.adb, s-intman-irix-athread.adb,
23576 s-intman-irix.adb: Mark this unit Preelaborate.
23577 (Initialize): New procedure.
23578 Update comments.
23579
23580 * s-taspri-linux.ads: Removed.
23581
23582 * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
23583 as done by other implementations (e.g. posix).
23584
23585 * s-taprop.ads (Timed_Delay): Update spec since the caller now is
23586 responsible for deferring abort.
23587 Mark this unit Preelaborate.
23588
23589 * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
23590 proper initialization of the tasking run-time.
23591
23592 * s-tasdeb.ads: Mark this unit Preelaborate.
23593 (Known_Tasks): Add explicit default value to avoid elaboration code.
23594
23595 * s-inmaop-vms.adb (Elaboration code): Add call to
23596 Interrupt_Management.Initialize since the elaboration code depends on
23597 proper initialization of this package.
23598
23599 * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
23600 s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
23601 s-osprim-posix.adb: Make this unit Preelaborate.
23602
23603 * a-calend.adb: Add call to OS_Primitives.Initialize
23604
23605 * a-elchha.adb: Update use of Except.Id.Full_Name.
23606 Minor reformatting.
23607 Remove use of Ada.Exceptions.Traceback when possible, cleaner.
23608
23609 * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
23610 Move with clauses outside Warnings Off now that dependent units are
23611 Preelaborate.
23612 Use raise xxx with "..."; Ada 2005 form.
23613
da8f5fd9 23614 * a-taside.ads, a-taside.adb:
98b40956
AC
23615 Remove some dependencies, to make it easier to make this unit truly
23616 Preelaborate.
23617 Rewrite some code to be conformant with Preelaborate rules.
23618
23619 * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
23620 marked Preelaborate in the future.
23621
23622 * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
23623 these units Preelaborate.
23624
23625 * s-exctab.adb: Update use of Except.Id.Full_Name.
23626
23627 * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
23628 (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
23629 Set_Exc_Stack_Addr): Removed, no longer used.
23630 Remove reference to *Machine_State_Addr*, no longer needed.
23631
23632 * s-stalib.ads: Mark this unit as Preelaborate[_05].
23633 (Exception_Data): Full_Name is now a System.Address so that this unit
23634 can be made Preelaborate.
23635 Clean up/simplify code thanks to Full_Name being a System.Address.
23636 Remove obsolete pragma Suppress (All_Checks), no longer needed.
23637
da8f5fd9 23638 * s-taskin.ads, s-taskin.adb:
98b40956
AC
23639 Move with clauses outside Warnings Off now that dependent units are
23640 Preelaborate.
23641 Make this unit Preelaborate.
23642 (Initialize): New proceduure, replace elaboration code and makes the
23643 set up of the tasking run-time cleaner.
23644 (Detect_Blocking): Now a function instead of a deferred boolean, to
23645 obey Preelaborate rules.
23646
23647 * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
23648 soft links, no longer used.
23649
23650 * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
23651 packages are suitable for this categorization.
23652
23653 * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
23654 since we compile run-time sources in Ada 2005 mode.
23655 (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
23656 avoid having s-taprop*.adb depend on s-soflin and to avoid code
23657 duplication.
23658 Remove reference to *Machine_State_Addr*, no longer needed.
23659
236602005-09-01 Arnaud Charlet <charlet@adacore.com>
23661
23662 * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
23663 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
23664 Remove reference to System.Exceptions.
23665
23666 * s-mastop-x86.adb: Removed, no longer used.
23667
23668 * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
23669
23670 * a-excach.adb: Minor reformatting.
23671
23672 * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
23673 instead fix new warnings that were hidden by this change.
23674 (AAA, ZZZ): Removed, replaced by...
23675 (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
23676 are used instead of constants, to help make Ada.Exception truly
23677 preelaborate.
23678 (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
23679 Raise_Storage_Error): File is now a System.Address, to simplify code.
23680 (Elab code): Removed, no longer used.
23681 (Null_Occurrence): Remove Warnings Off and make this construct
23682 preelaborate.
23683 Remove code related to front-end zero cost exception handling, since
23684 it is no longer used.
23685 Remove -gnatL/-gnatZ switches.
23686
23687 * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
23688 Update use of Except.Msg.
23689
23690 * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
23691 freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
23692 to front-end zero cost exception handling, since it is no longer used.
23693 Remove -gnatL/-gnatZ switches.
23694
23695 * lib-writ.ads: Minor reformatting
23696 Remove doc of UX
23697
23698 * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
23699
23700 * Make-lang.in: Remove references to s-except.ads
23701
23702 * s-except.ads: Removed, no longer used.
23703
da8f5fd9 23704 * s-mastop.ads, s-mastop.adb:
98b40956
AC
23705 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
23706 Remove reference to System.Exceptions.
23707
23708 * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
23709 switch-b.adb: Remove code related to front-end zero cost exception
23710 handling, since it is no longer used.
23711 Remove -gnatL/-gnatZ switches.
23712
237132005-09-01 Robert Dewar <dewar@adacore.com>
23714 Gary Dismukes <dismukes@adacore.com>
23715 Javier Miranda <miranda@adacore.com>
23716
23717 * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
23718 type by valid test and generate warning.
23719 (Tagged_Membership): Generate call to the run-time
23720 subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
23721 Change formal name Subtype_Mark to Result_Definition in several calls to
23722 Make_Function_Specification.
23723 (Expand_Allocator_Expression): Add tests for suppression of the AI-344
23724 check for proper accessibility of the operand of a class-wide allocator.
23725 The check can be left out if checks are suppressed or if the expression
23726 has a specific tagged type whose level is known to be safe.
23727
23728 * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
23729 generates the run-time check associated with null-excluding entities.
23730 (Expand_N_Return_Statement): Add tests to determine if the accessibility
23731 check on the level of the return expression of a class-wide function
23732 can be elided. The check usually isn't needed if the expression has a
23733 specific type (unless it's a conversion or a formal parameter). Also
23734 add a test for whether accessibility checks are suppressed. Augment
23735 the comments to describe the conditions for performing the check.
23736
237372005-09-01 Hristian Kirtchev <kirtchev@adacore.com>
23738 Javier Miranda <miranda@adacore.com>
23739 Gary Dismukes <dismukes@adacore.com>
23740 Ed Schonberg <schonberg@adacore.com>
23741
23742 * a-tags.adb (IW_Membership): Give support to
23743 "Iface_CW_Typ in T'Class". For this purpose the functionality of this
23744 subprogram has been extended to look for the tag in the ancestors tag
23745 table.
23746 Update the structure of the GNAT Dispatch Table to reflect the
23747 additional two tables used in dispatching selects.
23748 Introduce appropriate array types and record components in
23749 Type_Specific_Data to reflect the two tables.
23750 (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
23751 the TSD of a tag, indexed by position.
23752 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
23753 operation kind in the TSD of a tag, indexed by position.
23754
23755 * a-tags.ads: Introduce an enumeration type to capture different
23756 primitive operation kinds. Define a constant reflecting the number of
23757 predefined primitive operations.
23758 (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
23759 of an entry wrapper.
23760 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
23761 callable entity of a primitive operation.
23762
23763 * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
23764 primitive operations used in dispatching selects for limited
23765 interfaces, limited tagged, task and protected types what implement a
23766 limited interface.
23767 (Freeze_Type): Generate the bodies of the primitive operations used in
23768 dispatching selects for limited tagged, task and protected types that
23769 implement a limited interface. Generate statements to populate the two
23770 auxiliary tables used for dispatching in select statements.
23771 (Freeze_Record_Type): Add call to initialize the dispatch table entries
23772 associated with predefined interface primitive operations.
23773 (Build_Dcheck_Function): Change Set_Subtype_Mark to
23774 Set_Result_Definition.
23775 (Build_Variant_Record_Equality): Change Subtype_Mark to
23776 Result_Definition.
23777 (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
23778 (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
23779 (Build_Assignment): Simplify the code that adds the run-time-check.
23780 (Expand_N_Object_Declaration): Code cleanup.
23781
23782 * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
23783 entries when there is a protected type that implements a limited
23784 interface.
23785
23786 * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
23787 common routines used in expansion of dispatching selects.
23788 (Add_Private_Declarations): Select the appropriate protection type when
23789 there is a protected type that implements a limited interface.
23790 (Build_Parameter_Block): Generate a wrapped parameter block.
23791 (Build_Protected_Subprogram_Body): Select the appropriate type for
23792 locking entries when there is a protected type that implements a
23793 limited interface.
23794 (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
23795 classified as entry wrappers.
23796 (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
23797 asynchronous selects.
23798 (Expand_N_Conditional_Entry_Call): Add support for expansion of
23799 dispatching conditional selects.
23800 (Expand_N_Protected_Type_Declaration): Select the appropriate type for
23801 protection when there is a protected type that implements limited
23802 interfaces.
23803 (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
23804 timed selects.
23805 (Extract_Dispatching_Call): Extract the entity of the name of a
23806 dispatching call, the object parameter, actual parameters and
23807 corresponding formals.
23808 (Make_Initialize_Protection): Correct logic of protection initialization
23809 when there is a protected type that implements a limited interface.
23810 (Parameter_Block_Pack): Populate a wrapped parameter block with the
23811 values of actual parameters.
23812 (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
23813 block and assign them to the original actual parameters.
23814
23815 * exp_ch9.ads (Subprogram_Protection_Mode): New type.
23816 (Build_Protected_Sub_Specification): Change the type and name of the
23817 last formal to account for the increased variety of protection modes.
23818
23819 * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
23820 entities. Used to save the value of the Is_Hidden attribute when the
23821 limited-view is installed.
23822 (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
23823 the attribute of procedures classified as entry wrappers.
23824 (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
23825 entity of a primitive wrapper.
23826 (Write_Entity_Flags): Output the name and value of the
23827 Is_Primitive_Wrapper attribute.
23828 (Write_Field27_Name): Output the name and entity of the field Wrapped_
23829 Entity.
23830 (Underlying_Type): If we have an incomplete entity that comes from
23831 the limited view then we return the Underlying_Type of its non-limited
23832 view if it is already available.
23833 (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
23834 including operators.
23835 (Write_Field26_Name): Add entry for Overridden_Operation
23836 (Overridden_Operation): New attribute of functions and procedures.
23837
23838 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
23839 predefined position in the dispatch table for the primitive operations
23840 used in dispatching selects.
23841 (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
23842 predefined primitive operations and replace it with
23843 Default_Prim_Op_Count.
23844 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
23845 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
23846 the names of the generated primitive operations used in dispatching
23847 selects.
23848 (Init_Predefined_Interface_Primitives): No need to inherit primitives in
23849 case of abstract interface types. They will be inherit by the objects
23850 implementing the interface.
23851 (Make_DT): There is no need to inherit the dispatch table of the
23852 ancestor interface for the elaboration of abstract interface types.
23853 The dispatch table will be inherited by the object implementing the
23854 interface.
23855 (Copy_Secondary_DTs): Add documentation.
23856 (Validate_Position): Improve this static check in case of
23857 aliased subprograms because aliased subprograms must have
23858 the same position.
23859 (Init_Predefined_Interface_Primitives): New subprogram that initializes
23860 the entries associated with predefined primitives of all the secondary
23861 dispatch tables.
23862 (Build_Anonymous_Access_Type): Removed.
23863 (Expand_Interface_Actuals): With the previous cleanup there is no need
23864 to build an anonymous access type. This allows further cleanup in the
23865 code generated by the expander.
23866 (Expand_Interface_Conversion): If the actual is an access type then
23867 build an internal function to handle the displacement. If the actual
23868 is null this function returns null because no displacement is
23869 required; otherwise performs a type conversion that will be
23870 expanded in the code that returns the value of the displaced actual.
23871 (Expand_Interface_Actuals): Avoid the generation of unnecessary type
23872 conversions that have no effect in the generated code because no
23873 displacement is required. Code cleanup; use local variables to
23874 avoid repeated calls to the subprogram directly_designated_type().
23875
23876 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
23877 Classify the primitive operations used in dispatching selects as
23878 predefined.
23879 (Implements_Limited_Interface): Determine whether some type either
23880 directly implements a limited interface or extends a type that
23881 implements a limited interface.
23882 (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
23883 (Expand_Subtype_From_Expr): Do not build actual subtype if the
23884 expression is limited.
23885 (Find_Interface_Tag): Add code to handle class-wide types and
23886 entities from the limited-view.
23887
23888 * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
23889 Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
23890 POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
23891 POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
23892 Set_Prim_Op_Kind.
23893
23894 * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
23895 of procedure name or prefix that appears as a trigger in a triggering
23896 alternative.
23897
23898 * uintp.ads: Introduce constants Uint_11 and Uint_13.
23899
239002005-09-01 Arnaud Charlet <charlet@adacore.com>
23901
23902 * s-tataat.adb, a-tasatt.adb:
23903 Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
23904
23905 * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
23906 these procedures to body, and renamed Abort_Defer, Abort_Undefer.
23907 (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
23908 longer used.
23909
239102005-09-01 Arnaud Charlet <charlet@adacore.com>
23911 Jose Ruiz <ruiz@adacore.com>
23912
da8f5fd9 23913 * s-taprop-vxworks.adb:
98b40956
AC
23914 Move with clauses outside Warnings Off now that dependent units are
23915 Preelaborate.
23916 (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
23917 initialization of this unit.
23918 (Specific): Add new procedures Initialize and Delete so that this
23919 package can be used for VxWorks 5.x and 6.x
23920 (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
23921 differences between VxWorks 5.x and 6.x
23922 Minor reformatting.
23923 (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
23924 caller.
23925 Use only Preelaborate-compatible constructs.
23926
23927 * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
23928 Primitives.Operations.
23929 (Delete, Initialize): New procedures.
23930
23931 * s-osinte-vxworks.adb: Body used to handle differences between
23932 VxWorks 5.x and 6.x
23933 (kill, Set_Time_Slice, VX_FP_TASK): New functions.
23934
23935 * s-osinte-vxworks.ads: Minor reformatting.
23936 Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
23937 (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
23938 and 6.
23939 (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
23940 between Vxworks 5 and 6.
23941 (taskLock, taskUnlock): Removeed, no longer used.
23942
23943 * adaint.c: The wait.h header is not located in the sys directory on
23944 VxWorks when using RTPs.
23945 (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
23946 using RTPs.
23947 (__gnat_dup): dup is available on Vxworks when using RTPs.
23948 (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
23949
23950 * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
23951
23952 * expect.c: The wait.h header is not located in the sys directory on
23953 VxWorks when using RTPs.
23954
239552005-09-01 Thomas Quinot <quinot@adacore.com>
23956
23957 * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
23958
23959 * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
23960
23961 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
23962 g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
23963 g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
23964 g-soccon-freebsd.ads: Add new constants:
23965 IP_MULTICAST_IF
23966 SO_RCVTIMEO/SO_SNDTIMEO
23967 IOV_MAX
23968
da8f5fd9 23969 * gen-soccon.c:
98b40956
AC
23970 Move all target-specific file inclusions and macro definitions to
23971 gsocket.h, in order to ensure that any C code in socket.c will see a
23972 set of constants that is consistent with the contents of g-soccon.ads.
23973
23974 * gsocket.h: Code imported from gen-soccon.c:
23975 Move all target-specific file inclusions and macro definitions to
23976 gsocket.h, in order to ensure that any C code in socket.c will see a set
23977 of constants that is consistent with the contents of g-soccon.ads.
23978 This change also makes gen-soccon self-contained (removing dependencies
23979 upon GCC internal headers).
23980
23981 * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
23982 iovecs at a time.
23983 (To_Inet_Addr): Now a procedure instead of a function, more efficient.
23984
23985 * socket.c: Minor reformatting.
23986
239872005-09-01 Ed Schonberg <schonberg@adacore.com>
23988 Thomas Quinot <quinot@adacore.com>
23989
23990 * fname-sf.adb, mlib-tgt.ads,
23991 back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
23992 g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
23993 osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
23994 prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
23995 prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
23996 prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
23997 sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
23998 makegpr.adb: Remove redundant use_clauses.
23999
240002005-09-01 Arnaud Charlet <charlet@adacore.com>
24001
da8f5fd9
AJ
24002 * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
24003 s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
24004 s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
24005 s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
24006 s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
24007 s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
24008 s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
24009 table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
24010 s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
24011 s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
24012 a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
24013 a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
24014 a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
24015 a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
24016 system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
98b40956 24017 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
da8f5fd9
AJ
24018 s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
24019 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
24020 s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
24021 s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
24022 s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
24023 s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
24024 system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
24025 s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
24026 system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
24027 s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
24028 a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
24029 a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
98b40956
AC
24030 a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
24031 a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
da8f5fd9
AJ
24032 a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
24033 a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
24034 a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
24035 a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
24036 a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
24037 a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
24038 csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
24039 g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
24040 a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
24041 a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
24042 a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
24043 a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
24044 g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
24045 i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
24046 interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
24047 i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
24048 s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
24049 s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
24050 s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
24051 s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
24052 s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
24053 s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
24054 s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
24055 s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
24056 s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
24057 s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
24058 s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
24059 s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
24060 s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
24061 s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
24062 s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
24063 s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
24064 s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
24065 s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
24066 s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
24067 s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
24068 s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
98b40956
AC
24069 s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
24070 and always use the no parameter form for consistency.
24071
24072 * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
24073
240742005-09-01 Robert Dewar <dewar@adacore.com>
24075
24076 * binde.adb: Minor reformatting
24077 (Find_Elab_Order): Output warning if -p used with static elab order
24078
240792005-09-01 Robert Dewar <dewar@adacore.com>
24080
24081 * checks.adb (Check_Needed): New procedure, deals with removing checks
24082 based on analysis of short-circuited forms. Also generates warnings for
24083 improper use of non-short-circuited forms.
24084 Code clean ups.
24085
240862005-09-01 Robert Dewar <dewar@adacore.com>
24087
24088 * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
24089 with 'Valid tests.
24090
240912005-09-01 Robert Dewar <dewar@adacore.com>
24092
24093 * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
24094 spec.
24095 Implement new insertion char < (conditional warning)
24096 * errutil.adb, erroutc.adb: Implement new insertion char <
24097 (conditional warning).
24098 * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
24099 (Error_Msg_Warn): New variable for < insertion char.
24100 * prj-nmsc.adb: Implement new errout insertion char < (conditional
24101 warning).
24102 (Check_For_Source): Change value of Source_Id only after the current
24103 source has been dealt with.
24104
241052005-09-01 Robert Dewar <dewar@adacore.com>
24106 Doug Rupp <rupp@adacore.com>
24107
24108 * exp_attr.adb: Handle vax fpt for 'Valid attribute
24109 * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
24110 * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
24111 (Valid_D, Valid_F, Valid_G): New functions
24112
241132005-09-01 Ed Schonberg <schonberg@adacore.com>
24114 Hristian Kirtchev <kirtchev@adacore.com>
24115 Javier Miranda <miranda@adacore.com>
24116
24117 * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
24118 from object notation, the original node is unanalyzed and carries no
24119 semantic information, so that accessiblity checks must be performed on
24120 the type of the actual itself.
24121 (Expand_N_Subprogram_Declaration): Change last actual parameter for
24122 compatibility with Build_Protected_Sub_Specification.
24123 (Check_Overriding_Inherited_Interfaces): Add suport to handle
24124 overloaded primitives.
24125 (Register_Interface_DT_Entry): Use the new name of the formal
24126 the the calls to Expand_Interface_Thunk
24127
24128 * exp_dbug.ads: Augment comments on encoding of protected types to
24129 include the generation of dispatching subprograms when the type
24130 implements at least one interface.
24131
24132 * lib.ads: Extend information in Load_Stack to include whether a given
24133 load comes from a Limited_With_Clause.
24134
24135 * lib-load.adb (From_Limited_With_Chain): New predicate to determine
24136 whether a potential circularity is harmless, because it includes units
24137 loaded through a limited_with clause. Extends previous treatment which
24138 did not handle properly arbitrary combinations of limited and
24139 non-limited clauses.
24140
241412005-09-01 Nicolas Setton <setton@adacore.com>
24142
24143 * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
24144 to be encoded as typ___XBLU_lowerbound__upperbound instead of
24145 typ___XB_lowerbound__upperbound.
24146
241472005-09-01 Thomas Quinot <quinot@adacore.com>
24148
24149 * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
24150 dummy access formal for RACW/RAS TypeCode TSS.
24151 (Build_TypeCode_Call): Do not generate dummy null access actual for
24152 calls to the TypeCode TSS.
24153
241542005-09-01 Ed Schonberg <schonberg@adacore.com>
24155
24156 * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
24157 fully qualified name, to distinguish instances with the same local name.
24158
24159 * g-souinf.ads (Enclosing_Entity): Document that entity name is now
24160 fully qualified.
24161
241622005-09-01 Robert Dewar <dewar@adacore.com>
24163
24164 * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
24165 packed arrays.
24166
241672005-09-01 Jerome Lambourg <lambourg@adacore.com>
24168
24169 * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
24170 (Free): New deallocation procedure for filter elements
24171 (Close): Deallocate any existing filter for the concerned connection
24172
241732005-09-01 Laurent Pautet <pautet@adacore.com>
24174
24175 * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
24176 position set is provided, we compute one in order to reduce the maximum
24177 length of the keys. This computation first selects a character
24178 position between 1 and the minimum length of the keys in order to
24179 avoid reducing one of the keys to an empty string.
24180 (Initialize, Compute): When the ratio V to K is too low, the algorithm
24181 does not converge. The initialization procedure now comes with a
24182 maximum number of iterations such that when exceeded, an exception is
24183 raised in Compute. The user can initialize this ratio to another value
24184 and try again
24185 Reformating and updated headers.
24186
241872005-09-01 Javier Miranda <miranda@adacore.com>
24188
24189 * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
24190 that given an entity T creates and returns an Itype that duplicates the
24191 contents of T. The returned Itype has the null-exclusion
24192 attribute set to True, and its Etype attribute references T
24193 to keep the association between the two entities.
24194 Update copyright notice
24195
24196 * sem_aggr.adb (Check_Can_Never_Be_Null,
24197 Aggregate_Constraint_Checks, Resolve_Aggregate,
24198 Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
24199
24200 * sem_ch5.adb (Analyze_Assignment): Code cleanup.
24201
242022005-09-01 Gary Dismukes <dismukes@adacore.com>
24203 Robert Dewar <dewar@adacore.com>
24204 Hristian Kirtchev <kirtchev@adacore.com>
24205
24206 * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
24207 Result_Definition.
24208
24209 * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
24210 function specs.
24211 Call Set_Result_Definition instead of Set_Subtype_Mark.
24212 (P_Subprogram_Specification): Add parsing of anonymous access result
24213 plus null exclusions. Call Set_Result_Definition instead of
24214 Set_Subtype_Mark.
24215
24216 * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24217 (P_Access_Type_Definition): Add parsing for an anonymous access result
24218 subtype, plus parsing for null exclusions. Call Set_Result_Definition
24219 instead of Set_Subtype_Mark.
24220
24221 * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24222 (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
24223 (Result_Definition): New function for N_Function_Specifications.
24224 (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
24225 N_Function_Specification.
24226 (Set_Null_Exclusion_Present): Allow this flag for
24227 N_Function_Specification.
24228 (Set_Result_Definition): New procedure for N_Function_Specifications.
24229 (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
24230 and N_Function_Specification.
24231
24232 * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
24233 Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
24234 Add support for LIMITED NEW for Ada 2005 AI-419
24235 Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
24236 syntax for anonymous access results.
24237 Replace Subtype_Mark field by Result_Definition in
24238 N_Function_Specification and N_Access_Definition specs.
24239 Add Null_Exclusion_Present to spec of N_Function_Specification.
24240 (Result_Definition): New function for N_Function_Specification and
24241 N_Access_Function_Definition.
24242 (Set_Result_Definition): New procedure for N_Function_Specification and
24243 N_Access_Function_Definition.
24244
24245 * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
24246 Result_Definition for cases of N_Access_Function_Definition and
24247 N_Function_Specification.
24248 Print "not null" if Null_Exclusion_Present on N_Function_Specification.
24249
242502005-09-01 Vincent Celier <celier@adacore.com>
24251
24252 * lib-writ.adb: Update Copyright notice
24253 (Write_With_Lines): On platforms where file names are case-insensitive,
24254 record the file names in lower case.
24255 (Write_ALI): For D lines, on platforms where file names are
24256 case-insensitive, record the file names in lower case.
24257
242582005-09-01 Ed Schonberg <schonberg@adacore.com>
24259 Emmanuel Briot <briot@adacore.com>
24260
24261 * lib-xref.adb (Output_Overridden_Op): Display information on
24262 overridden operation.
24263
24264 * lib-xref.ads: Add documentation on overridden operations.
24265
24266 * ali.ads (Xref_Entity_Record): Add support for storing the overriding
24267 information.
24268
24269 * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
24270 overriding entity information.
24271
242722005-09-01 Vincent Celier <celier@adacore.com>
24273
24274 * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
24275 including those that are inherited.
24276
242772005-09-01 Robert Dewar <dewar@adacore.com>
24278
24279 * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
24280
24281 * par-prag.adb: Implement new pragma Debug_Policy
24282
24283 * sem_prag.adb Implement new pragma Debug_Policy
24284 (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
24285 Component_Size attribute specification. Give warning for ignored pragma
24286 Pack.
24287
24288 * snames.h, snames.ads, snames.adb: Introduce entries in
24289 Preset_Names for Name_Disp_Asynchronous_Select,
24290 Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
24291 Name_Disp_Timed_Select.
24292 New pragma Debug_Policy
24293
24294 * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
24295 explicitly.
24296 Switch -gnata also sets Debug_Pragmas_Enabled
24297
24298 * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
24299 handle an explicit -gnata when compiling predefined files.
24300
243012005-09-01 Vincent Celier <celier@adacore.com>
24302
24303 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
24304 directories of projects that have no Ada sources.
24305
243062005-09-01 Robert Dewar <dewar@adacore.com>
24307
24308 * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
24309 (makes a difference for wide characters)
24310
da8f5fd9 24311 * widechar.adb, widechar.ads:
98b40956
AC
24312 Add Wide_Char_Byte_Count feature to count chars vs bytes
24313
243142005-09-01 Thomas Quinot <quinot@adacore.com>
24315 Ed Schonberg <schonberg@adacore.com>
24316 Robert Dewar <dewar@adacore.com>
24317
24318 * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
24319 'Address attribute reference with an overloaded prefix, use the
24320 location of the prefix (not the location of the attribute reference) as
24321 the error location.
24322 (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
24323 a function renaming thereof, is a valid prefix for 'Size (where it is
24324 intepreted as a function call).
24325 (Statically_Denotes_Entity): New predicate to determine whether the
24326 prefix of an array attribute can be considered static.
24327
24328 PR ada/9087
24329 (Eval_Attr): Fix failure to evaluate Component_Size for
24330 unconstrained arrays (resulted in wrong value in packed case, since
24331 back end cannot handle this case)
24332
243332005-09-01 Robert Dewar <dewar@adacore.com>
24334
24335 * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
24336 error msgs for most common cases.
24337 Use new errout insertion char < (conditional warning)
24338
243392005-09-01 Javier Miranda <miranda@adacore.com>
24340 Ed Schonberg <schonberg@adacore.com>
24341
24342 * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
24343 become local to the whole package.
24344 (Install_Limited_Withed_Unit): Instead of unchaining real entities if
24345 the package was already analyzed the new algorithm "replaces" the
24346 real entities by the shadow ones. This is required to ensure that
24347 the order of these entities in the homonym chains does not change;
24348 otherwise we can have undefined references at linking time because
24349 in case of conflicts the external name of the entities will have
24350 a suffix that depends on the order of the entities in the chain.
24351 (Remove_Limited_With_Clause): Complementary code that completes the
24352 new algorithm and replaces the shadow entities by the real ones.
24353 (Install_Limited_Withed_Unit): When unchaining entities before the
24354 installation of the shadow entities, only regular entities of the
24355 public part must be taken into account. This is required to
24356 keep this routine in synch with the work done by Remove_Limited_
24357 With_Clause
24358 (Install_Limited_With_Clause): Introduce implicit limited_with_clause
24359 even if unit is analyzed, because the analysis of the unit is
24360 idempotent in any case, and the limited view of the unit may have to
24361 be installed for proper visibility.
24362 (Expand_Limited_With_Clause): Even if the unit in the implicit
24363 with_clause has been analyzed already, a limited view of the package
24364 must be built for the current context, if it does not exist yet.
24365
243662005-09-01 Ed Schonberg <schonberg@adacore.com>
24367 Javier Miranda <miranda@adacore.com>
24368 Gary Dismukes <dismukes@adacore.com>
24369
24370 * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
24371 defining entity for the instance body, make a new defining identifier
24372 rather than copying the entity of the spec, to prevent accidental
24373 sharing of the entity list.
24374 (Check_Private_View): When exchanging views of private types, build the
24375 list of exchanged views as a stack, to ensure that on exit the exchanges
24376 are undone in the proper order.
24377 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
24378 Restore the compilation environment in case of instantiation_error.
24379 (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
24380 for an anonymous access result.
24381 (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
24382 (Formal_Entity): Handle properly the case of a formal package that
24383 denotes a generic package renaming.
24384
243852005-09-01 Thomas Quinot <quinot@adacore.com>
24386
24387 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
24388 clause if the array aggregate is surrounded by parentheses.
24389
243902005-09-01 Cyrille Comar <comar@adacore.com>
24391 Gary Dismukes <dismukes@adacore.com>
24392 Ed Schonberg <schonberg@adacore.com>
24393 Javier Miranda <miranda@adacore.com>
24394
24395 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
24396 underlying type
24397 to check if a type is Constrained in cases related to code generation
24398 (rather than semantic checking) since otherwise we do not generate
24399 similar code for mutable private types depending if their
24400 discriminants are visible or not.
24401 (Check_Abstract_Overriding): Do not complain about failure to override
24402 the primitive operations used in dispatching selects since they will
24403 always be overriden at the freeze point of the type.
24404 (Access_Definition): Separate out handling for resetting the scope
24405 of an anonymous access function result type. Retrieve the scope
24406 of the associated function rather than using Current_Scope, which
24407 does not have a consistent value (depends on whether we're in the
24408 middle of analyzing formal parameters). Add ??? comment about
24409 finding a cleaner way to handle the special cases of scope setting.
24410 (Process_Incomplete_Dependents): A protected operation is never a
24411 dispatching operation (only its wrapper may be).
24412 (Build_Derived_Record_Type): In case of tagged private types that
24413 implement interfaces add derivation of predefined primitive
24414 operations.
24415 (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
24416 by two parameters that are used in case of derivation from abstract
24417 interface types: No_Predefined_Prims is used to avoid the derivation
24418 of predefined primitives from the interface, and Predefined
24419 Prims_Only is used to complete the derivation predefined primitives
24420 in case of private tagged types implementing interfaces.
24421 Fix typo in comments
24422 (Find_Interface_In_Descendant): Protect the frontend against
24423 wrong code with large circularity chains.
24424 (Is_Private_Overriding): Add support for entities overriding interface
24425 subprograms. The test failed because Entities associated with overriden
24426 interface subprograms are always marked as hidden (and used to build
24427 the secondary dispatch table); in this case the overriden entity is
24428 available through the field abstract_interface_alias (cf. override_
24429 dispatching_operation)
24430 (Access_Definition): Set the scope of the type to Current_Scope for the
24431 case of a function with an anonymous access result type.
24432 (Access_Subprogram_Declaration): Handle creation of the type entity for
24433 an access-to-function type with an anonymous access result.
24434 (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
24435 in handling for N_Access_Function_Definition.
24436 (Analyze_Subtype_Declaration): Modify the text of error message.
24437 (Derived_Type_Declaration): Modify the text of error message.
24438 (Process_Subtype): Modify the text of error message plus cleanup
24439 of one redundant error message.
24440 (Analyze_Component_Declaration): Code cleanup.
24441 (Analyze_Object_Declaration): Code cleanup.
24442 (Analyze_Subtype_Declaration): Propagate the null-exclusion
24443 attribute in case of access types. Code cleanup.
24444 (Array_Type_Declaration): Code cleanup.
24445 (Process_Discriminants): Create the new null-excluding itype
24446 if required. Code cleanup.
24447 (Process_Subtype): Create the new null-excluding itype if
24448 required. Code cleanup.
24449 (Build_Derived_Record_Type): Code cleanup to avoid calling
24450 twice the subprogram derive_subprograms in case of private
24451 types that implement interfaces. In this particular case the
24452 subprogram Complete_Subprograms_Derivation already does the
24453 job associated with the second call.
24454
6f7f72f9
EB
24455 * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
24456 conversion to the full view when generating an operation for a
24457 discriminant whose type may currently be private.
98b40956
AC
24458
244592005-09-01 Ed Schonberg <schonberg@adacore.com>
24460 Javier Miranda <miranda@adacore.com>
24461
24462 * sem_ch4.adb (Transform_Object_Operation): In a context off the form
24463 V (Obj.F), the rewriting does not involve the indexed component, but
24464 only the selected component itself.
24465 Do not apply the transformation if the analyzed node is an actual of a
24466 call to another subprogram.
24467 (Complete_Object_Operation): Retain the entity of the
24468 dispatching operation in the selector of the rewritten node. The
24469 entity will be used in the expansion of dispatching selects.
24470 (Analyze_One_Call): Improve location of the error message associated
24471 with interface.
24472 (Analyze_Selected_Component): No need to resolve prefix when it is a
24473 function call, resolution is done when parent node is resolved, as
24474 usual.
24475 (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
24476 when attempting to resolve a call transformed from its object notation.
24477 (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
24478 of the argument list for each interpretation of the operation.
24479 (Try_Object_Operation): The designated type of an access parameter may
24480 be an incomplete type obtained through a limited_with clause, in which
24481 case the primitive operations of the type are retrieved from its full
24482 view.
24483 (Analyze_Call): If this is an indirect call, and the return type of the
24484 access_to_subprogram is incomplete, use its full view if available.
24485
244862005-09-01 Javier Miranda <miranda@adacore.com>
24487 Gary Dismukes <dismukes@adacore.com>
24488
24489 * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
24490 access types the null-exclusion and access-to-constant attributes must
24491 also match.
24492 (Analyze_Return_Statement): When the result type is an anonymous access
24493 type, apply a conversion of the return expression to the access type
24494 to ensure that appropriate accessibility checks are performed.
24495 (Analyze_Return_Type): For the case of an anonymous access result type,
24496 generate the Itype and set Is_Local_Anonymous_Access on the type.
24497 Add ??? placeholder for check to disallow returning a limited object
24498 in Ada 2005 unless it's an aggregate or a result of a function call.
24499 Change calls from Subtype_Mark to Result_Definition.
24500 (Analyze_Subprogram_Body): Change formal Subtype_Mark to
24501 Result_Definition in call to Make_Function_Specification.
24502 (Build_Body_To_Inline): Change Set_Subtype_Mark to
24503 Set_Result_Definition.
24504 (Make_Inequality_Operator): Change formal Subtype_Mark to
24505 Result_Definition in call to Make_Function_Specification.
24506 (Process_Formals): Create the new null-excluding itype if required.
24507 (New_Overloaded_Entity): For an entity overriding an interface primitive
24508 check if the entity also covers other abstract subprograms in the same
24509 scope. This is required to handle the general case, that is, overriding
24510 other interface primitives and overriding abstract subprograms inherited
24511 from some abstract ancestor type.
24512 (New_Overloaded_Entity): For an overriding entity that comes from
24513 source, note the operation that it overrides.
24514 (Check_Conformance, Type_Conformant): Addition of one new formal
24515 to skip controlling formals in the analysis. This is used to
24516 handle overloading of abstract interfaces.
24517 (Base_Types_Match): Add missing case for types imported from
24518 limited-with clauses
24519 (New_Overloaded_Entity): Add barrier to protect the use of
24520 the "alias" attribute.
24521
245222005-09-01 Ed Schonberg <schonberg@adacore.com>
24523
24524 * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
24525 verify that the procedure and the entry are mode conformant.
24526 (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
24527 as a different operator, which is often a cut-and-paste error.
24528
245292005-09-01 Javier Miranda <miranda@adacore.com>
24530 Ed Schonberg <schonberg@adacore.com>
24531
24532 * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
24533 used in controlling parameters exclude null because it is necessary to
24534 read the tag to dispatch, and null has no tag.
24535 (Override_Dispatching_Operation): If the previous operation is inherited
24536 from an interface, it becomes hidden and does not participate in later
24537 name resolution.
24538
245392005-09-01 Javier Miranda <miranda@adacore.com>
24540 Ed Schonberg <schonberg@adacore.com>
24541 Gary Dismukes <dismukes@adacore.com>
24542
24543 * sem_res.adb (Resolve_Membership_Op): In case of the membership test
24544 "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
24545 the expander will generate the corresponding run-time check to evaluate
24546 the expression.
24547 (Resolve_Call): Check for legal type of procedure name or prefix that
24548 appears as a trigger in a triggering alternative.
24549 (Valid_Conversion): If expression is ambiguous and the context involves
24550 an extension of System, remove System.Address interpretations.
24551 (Resolve_Qualified_Expression): Reject the case of a specific-type
24552 qualification applied to a class-wide argument. Enhance comment
24553 to explain checking of Original_Node.
24554 (Resolve_Type_Conversion): The location of the error message was not
24555 general enough to handle the general case and hence it has been removed.
24556 In addition, this patch improves the text of the message.
24557 (Resolve_Type_Conversion): Add missing support for access to interface
24558 types.
24559 (Resolve_Type_Conversion): If the target is a class-wide interface type,
24560 do not expand if the expression is the actual in a call, because proper
24561 expansion will take place when the call itself is expanded.
24562 (Resolve_Allocator): If the context is an unchecked conversion, the
24563 allocator inherits its storage pool, if any, from the target type of
24564 the conversion.
24565
245662005-09-01 Ed Schonberg <schonberg@adacore.com>
24567 Javier Miranda <miranda@adacore.com>
24568
24569 * sem_type.adb (Add_One_Interp): If a candidate operation is an
24570 inherited interface operation that has an implementation, use the
24571 implementation to avoid spurious ambiguities.
24572 (Interface_Present_In_Ancestor): In case of concurrent types we can't
24573 use the Corresponding_Record_Typ attribute to look for the interface
24574 because it is set by the expander (and hence it is not always
24575 available). For this reason we traverse the list of interfaces
24576 (available in the parent of the concurrent type).
24577 (Interface_Present_In_Ancestor): Handle entities from the limited view
24578
245792005-09-01 Ed Schonberg <schonberg@adacore.com>
24580
24581 * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
24582 from the list of required components.
24583 (Is_Controlling_Limited_Procedure): Determine whether an entity is a
24584 primitive procedure of a limited interface with a controlling first
24585 parameter.
24586 (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
24587 of an entry.
24588 (Safe_To_Capture_Value): A value (such as non_null) is not safe to
24589 capture if it is generated in the second operand of a short-circuit
24590 operation.
24591 Do not capture values for variables with address clauses.
24592 (Is_Object_Reference): Treat a function call as an object reference only
24593 if its type is not Standard_Void_Type.
24594
245952005-09-01 Ed Schonberg <schonberg@adacore.com>
24596
24597 * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
24598 to a variable that is statically known to be constant.
24599
246002005-09-01 Geert Bosch <bosch@adacore.com>
24601 Robert Dewar <dewar@adacore.com>
24602
24603 * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
24604 (VAXGF_Safe_First): Idem.
24605
246062005-09-01 Robert Dewar <dewar@adacore.com>
24607 Arnaud Charlet <charlet@adacore.com>
24608
24609 * g-dirope.ads: Minor reformatting
24610 Document that bounds of result of Base_Name match the input index
24611 positions.
24612 Add documentation on environment variable syntax for Expand_Path
24613
24614 * gnat_ugn.texi: Update documentation to include mention of -m switches
24615 Document new treatment of wide characters in max line length
24616 style check.
24617 Remove -gnatL/-gnatZ switches, no longer used.
24618 Add note on pragmas Assertion_Policy and Debug_Policy in discussion
24619 of -gnata switch.
24620
24621 * gnat_rm.texi: Add doc for two argument form of pragma
24622 Float_Representation.
24623 Add documentation for pragma No_Strict_Aliasing
24624 Add note that explicit component clause overrides pragma Pack.
24625 Add documentation of pragma Debug_Policy
24626
246272005-09-01 Matthew Heaney <heaney@adacore.com>
24628
da8f5fd9
AJ
24629 * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
24630 a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
24631 a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
98b40956
AC
24632 a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
24633 draft (Draft 13, August 2005) of Ada Amendment 1.
24634
246352005-09-01 Arnaud Charlet <charlet@adacore.com>
24636
24637 * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
24638 Note that the platform-specific version of g-soccon.ads for VMS is now
24639 named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
24640 really is a package spec).
24641 Replace s-taspri-linux.ads by s-taspri-posix.ads
24642 Remove references to s-mastop-x86.adb
24643
24644 * system-vxworks-xscale.ads: Removed, no longer used.
24645 * s-vxwork-xscale.ads: Removed, no longer used.
24646
246472005-09-01 Robert Dewar <dewar@adacore.com>
24648
24649 * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
24650 g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
24651 g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
24652 exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
24653 g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
24654 g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
24655 g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
24656 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
24657 g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
24658 g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
24659 sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
24660 a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
24661 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
24662 a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
24663 a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
24664 a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
24665 g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
24666 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
24667 g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
24668 i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
24669 a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
24670
332a1c2e
AC
246712005-08-29 Arnaud Charlet <charlet@adacore.com>
24672
24673 PR ada/23187
24674 * adaint.c
da8f5fd9 24675 (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
332a1c2e
AC
24676
246772005-08-29 Arnaud Charlet <charlet@adacore.com>
24678 Doug Rupp <rupp@adacore.com>
24679
24680 * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
24681 when needed.
24682 (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
24683 this code in the GNAT run-time.
24684
24685 * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
24686
24687 PR ada/21053
24688 * init.c (__gnat_error_handler [many]): Mark "msg" as const
24689 (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
24690
24691 (__gnat_inside_elab_final_code): Moved here from
24692 Standard_Library and only defined for the compiler.
24693 __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
24694 (__gnat_inum_to_ivec): Do not define this function on VxWorks when
24695 using RTPs because directly vectored Interrupt routines are not
24696 supported on this configuration.
24697 (getpid): Do not redefine this function on VxWorks when using RTPs
24698 because this primitive is well supported by the RTP libraries.
24699 (copy_msg): Correct the code that checks for buffer overflow.
24700 Discovered during code reading.
24701
247022005-08-29 Olivier Hainque <hainque@adacore.com>
24703
24704 * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
24705 a library level mutable variable with an initializer, tell
24706 build_allocator to ignore the initializer's size. It may not be large
24707 enough for all the values that might be assigned to the variable later
24708 on.
24709
247102005-08-29 Arnaud Charlet <charlet@adacore.com>
24711 Eric Botcazou <ebotcazou@adacore.com>
24712
24713 * trans.c: Protect < in error msg with quote
24714 Replace GCC_ZCX by Back_End_Exceptions.
24715 (addressable_p) <COMPONENT_REF>: Also return 1 if the field
24716 has been sufficiently aligned in the record.
24717
35fd1d77
JW
247182005-08-15 James E. Wilson <wilson@specifix.com>
24719
24720 * system-linux-alpha.ads: Change ia64 to alpha.
24721
b15341b8
KH
247222005-08-01 Kazu Hirata <kazu@codesourcery.com>
24723
24724 * decl.c, utils.c: Fix comment typos.
24725
9e4eb559
KH
247262005-07-29 Kazu Hirata <kazu@codesourcery.com>
24727
24728 * decl.c, init.c, initialize.c: Fix comment typos.
24729
4038c495
GB
247302005-07-20 Giovanni Bajo <giovannibajo@libero.it>
24731
24732 Make CONSTRUCTOR use VEC to store initializers.
24733 * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
24734 CONSTRUCTOR_ELTS.
24735 * trans.c (extract_values): Likewise.
24736 * utils.c (convert, remove_conversions): Likewise.
24737 * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
24738 gnat_build_constructor): Likewise.
24739
f685a2e6
AP
247402005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
24741
24742 * decl.c (components_to_record): Use DECL_FCONTEXT instead of
24743 DECL_SECTION_NAME.
24744 (compare_field_bitpos): Likewise.
24745
7c6ef73e
AP
247462005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
24747
24748 * utils.c (create_var_decl): Only set DECL_COMMON on
24749 VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
24750 VAR_OR_FUNCTION_DECL_P.
24751
820cc88f 247522005-07-08 Daniel Berlin <dberlin@dberlin.org>
da8f5fd9 24753
820cc88f
DB
24754 * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
24755 removed.
24756
1a9cb483
AC
247572005-07-07 Pascal Obry <obry@adacore.com>
24758
24759 * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
24760 returned type on Windows.
24761
24762 * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
24763 routine.
24764
24765 * g-socket.adb (Inet_Addr): Check for empty Image and raises an
24766 exception in this case.
24767 Simplify the code as "Image (Image'Range)" = "Image".
24768
247692005-07-07 Vincent Celier <celier@adacore.com>
24770
24771 * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
24772 the destructor/constructor attributes for <lib>final/<lib>init.
24773
24774 * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
24775
247762005-07-07 Eric Botcazou <ebotcazou@adacore.com>
24777
24778 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
24779 type if the parameter is not passed by copy but reference by default.
24780
247812005-07-07 Javier Miranda <miranda@adacore.com>
24782
24783 * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
24784 Reimplementation of the support for abstract interface types in order
24785 to leave the code more clear and easy to maintain.
24786
24787 * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
24788 abstract interface types in order to leave the code clearer and easier
24789 to maintain.
24790
24791 * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
24792 is now implemented by the new subprogram Fill_Secondary_DT_Entry.
24793 (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
24794 appropriate entry of the secondary dispatch table.
24795 (Make_DT): Add code to inherit the secondary dispatch tables of
24796 the ancestors.
24797
24798 * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
24799 implementing both functionalities by means of a common routine, each
24800 routine has its own code.
24801
248022005-07-07 Javier Miranda <miranda@adacore.com>
24803
24804 * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
24805
24806 * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
24807 types:
24808 --
24809 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
24810 --
24811
24812 * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
24813 use of tag incomplete types.
24814
24815 * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
24816 give support to tagged incomplete types.
24817
24818 * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
24819 expression is a discriminant reference and its type is private, as can
24820 happen within a stream operation for a mutable record, use the full
24821 view of the type to resolve the case alternatives.
24822 (Analyze_Assignment): Check wrong dereference of incomplete types.
24823
24824 * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
24825 types.
24826
24827 * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
24828 incomplete types.
24829
24830 * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
24831 N_Incomplete_Type_Declaration nodes.
24832
24833 * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
24834 Tag_Present to give support to tagged incomplete types:
24835 --
24836 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
24837 --
24838
248392005-07-07 Olivier Hainque <hainque@adacore.com>
24840
24841 PR ada/22301
1a9cb483
AC
24842 * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
24843 definitions for the Unwind wrappers in the compiler case.
24844
248452005-07-07 Ed Schonberg <schonberg@adacore.com>
24846 Javier Miranda <miranda@adacore.com>
24847
24848 * par-load.adb (Load): If a child unit is loaded through a limited_with
24849 clause, each parent must be loaded as a limited unit as well.
24850
24851 * sem_ch10.adb (Previous_Withed_Unit): Better name for
24852 Check_Withed_Unit. Return true if there is a previous with_clause for
24853 this unit, whether limited or not.
24854 (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
24855 the current unit.
24856 (Is_Visible_Through_Renamings): New local subprogram of install_limited
24857 _withed_unit that checks if some package installed through normal with
24858 clauses has a renaming declaration of package whose limited-view is
24859 ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
24860 of the current Draft document for Ada 2005.
24861 (Analyze_Context): Complete the list of compilation units that
24862 are allowed to contain limited-with clauses. It also contains
24863 checks that were previously done by Install_Limited_Context_Clauses.
24864 This makes the code more clear and easy to maintain.
24865 (Expand_Limited_With_Clause) It is now a local subprogram of
24866 Install_Limited_Context_Clauses, and contains the code that adds
24867 the implicit limited-with clauses for parents of child units.
24868 This functionality was prevously done by Analyze_Context.
24869
24870 * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
24871 incomplete type.
24872
24873 * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
24874 been erroneously named in a limited-with clause of its own context.
24875 In this case the error has been previously notified by Analyze_Context.
24876
248772005-07-07 Ed Schonberg <schonberg@adacore.com>
24878
24879 * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
24880 generic package that contains local declarations with the same name.
24881 (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
24882
248832005-07-07 Bernard Banner <banner@adacore.com>
24884
24885 * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
24886 ia64 platform only on platforms that you the GCC unwind library
24887 rather than the system unwind library.
24888
248892005-07-07 Thomas Quinot <quinot@adacore.com>
24890
24891 * expect.c: Minor reformatting
24892
248932005-07-07 Sergey Rybin <rybin@adacore.com>
24894
24895 * vms_data.ads: Add VMS qualifiers for new gnatpp switch
24896 --no-separate-is
24897
24898 * gnat_ugn.texi: Add description for new gnatpp option
24899 (--no-separate-is)
24900
7d300a99
AC
249012005-07-04 Thomas Quinot <quinot@adacore.com>
24902
24903 * g-expect-vms.adb, g-expect.ads, g-expect.adb
24904 (Get_Command_Output): New subprogram to launch a process and get its
24905 standard output as a string.
24906
249072005-07-04 Eric Botcazou <ebotcazou@adacore.com>
9bae2797 24908 Olivier Hainque <hainque@adacore.com>
7d300a99
AC
24909
24910 * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
24911 fetch a code-range descriptor associated with the machine state. On
24912 failure set the machine state's PC to 0; on success, pass the
24913 descriptor to exc_virtual_unwind.
24914
24915 * init.c (Tru64 section): New function __gnat_set_code_loc.
24916
249172005-07-04 Vincent Celier <celier@adacore.com>
24918
da8f5fd9
AJ
24919 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
24920 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
7d300a99
AC
24921 mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
24922 Remove all auto-initialization code, as this is now done through the
24923 constructor mechanism.
24924
24925 * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
24926 __gnat_sals_init_using_constructors): New functions.
24927
24928 * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
24929 Linker_Constructor and Linker_Destructor when switch -a is used.
24930
24931 * bindusg.adb: Add line for new switch -a
24932
24933 * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
24934 (Gnatbind): When switch -a is used, check if it is allowed
24935
24936 * switch-b.adb (Scan_Binder_Switches): Process new switch -a
24937
249382005-07-04 Joel Brobecker <brobecker@adacore.com>
24939
24940 * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
24941 This prevents us from hitting a limitation during the debug info
24942 generation when using stabs.
24943 (Prims_Ptr): Likewise.
24944
249452005-07-04 Gary Dismukes <dismukes@adacore.com>
24946 Ed Schonberg <schonberg@adacore.com>
24947 Javier Miranda <miranda@adacore.com>
24948
24949 * checks.adb (Null_Exclusion_Static_Checks): In the case of
24950 N_Object_Declaration, only perform the checks if the Object_Definition
24951 is not an Access_Definition.
24952
6f7f72f9
EB
24953 * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
24954 where the parent of an the access definition is an N_Object_Declaration
24955 when determining the Associated_Node_For_Itype and scope of an
24956 anonymous access-to-subprogram type.
7d300a99
AC
24957
24958 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
24959 Corresponding_Spec on the body created for a null procedure. Add ???
24960 comment. Remove New_Copy_Tree call on body argument to
24961 Set_Body_To_Inline.
24962
24963 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
24964 discriminants, use the type of the actual as well, because the
24965 discriminants may be read by the called subprogram.
24966
24967 * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
24968 access type we do not need to handle non-limited views.
24969 (Build_Derived_Record_Type): Additional check to check that in case of
24970 private types, interfaces are only allowed in private extensions.
24971
249722005-07-04 Eric Botcazou <ebotcazou@adacore.com>
24973
24974 * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
24975 <Pragma_Linker_Destructor>: Likewise.
24976
24977 * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
24978 Pragma_Linker_Destructor.
24979
24980 * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
24981 ATTR_LINK_DESTRUCTOR.
24982 (static_ctors, static_dtors): New variables.
24983
24984 * misc.c (gnat_expand_body): Output current function as constructor
24985 and destructor if requested.
24986
24987 * par-prag.adb: Add processing for pragma Linker_Constructor and
24988 Linker_Destructor.
24989
24990 * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
24991 extracted from Check_Interrupt_Or_Attach_Handler.
24992 (Check_Interrupt_Or_Attach_Handler): Invoke it.
24993 Implement pragma Linker_Constructor and Linker_Destructor with the
24994 help of Find_Unique_Parameterless_Procedure.
24995 Replace Name_Alias with Name_Target for pragma Linker_Alias.
24996
da8f5fd9 24997 * snames.h, snames.ads, snames.adb:
7d300a99
AC
24998 Add Name_Linker_Constructor and Name_Linker_Destructor.
24999 Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
25000 * snames.adb: Remove Name_Alias.
25001
25002 * trans.c: Include cgraph.h.
25003 (build_global_cdtor): New function.
25004 (Compilation_Unit_to_gnu): Build global constructor and destructor if
25005 needed.
25006 (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
25007 of objects too.
25008 (addressable_p) <COMPONENT_REF>: Unconditionally test
25009 DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
25010
25011 * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
25012 variable if it is external.
25013
25014 (static_ctors, static_dtors): New global variables.
25015 (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
25016 <ATTR_LINK_DESTRUCTOR>: Likewise.
25017 (end_subprog_body): Chain function as constructor and destructor
25018 if requested.
25019
25020 * exp_util.adb (Force_Evaluation): Unconditionally invoke
25021 Remove_Side_Effects with Variable_Ref set to true.
25022 (Remove_Side_Effects): Handle scalar types first. Use a renaming
25023 for non-scalar types even if Variable_Ref is true and for class-wide
25024 expressions.
25025
250262005-07-04 Ed Schonberg <schonberg@adacore.com>
25027
25028 * exp_attr.adb (Mod): Evaluate condition expression with checks off,
25029 to prevent spurious warnings.
25030
250312005-07-04 Thomas Quinot <quinot@adacore.com>
25032
25033 * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
25034 Itypes. Itypes are really unexpected there.
25035 (Build_TypeCode_Function): Generalise special processing for Itypes to
25036 handle the case of numeric implicit base types as well as enumerated
25037 ones.
25038
250392005-07-04 Ed Schonberg <schonberg@adacore.com>
25040
25041 * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
25042 controlled, indicate the expected type of the dereference that is
25043 created for the call to Deep_Finalize, to prevent spurious errors when
25044 the designated type is private and completed with a derivation from
25045 another private type.
25046
250472005-07-04 Vincent Celier <celier@adacore.com>
25048
25049 * make.adb (Change_To_Object_Directory): When unable to change the
25050 current dir to the object directory, output the full path of the
25051 directory.
25052
250532005-07-04 Matthew Gingell <gingell@adacore.com>
25054
25055 * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
25056
25057 * indepsw-linux.adb: Replace by...
25058
25059 * indepsw-gnu.adb: ...this new file
25060
250612005-07-04 Vincent Celier <celier@adacore.com>
25062
25063 * mlib-prj.adb (Auto_Initialize): New constant String
25064 (SALs_Use_Constructors): New Boolean function
25065 (Build_Library): Call gnatbind with Auto_Initialize switch when
25066 SALs_Use_Constructors returns True.
25067
25068 * mlib-tgt.ads: Minor reformatting
25069
25070 * mlib-utl.ads: Minor reformatting
25071
25072 * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
25073
250742005-07-04 Ed Schonberg <schonberg@adacore.com>
25075
25076 * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
25077 single protected declarations can have an interface list.
25078 (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
25079 with seriously malformed entry declarations, and lead to compilation
25080 abandoned messages.
25081
250822005-07-04 Javier Miranda <miranda@adacore.com>
25083
25084 * par-load.adb: Load the context items in two rounds.
25085
250862005-07-04 Robert Dewar <dewar@adacore.com>
25087
25088 * scng.adb: Do not consider Mod used as an attribute to be a keyword
25089
250902005-07-04 Ed Schonberg <schonberg@adacore.com>
25091 Javier Miranda <miranda@adacore.com>
25092
25093 * sem_ch10.adb (Build_Limited_Views): A type declared with a private
25094 type extension needs a limited view.
25095 Remove previous restriction on private types available through the
25096 limited-view (only tagged private types were previously allowed).
25097 (Install_Withed_Unit): In the code that implements the
25098 legality rule given in AI-377, exclude a child unit with the name
25099 Standard, because it is a homonym of the Standard environment package.
25100
251012005-07-04 Thomas Quinot <quinot@adacore.com>
25102
25103 * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
25104 overloaded function call, carry interpretations from the original tree
25105 to the copy.
25106
251072005-07-04 Ed Schonberg <schonberg@adacore.com>
25108
25109 * sem_ch6.adb (Conforming_Types): If the types are anonymous access
25110 types check whether some designated type is a limited view, and use
25111 the non-limited view if available.
25112
251132005-07-04 Gary Dismukes <dismukes@adacore.com>
25114
25115 * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
25116 constraint of full view of a private view T1 if present, when T2 is a
25117 discriminated full view.
25118
251192005-07-04 Thomas Quinot <quinot@adacore.com>
25120
25121 * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
25122 actual that is a view conversion of a bit packed array reference.
25123
251242005-07-04 Ed Schonberg <schonberg@adacore.com>
25125
25126 * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
25127 present before checking whether an interface type covers a synchronized
25128 type.
25129
251302005-07-04 Ed Schonberg <schonberg@adacore.com>
25131
25132 * sem_util.adb (Is_Object_Reference): An indexed or selected component
25133 whose prefix is an implicit dereference is an object reference. Removes
25134 spurious errors when compiling with -gnatc.
25135
251362005-07-04 Robert Dewar <dewar@adacore.com>
25137
25138 PR ada/22039
7d300a99
AC
25139 * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
25140
251412005-07-04 Matthew Gingell <gingell@adacore.com>
25142
25143 * tracebak.c: Enable tracebacks on ia64 platforms
25144
251452005-07-04 Vincent Celier <celier@adacore.com>
25146
25147 * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
25148 the GNAT BIND command, as gnatbind accepts multiples ALI files with
25149 the -L or -n switches.
25150
251512005-07-04 Vincent Celier <celier@adacore.com>
25152
25153 * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
25154 correctly computed and the main project data is not modified while
25155 doing so.
25156 (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
25157 (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
25158 c++linker as this does not work on some platforms.
25159
251602005-07-04 Matthew Heaney <heaney@adacore.com>
25161
25162 * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
25163 was changed.
25164 * a-coinve.adb: Perform constraint checks explicitly.
25165
251662005-07-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25167 Thomas Quinot <quinot@adacore.com>
25168
25169 * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
25170 new target gen-soccon.
25171
251722005-07-04 Robert Dewar <dewar@adacore.com>
25173
25174 * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
25175
251762005-07-04 Thomas Quinot <quinot@adacore.com>
25177
25178 * g-socket.ads (Check_Selector): Minor rewording of comment.
25179
251802005-07-04 Vincent Celier <celier@adacore.com>
25181
25182 * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
25183
251842005-07-04 Thomas Quinot <quinot@adacore.com>
25185
25186 * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
25187
251882005-07-04 Sergey Rybin <rybin@adacore.com>
25189
6f7f72f9 25190 * gnat_ugn.texi: Add description of --eol gnatpp option
7d300a99
AC
25191
251922005-07-04 Eric Botcazou <ebotcazou@adacore.com>
25193 Thomas Quinot <quinot@adacore.com>
25194
6f7f72f9 25195 * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
7d300a99
AC
25196 if the user wants all calls of a subprogram to be flagged,
25197 independently of whether they are made from within the same unit or
25198 another unit.
6f7f72f9
EB
25199 Mention restriction for pragma Linker_Alias on some platforms.
25200 Document pragma Linker_Constructor and Linker_Destructor.
25201 Rewrite documentation of Weak_External, Linker_Section and
25202 Linker_Alias pragmas.
7d300a99 25203
fc64d83c
AC
252042005-07-04 Arnaud Charlet <charlet@adacore.com>
25205
25206 * s-stausa.ads, s-stausa.adb: New files.
25207
cb5fee25
KC
252082005-06-30 Kelley Cook
25209
25210 * all files: Update FSF address in copyright headers.
25211 * gen-soccon.co (main): Output new FSF address in generated files.
25212
617a1b71
PB
252132005-06-28 Paul Brook <paul@codesourcery.com>
25214
25215 * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
25216
0adcdb66
AC
252172005-06-14 Olivier Hainque <hainque@adacore.com>
25218 Eric Botcazou <ebotcazou@adacore.com>
25219
25220 * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
25221 exc_unwind, now that we are generating proper .debug_frame output for
25222 that target.
25223
25224 * tracebak.c: Remove the mips-irix section, as we are now using the
25225 s-mastop based unwinder again.
25226 Under SPARC/Solaris, take into account the stack bias to compute the
25227 frame offset. The stack bias is 0 for the V8 ABI and 2047 for the V9
25228 ABI.
25229
252302005-06-14 Doug Rupp <rupp@adacore.com>
25231
25232 * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
25233
25234 * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
25235
252362005-06-14 Pascal Obry <obry@adacore.com>
25237
25238 * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
25239 a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
25240 a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
25241 package name).
25242
da8f5fd9
AJ
25243 * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
25244 a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
25245 a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
25246 a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
0adcdb66 25247 a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
da8f5fd9
AJ
25248 a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
25249 a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
25250 s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
25251 s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
25252 s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
25253 s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
25254 s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
25255 s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
25256 s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
25257 s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
25258 s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
25259 s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
25260 s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
25261 s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
25262 s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
25263 s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
25264 s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
25265 s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
25266 s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
25267 s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
25268 s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
25269 s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
25270 s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
25271 s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
0adcdb66
AC
25272 s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
25273 a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
25274 a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
25275 a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
25276 a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
25277 a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
25278 a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
25279 a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
25280 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
25281 a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
25282 a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
25283 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
25284 a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
25285 a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
25286 a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
25287 a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
25288 a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
25289 a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
25290 a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
25291 a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
25292 a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
25293 a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
25294 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
25295 a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
25296 a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
25297 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
25298 a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
25299 a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
25300 dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
25301 g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
25302 g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
25303 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
25304 g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
25305 g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
25306 gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
25307 g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
25308 i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
da8f5fd9
AJ
25309 s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
25310 s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
0adcdb66 25311 s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
da8f5fd9 25312 s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
0adcdb66
AC
25313 s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
25314 s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
25315 s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
25316 s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
25317 s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
25318 s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
25319 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
25320 s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
25321 s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
25322 s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
25323 s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
25324 s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
25325 s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
25326 s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
25327 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
25328 s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
25329 s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
25330 s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
25331 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
25332 s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
25333 s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
25334 s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
25335 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
25336 s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
25337 s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
25338 s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
25339 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
25340 s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
25341 s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
25342 s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
25343 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
25344 s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
25345 s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
25346 s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
25347 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
25348 s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
25349 s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
da8f5fd9
AJ
25350 s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
25351 s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
25352 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
25353 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
25354 s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
25355 s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
25356 s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
0adcdb66
AC
25357 s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
25358 s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
25359 s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
25360 s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
25361 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
25362 s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
da8f5fd9
AJ
25363 s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
25364 s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
0adcdb66
AC
25365 s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
25366 a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
25367 a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
25368 a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
25369 a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
25370 a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
25371 a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
25372 a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
25373 a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
25374 a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
25375 "GNU Ada" to GNAT, use proper casing for RUN-TIME.
25376
253772005-06-14 Jose Ruiz <ruiz@adacore.com>
25378 Arnaud Charlet <charlet@adacore.com>
25379
25380 * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
25381 longer protected objects. They have been replaced by lower-level
25382 suspension objects made up by a mutex and a condition variable (or
25383 their equivalent given a particular OS) plus some internal data to
25384 reflect the state of the suspension object.
25385 (Initialize, Finalize): Add this initialization procedure for
25386 Suspension_Object, which is a controlled type.
25387 (Finalize): Add the finalization procedure for Suspension_Object,
25388 which is a controlled type.
25389
25390 * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
25391 Ada.Synchronous_Task_Control because there is no longer a need for a
25392 VxWorks specific version of this package. Target dependencies
25393 has been moved to System.Task_Primitives.Operations.
25394
25395 * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
25396 longer needed.
25397 (InitializeCriticalSection, EnterCriticalSection,
25398 LeaveCriticalSection, DeleteCriticalSection): Replace the type
25399 pCriticalSection by an anonymous access type so that we avoid problems
25400 of accessibility to local objects.
25401
25402 * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
25403 s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
25404 s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
25405 s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
25406 s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
25407 set the environment task mask here.
25408 (Current_State): Add this function that returns the state of the
25409 suspension object.
25410 (Set_False): Add this procedure that sets the state of the suspension
25411 object to False.
25412 (Set_True): Add this procedure that sets the state of the suspension
25413 object to True, releasing the task that was suspended, if any.
25414 (Suspend_Until_True): Add this procedure that blocks the calling task
25415 until the state of the object is True. Program_Error is raised if
25416 another task is already waiting on that suspension object.
25417 (Initialize): Add this procedure for initializing the suspension
25418 object. It initializes the mutex and the condition variable which are
25419 used for synchronization and queuing, and it sets the internal state
25420 to False.
25421 (Finalize): Add this procedure for finalizing the suspension object,
25422 destroying the mutex and the condition variable.
25423
25424 * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
25425 s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
25426 s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
25427 s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
25428 which provides a low-level abstraction (using operating system
25429 primitives) for Ada.Synchronous_Task_Control.
25430 This object is made up by a mutex (for ensuring mutual exclusion), a
25431 condition variable (for queuing threads until the condition is
25432 signaled), a Boolean (State) indicating whether the object is open,
25433 and a Boolean (Waiting) reflecting whether there is a task already
25434 suspended on this object.
25435
25436 * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
25437 s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
25438 s-intman-vms.ads, s-intman-mingw.adb,
25439 (Initialize_Interrupts): Removed, no longer used.
25440
25441 * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
25442 (Setup_Interrupt_Mask): New procedure.
25443
25444 * s-intman-vxworks.ads, s-intman-vxworks.adb: Update comments.
25445
25446 * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
25447
25448 * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
25449 this is no longer done in the body of s-taprop
25450 (Server_Task): Explicitely test for Pending_Action in case
25451 System.Parameters.No_Abort is True.
25452
25453 * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
25454 is no longer done in the body of s-taprop
25455
254562005-06-14 Robert Dewar <dewar@adacore.com>
25457
25458 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
25459 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
25460 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
25461 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
25462 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
25463 system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
25464 system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
25465 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
25466 system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
25467 system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
25468 system-linux-hppa.ads, system-vms_64.ads,
25469 system-vxworks-alpha.ads: Minor comment update for
25470 AI-362 (unit is Pure).
25471
25472 * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
25473 Add pragma Pure_05 for AI-362
25474 Make remaining conversion functions obsolescent in Ada 95
25475
25476 * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
25477 Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
25478 Add entries for a-wichun and a-zchuni
25479 Add a-widcha a-zchara for AI-395
25480 Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
25481
25482 * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
25483 Add entries for a-wichun.o and a-zchuni.o
25484 Entries for a-widcha.o and a-zchara.o
25485 Add entry for a-chacon.o
25486
25487 * a-ztenau.adb: Add with of Ada.Characters.Conversions
25488
25489 * a-chacon.ads, a-chacon.adb: New files.
25490
25491 * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
25492 categorization violations.
25493
25494 * a-strmap.ads: Add pragma Pure_05 for AI-362
25495 * a-strmap.ads: Add note on implicit categorization for AI-362
25496
25497 * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
25498
25499 * par-prag.adb: Dummy entry for pragma Persistent_BSS
25500 Set Ada_Version_Explicit, for implementation of AI-362
25501 Add processing for pragma Pure_05 and Preelaborate_05
25502 Add entry for Assertion_Policy pragma
25503
25504 * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
25505 when needed for proper processing of categorization stuff
25506
da8f5fd9 25507 * sem_cat.adb:
0adcdb66
AC
25508 For several cases, make errors in preealborate units warnings,
25509 instead of errors, if GNAT_Mode is set. For AI-362.
25510
25511 * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
25512 preelaborate unit is now warning if in GNAT mode
25513
25514 * s-stoele.ads: Document AI-362 for pragma preelaborate
25515
255162005-06-14 Doug Rupp <rupp@adacore.com>
25517
25518 * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
25519 s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
25520 Default_Exception_Msg_Max_Length: new parameter.
25521
25522 * a-except.ads: (Exception_Msg_Max_Length): Set to
25523 System.Parameters.Default_Exception_Msg_Max_Length
25524 Add pragma Preelaborate_05 for AI-362
25525 Add warnings off to allow categorization violations for AI-362
25526
255272005-06-14 Vincent Celier <celier@adacore.com>
25528
25529 * gnatsym.adb: Adapt to modification of package Symbols: procedure
25530 Process is now in package Processing.
25531
25532 * symbols.ads, symbols.adb:
25533 (Processing): New package, containing procedure Process
25534
da8f5fd9 25535 * symbols-vms-alpha.adb:
0adcdb66
AC
25536 Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
25537
25538 * symbols-vms.adb, symbols-processing-vms-alpha.adb,
25539 symbols-processing-vms-ia64.adb: New files.
25540
255412005-06-14 Pascal Obry <obry@adacore.com>
25542
25543 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
25544 implementation. This new version generates the proper DllMain routine
25545 to initialize the SAL. The DllMain is generated in Ada and compiled
25546 before being added as option to the library build command.
25547
255482005-06-14 Doug Rupp <rupp@adacore.com>
25549 Pascal Obry <obry@adacore.com>
25550
25551 * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
25552 call to decc$translate_vms.
25553 (__gnat_locate_regular_file): Check if the path_val contains quotes. We
25554 need to remove those quotes before catenating the filename.
25555 (__gnat_locate_exec_on_path): improvements to the Win32 section:
25556 * avoid allocating the memory twice for better efficiency;
25557 * allocate 32K buffer for environment expansion as suggested by MSDN;
25558 * prepend ".;" to the path so that current directory is searched too.
25559
255602005-06-14 Robert Dewar <dewar@adacore.com>
25561
25562 * a-except.adb (Exception_Identity): return Null_Id for null occurrence
25563 instead of raising CE (AI-241)
25564 Add warnings off to allow categorization violations for AI-362
25565
255662005-06-14 Robert Dewar <dewar@adacore.com>
25567
25568 * ali-util.adb, gnatbind.adb: Remove references to
25569 Force_RM_Elaboration_Order.
25570
25571 * switch-b.adb: Remove recognition of -f switch
25572
255732005-06-14 Pascal Obry <obry@adacore.com>
25574
25575 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
25576 implementation which is slightly more efficient.
25577
255782005-06-14 Gary Dismukes <dismukes@adacore.com>
25579 Javier Miranda <miranda@adacore.com>
25580 Ed Schonberg <schonberg@adacore.com>
25581 Hristian Kirtchev <kirtchev@adacore.com>
25582
25583 * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
25584 allocator's designated type is a class-wide type, and compiling for
25585 Ada 2005, emit a run-time check that the accessibility level of the
25586 type given in the allocator's expression is not deeper than the level
25587 of the allocator's access type.
25588
25589 (Tagged_Membership): Modified to gives support to abstract interface
25590 types.
25591
25592 * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
25593 Access_Level.
25594 (Descendant_Tag): New predefined function
25595 (Is_Descendant_At_Same_Level): New predefined function
25596 (Get_Access_Level): New private function
25597 (Set_Access_Level): New private procedure
25598 (IW_Membership): New function. Given the tag of an object and the tag
25599 associated with an interface, evaluate if the object implements the
25600 interface.
25601 (Register_Interface_Tag): New procedure used to initialize the table of
25602 interfaces used by the IW_Membership function.
25603 (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
25604 of the dispatch table.
25605 (Inherit_TSD): Modified to copy the table of ancestor tags plus the
25606 table of interfaces of the parent.
25607 (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
25608 (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
25609 (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
25610 and raise Tag_Error if the passed tag equalis No_Tag, to conform with
25611 Ada 2005 semantics for the new predefined function.
25612
25613 * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
25614 call to Descendant_Tag rather than Internal_Tag.
25615 (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
25616 the accessibility level of the attribute's Item parameter is not deeper
25617 than the level of the attribute's prefix type. Tag_Error is raised if
25618 the check fails. The check is only emitted for Ada_05.
25619 (Find_Stream_Subprogram): If a TSS exists on the type itself for the
25620 requested stream attribute, use it.
25621 (Expand_N_Attribute_Reference): If the designated type is an interface
25622 then rewrite the referenced object as a conversion to force the
25623 displacement of the pointer to the secondary dispatch table.
25624 (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
25625 is a dereference of an object with a constrained partial view.
25626
25627 * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
25628 type is a class-wide type, emit a run-time check that the accessibility
25629 level of the returned object is not deeper than the level of the
25630 function's master (only when compiling for Ada 2005).
25631
25632 * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
25633 Action_Nb_Arg): Add entries for new Get_Access_Level and
25634 Set_Access_Level routines in these tables.
25635 (Make_DT): Generate a call to set the accessibility level of the
25636 tagged type in its TSD.
25637 (Make_DT): Code cleanup. The functionality of generating all the
25638 secondary dispatch tables has been moved to freeze_record_type.
25639 (Make_Abstract_Interface_DT): Minor code cleanup.
25640 (Set_All_DT_Position): Code cleanup. As part of the code cleanup
25641 this subprogram implements a new algorithm that provides the
25642 same functionality and it is more clear in case of primitives
25643 associated with abstract interfaces.
25644 (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
25645 clean up, the functionality of this subprogram is now provided
25646 by Set_All_DT_Position.
25647 (Write_DT): New subprogram: a debugging procedure designed to be called
25648 within gdb to display the dispatch tables associated with a tagged
25649 type.
25650 (Collect_All_Interfaces): New subprogram that collects the whole list
25651 of interfaces that are directly or indirectly implemented by a tagged
25652 type.
25653 (Default_Prim_Op_Position): New subprogram that returns the fixed
25654 position in the dispatch table of the default primitive operations.
25655 (Expand_Interface_Actuals): New subprogram to generate code that
25656 displaces all the actuals corresponding to class-wide interfaces to
25657 reference the interface tag of the actual object.
25658 (Expand_Interface_Conversion): New subprogram. Reference the base of
25659 the object to give access to the interface tag associated with the
25660 secondary dispatch table.
25661 (Expand_Interface_Thunk): New subprogram that generates the code of the
25662 thunk. This is required for compatibility with the C+ ABI.
25663 (Make_Abstract_Interface_DT): New subprogram that generate the
25664 declarations for the secondary dispatch tables associated with an
25665 abstract interface.
25666 (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
25667 attribute for each primitive operation covering interface subprograms
25668 (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
25669 These subprograms were upgraded to give support to abstract interfaces
25670
25671 * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
25672 RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
25673 RE_Set_Access_Level.
25674 (RE_Unit_Table): Add entries for new Ada.Tags operations.
25675 Add support to call the followig new run-time subprograms:
25676 IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
25677
25678 * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
25679 match its full declaration when both have an access definition with
25680 statically matching designated subtypes.
25681 (Analyze_Component_Declaration): Delete commented out code that was
25682 incorrectly setting the scope of an anonymous access component's type.
25683 (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
25684 an access discriminant when the containing type is nonlimited.
25685 (Make_Incomplete_Type_Declaration): Create an incomplete type
25686 declaration for a record type that includes self-referential access
25687 components.
25688 (Check_Anonymous_Access_Types): Before full analysis of a record type
25689 declaration, create anonymous access types for each self-referential
25690 access component.
25691 (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
25692 an access component in this context is a Local_Anonymous_Access, for
25693 proper accessibility checks.
25694 (Access_Definition): Set properly the scope of the anonymous access type
25695 created for a stand-alone access object.
25696 (Find_Type_Of_Object): An object declaration may be given with an access
25697 definition.
25698 (Complete_Subprograms_Derivation): New subprogram used to complete
25699 type derivation of private tagged types implementing interfaces.
25700 In this case some interface primitives may have been overriden
25701 with the partial-view and, instead of re-calculating them, they
25702 are included in the list of primitive operations of the full-view.
25703 (Build_Derived_Record_Type): Modified to give support to private
25704 types implemening interfaces.
25705 (Access_Definition): Reject ALL on anonymous access types.
25706 (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
25707 type derivation to occur at a deeper accessibility level than the
25708 parent type.
25709 For the case of derivation within a generic body however, disallow the
25710 derivation if the derived type has an ancestor that is a formal type
25711 declared in the formal part of an enclosing generic.
25712 (Analyze_Object_Declaration): For protected objects, remove the check
25713 that they cannot contain interrupt handlers if not declared at library
25714 level.
25715 (Add_Interface_Tag_Components): New subprogram to add the tag components
25716 corresponding to all the abstract interface types implemented by a
25717 record type or a derived record type.
25718 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
25719 Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
25720 Process_Full_View, Record_Type_Declaration): Modified to give
25721 support to abstract interface types
25722 (Collect_Interfaces): New subprogram that collects the list of
25723 interfaces that are not already implemented by the ancestors
25724 (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
25725 when partial view has no discriminants and full view has defaults.
25726 (Constrain_Access): Reject a constraint on a general access type
25727 if the discriminants of the designated type have defaults.
25728 (Access_Subprogram_Declaration): Associate the Itype node with the inner
25729 full-type declaration or subprogram spec. This is required to handle
25730 nested anonymous declarations.
25731 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
25732 Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
25733 Process_Full_View, Record_Type_Declaration): Modified to give
25734 support to abstract interface types
25735 (Derive_Subprograms): Addition of a new formal to indicate if
25736 we are in the case of an abstact-interface derivation
25737 (Find_Type_Of_Subtype_Indic): Moved from the body of the package
25738 to the specification because it is requied to analyze all the
25739 identifiers found in a list of interfaces
25740
25741 * debug.adb: Complete documentation of flag "-gnatdZ"
25742
25743 * exp_ch3.adb: Implement config version of persistent_bss pragma
25744 (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
25745 testing for TSS presence to properly enforce visibility rules.
25746 (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
25747 Make_Abstract_Interfaces_DT to generate the secondary tables
25748 associated with abstract interfaces.
25749 (Build_Init_Procedure): Modified to initialize all the tags
25750 corresponding.
25751 (Component_Needs_Simple_Initialization): Similar to other tags,
25752 interface tags do not need initialization.
25753 (Freeze_Record_Type): Modified to give support to abstract interface
25754 types.
25755 (Expand_N_Object_Declaration): Do not generate an initialization for
25756 a scalar temporary marked as internal.
25757
25758 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
25759 in-out parameter that is a component in an initialization procedure,
25760 whose constraint might depend on discriminants, and that may be
25761 misaligned because of packing or representation clauses.
25762 (Is_Legal_Copy): New predicate to determine whether a possibly
25763 misaligned in-out actual can actually be passed by copy/return. This
25764 is an error in case the type is by_reference, and a warning if this is
25765 the consequence of a DEC import pragma on the subprogram.
25766 (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
25767 interface types
25768 (Expand_Inlined_Call): Mark temporary generated for the return value as
25769 internal, so that no useless scalar normalization is generated for it.
25770 (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
25771 null procedure can always be inlined.
25772 (Expand_N_Subprogram_Declaration): If this is the declaration of a null
25773 procedure, generate an explicit empty body for it.
25774
25775 * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
25776 Given a type implementing an interface, returns the corresponding
25777 access_disp_table value.
25778 (Find_Interface_Tag): New subprogram. Given a type implementing an
25779 interface, returns the record component containing the tag of the
25780 interface.
25781 (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
25782 previous ones that return the corresponding tag and access_disp_table
25783 entities.
25784 (Is_Predefined_Dispatching_Operation): Determines if a subprogram
25785 is a predefined primitive operation.
25786 (Expand_Subtype_From_Expr): If the expression is a selected component
25787 within an initialization procedure, compute its actual subtype, because
25788 the component may depend on the discriminants of the enclosing record.
25789
da8f5fd9 25790 * i-cpp.ads, i-cpp.adb:
0adcdb66
AC
25791 This package has been left available for compatibility with previous
25792 versions of the frontend. As part of the new layout this is now a
25793 dummy package that uses declarations available at a-tags.ads
25794
25795 * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
25796 "constant access" and "aliased [constant] access" when not compiling
25797 with -gnat05.
25798 Suppress Ada 2005 keyword warning if -gnatwY used
25799 (P_Identifier_Declarations): Add support for object declarations with
25800 access definitions.
25801 (Private_Extension_Declaration): Complete the documentation
25802 (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
25803 attribute in case of private extension declaration
25804 (P_Type_Declaration): Mark as "abstract" the type declarations
25805 corresponding with protected, synchronized and task interfaces
25806 (P_Declarative_Items): "not" and "overriding" are overriding indicators
25807 for a subprogram or instance declaration.
25808
25809 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
25810 instantiation that is a dispatching operation has controlling access
25811 parameters that are null excluding.
25812 Save and restore Ada_Version_Explicit, for implementation of AI-362
25813 (Validate_Derived_Type_Instance): Add check for abstract interface
25814 types.
25815 (Analyze_Formal_Package): Establish Instantiation source for the copy of
25816 the generic that is created to represent the formal package.
25817 (Analyze_Package_Instantiation): Instantiate body immediately if the
25818 package is a predefined unit that contains inlined subprograms, and
25819 we are compiling for a Configurable_Run_Time.
25820 (Instantiate_Formal_Subprogram): Indicate that null default subprogram
25821 If the program has a null default, generate an empty body for it.
25822
25823 * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
25824 error message condition, null procedures are correctly detected now.
25825 (New_Overloaded_Entity): Bypass trivial overriding indicator check
25826 for subprograms in the context of protected types. Instead, the
25827 indicator is examined in Sem_Ch9 while analysing the subprogram
25828 declaration.
25829 (Check_Overriding_Indicator): Check consistency of overriding indicator
25830 on subprogram stubs as well.
25831 (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
25832 the library level.
25833 (Analize_Subprogram_Specification): When analyzing a subprogram in which
25834 the type of the first formal is a concurrent type, replace this type
25835 by the corresponding record type.
25836 (Analyze_Subprogram_Body): Undo the previous work.
25837 (Analyze_Procedure_Call): If the call has the form Object.Op, the
25838 analysis of the prefix ends up analyzing the call itself, after which
25839 we are done.
25840 (Has_Interface_Formals): New subprogram subsidiary to analyze
25841 subprogram_specification that returns true if some non
25842 class-wide interface subprogram is found
25843 (New_Overloaded_Entity): Modified to give support to abstract
25844 interface types
25845 (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
25846 access to subprograms must be recursive.
25847 (Is_Unchecked_Conversion): Improve the test that recognizes
25848 instantiations of Unchecked_Conversion, and allows them in bodies that
25849 are to be inlined by the front-end. When the body comes from an
25850 instantiation, a reference to Unchecked_Conversion will be an
25851 Expanded_Name, even though the body has not been analyzed yet.
25852 Replace Is_Overriding and Not_Overriding in subprogram_indication with
25853 Must_Override and Must_Not_Override, to better express intent of AI.
25854 (Analyze_Subprogram_Body): If an overriding indicator is given, check
25855 that it is consistent with the overrinding status of the subprogram
25856 at this point.
25857 (Analyze_Subprogram_Declaration): Indicate that a null procedure is
25858 always inlined.
25859 If the subprogram is a null procedure, indicate that it does not need
25860 a completion.
25861
25862 * sem_disp.adb (Check_Controlling_Type): Give support to entities
25863 available through limited-with clauses.
25864 (Check_Dispatching_Operation): A stub acts like a body, and therefore is
25865 allowed as the last primitive of a tagged type if it has no previous
25866 spec.
25867 (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
25868 to give support to abstract interface types
25869
25870 * sem_res.adb (Valid_Conversion): Perform an accessibility level check
25871 in the case where the target type is an anonymous access type of an
25872 object or component (that is, when Is_Local_Anonymous_Access is true).
25873 Prevent the special checks for conversions of access discriminants in
25874 the case where the discriminant belongs to a nonlimited type, since
25875 such discriminants have their accessibility level defined in the same
25876 way as a normal component of an anonymous access type.
25877 (Resolve_Allocator): When an allocator's designated type is a class-wide
25878 type, check that the accessibility level of type given in the
25879 allocator's expression or subtype indication is not statically deeper
25880 than the level of the allocator's access type.
25881 (Check_Discriminant_Use): Diagnose discriminant given by an expanded
25882 name in a discriminant constraint of a record component.
25883 (Resolve_Explicit_Dereference): Do not check whether the type is
25884 incomplete when the dereference is a use of an access discriminant in
25885 an initialization procedure.
25886 (Resolve_Type_Conversion): Handle conversions to abstract interface
25887 types.
25888 (Valid_Tagged_Conversion): The conversion of a tagged type to an
25889 abstract interface type is always valid.
25890 (Valid_Conversion): Modified to give support to abstract interface types
25891 (Resolve_Actuals): Enable full error reporting on view conversions
25892 between unrelated by_reference array types.
25893 The rule for view conversions of arrays with aliased components is
25894 weakened in Ada 2005.
25895 Call to obsolescent subprogram is now considered to be a violation of
25896 pragma Restrictions (No_Obsolescent_Features).
25897 (Check_Direct_Boolean_Operator): If the boolean operation has been
25898 constant-folded, there is nothing to check.
25899 (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
25900 check on possible violation of restriction No_Direct_Boolean_Operators
25901 until after expansion of operands, to prevent spurious errors when
25902 operation is constant-folded.
25903
25904 * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
25905 Has_Compatible_Type): Modified to give support to abstract interface
25906 types.
25907 (Interface_Present_In_Ancestor): New function to theck if some ancestor
25908 of a given type implements a given interface
25909
25910 * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
25911 prefix is a parameterless function that returns an access_to_procedure.
25912 (Transform_Object_Operation): Handle properly function calls of the
25913 form Obj.Op (X), which prior to analysis appear as indexed components.
25914 (Analyze_One_Call): Complete the error notification to help new Ada
25915 2005 users.
25916 (Analyze_Allocator): For an allocator without an initial value, where
25917 the designated type has a constrained partial view, a discriminant
25918 constraint is illegal.
25919
259202005-06-14 Robert Dewar <dewar@adacore.com>
25921
25922 * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
25923 do with treatment of Set_Col when positioned at end of line character.
25924
259252005-06-14 Robert Dewar <dewar@adacore.com>
25926
25927 * atree.adb: (Elist*): Protect against uninitialized field
25928
259292005-06-14 Ed Schonberg <schonberg@adacore.com>
25930
25931 * checks.adb (Install_Null_Excluding_Check): Do not generate checks
25932 for an attribute reference that returns an access type.
25933 (Apply_Discriminant_Check): No need for check if (designated) type has
25934 constrained partial view.
25935
25936 (Apply_Float_Conversion_Check): Generate a short-circuit expression for
25937 both bound checks, rather than a conjunction.
25938 (Insert_Valid_Check): If the expression is an actual that is an indexed
25939 component of a bit-packed array, force expansion of the packed element
25940 reference, because it is specifically inhibited elsewhere.
25941
259422005-06-14 Vincent Celier <celier@adacore.com>
25943
25944 * clean.adb (Clean_Project): Correctly delete executable specified as
25945 absolute path names.
25946
25947 * make.adb (Gnatmake): Allow relative executable path names with
25948 directory information even when project files are used.
25949 (Change_To_Object_Directory): Fail gracefully when unable to change
25950 current working directory to object directory of a project.
25951 (Gnatmake): Remove exception handler that could no longer be exercized
25952 (Compile_Sources.Compile): Use deep copies of arguments, as some of them
25953 may be deallocated by Normalize_Arguments.
25954 (Collect_Arguments): Eliminate empty arguments
25955
25956 * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
25957 and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
25958 (Check_Project): Return False when Project is No_Project. Return True
25959 when All_Projects is True.
25960 (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
25961 All_Projects to True.
25962 Minor reformatting
25963
259642005-06-14 Ed Schonberg <schonberg@adacore.com>
25965 Javier Miranda <miranda@adacore.com>
25966 Thomas Quinot <quinot@adacore.com>
25967 Robert Dewar <dewar@adacore.com>
25968 Hristian Kirtchev <kirtchev@adacore.com>
25969 Gary Dismukes <dismukes@adacore.com>
25970
25971 * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
25972 anonymous access types, to indicate that the accessibility level of
25973 the type is determined by that of the enclosing declaration.
25974 (Has_Persistent_BSS): New flag
25975 (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
25976 of this attribute with functions.
25977 (Is_Primitive_Wrapper): Remove the barrier.
25978 (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
25979 Has_Specified_Stream_Read, Has_Specified_Stream_Write):
25980 New subprograms.
25981 (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
25982 Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
25983 New subprograms.
25984 (Is_Pure_Unit_Access_Type): New flag
25985 (Abstract_Interfaces): Complete the assertion to cover all usages.
25986 (Set_Is_Interface): Complete the assertion to cover all usages.
25987 (Is_Primitive_Wrapper): New attribute.
25988 (Is_Obsolescent): Now applies to all entities (though it is only set
25989 for subprograms currently)
25990 New flag: Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
25991 which solves various problems concerning access subtypes.
25992 (Has_Persistent_BSS): New flag
25993 (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
25994 Remove these subprograms because this attribute is currently
25995 not used.
25996 New entity flags:
25997 Has_Specified_Stream_Input (Flag190)
25998 Has_Specified_Stream_Output (Flag191)
25999 Has_Specified_Stream_Read (Flag192)
26000 Has_Specified_Stream_Write (Flag193)
26001 Present in all type and subtype entities. Set for a given view if the
26002 corresponding stream-oriented attribute has been defined by an
26003 attribute definition clause. When such a clause occurs, a TSS is set
26004 on the underlying full view; the flags are used to track visibility of
26005 the attribute definition clause for partial or incomplete views.
26006 (Is_Pure_Unit_Access_Type): New flag
26007 Clarify use of Is_Internal.
26008 (Is_Primitive_Wrapper): New attribute present in primitive subprograms
26009 internally generated to wrap the invocation of tasks and protected
26010 types that implement interfaces.
26011 (Implementation_Base_Type): Documentation correction
26012 (Is_Obsolescent): Now applies to all entities (though it is only set
26013 for subprograms currently)
26014 New flag: Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
26015 which solves various problems concerning access subtypes.
26016
26017 * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
26018 for examined parameters. Identify unequal parameter list lengths as
26019 non-conformant parameters.
26020 (Overriding_Possible): Do not check for "All" qualifier in declaration
26021 of controlling access parameter, following prescription of AI-404.
26022 (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
26023 that build the procedure body that wraps an entry invocation
26024 (Build_Corresponding_Record, Build_Protected_Sub_Specification,
26025 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
26026 Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
26027 give support to abstract interface types
26028
26029 * freeze.adb (Freeze_Entity): Issue error message if
26030 Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
26031 type has no storage pool (Ada 2005) AI-366.
26032 Also modified to give support to abstract interface types
26033 (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
26034 Inline_Always pragma.
26035
26036 * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
26037 now begin an entry declaration.
26038 (P_Entry_Or_Subprogram_With_Indicator): New procedure in
26039 P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
26040 a subprogram declaration preceded by an overriding indicator.
26041 (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
26042 declarations or subprogram declarations preceded by reserved words
26043 "not" or "overriding".
26044 (P_Entry_Declaration): Update comment. Parse and check overriding
26045 indicator, set semantic flags of entry declarations.
26046 (P_Task): New error message in case of private applied
26047 to a task type declaration.
26048 (P_Protected): New error message in case of private applied
26049 to a task type declaration.
26050
26051 * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
26052 in which the full view of a type implementing an interface is a
26053 concurrent type.
26054 (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
26055 Declare_Inherited_Private_Subprograms): If an explicit operation
26056 overrides an operation that is inherited in the private part, mark the
26057 explicit one as overriding, to enable overriding indicator checks.
26058 (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
26059 full view to partial view, to simplify handling in back-end.
26060
26061 * sprint.adb: Print interface lists where needed: derived types,
26062 protected types, task types.
26063 output "is null" for null procedures. Part of implementation of
26064
26065 * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
26066 relaxation of rules for access types in pure, shared passive partitions.
26067
26068 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
26069 first read discriminants into temporary objects, performing checks on
26070 the read values, then possibly performing discriminant checks on the
26071 actual (if it is constrained), and only finally reading the components
26072 into a constrained temporary object.
26073 (Build_Elementary_Input_Call): Adjust the specific circuitry for the
26074 case of reading discriminants of a mutable record type to recognize
26075 the new form of the code generated by
26076 Build_Mutable_Record_Read_Procedure.
26077
26078 * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
26079 of a simple call to Make_TSS_Name.
26080 (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
26081 buffer, in order for Is_TSS to work correctly on local TSS names.
26082
26083 * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
26084 Is_Local_Anonymous_Access to check legaliy of attributes in the
26085 context of access components and stand-alone access objects.
26086 (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
26087 treated as available for a limited private type if there is an
26088 attribute_definition_clause that applies to its full view, but not in
26089 other cases where the attribute is available for the full view
26090 (specifically, the sole fact that the full view is non-limited does not
26091 make the attribute available for the partial view).
26092 (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
26093 non-overloaded intrinsic subprogram.
26094 (Check_Stream_Attribute): Reject an attribute reference for an
26095 unavailable stream attribute even if the prefix is not a limited type
26096 (case of a 'Input attribute reference for an abstract, non-classwide
26097 type)
26098 (Stream_Attribute_Available): New function to determine whether a stream
26099 attribute is available at a place.
26100 (Check_Attribute): Use Stream_Attribute_Available instead of just
26101 testing for TSS presence on the implementation base type.
26102 (Analyze_Attribute): Modified to give support to task interfaces.
26103 (Analyze_Access_Attribute): Add error check for use of an Access (or
26104 Unrestricted_Access) attribute with a subprogram marked as
26105 Inline_Always.
26106 (Analyze_Attribute, case Attribute_Address): Add error check for use of
26107 an Address attribute with a subprogram marked as Inline_Always.
26108 Update Eval_Attribute to handle new value of Width from AI-395
26109
26110 * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
26111 (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
26112 Factor common code across the stream-oriented attribute circcuits into
26113 a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
26114 processing is functionally identical to the previous duplicated one,
26115 except that an expression that denotes an abstract subprogram will now
26116 be rejected, as mandated by AI-195 item 5.
26117
26118 * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
26119 Is_Local_Anonymous_Access to apply accessibility checks to access
26120 components and stand-alone access objects.
26121 (Has_Discriminant_Dependent_Constraint): Moved to spec for use
26122 elsewhere.
26123 (Is_Potentially_Persistent_Type): New function
26124 (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
26125 a heap-object whose type has a constrained partial view, the object is
26126 unconstrained and the component may depend on a discriminant, making its
26127 renaming illegal.
26128
26129 * sinfo.ads, sinfo.adb
26130 (Must_Not_Override): Flag applicable to N_Entry_Declaration.
26131 (Must_Override): Flag applicable to N_Entry_Declaration.
26132 Indicate that interface_list can appear in single task and single
26133 protected declarations.
26134 Replace Is_Overriding and Not_Overriding with Must_Override and
26135 Must_Not_Override, to better express intent of AI.
26136 Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
26137 of an overriding indicator in a subprogram or instance.
26138 Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
26139 Add the overriding indicator [[not] overriding] construct to the
26140 following grammar productions:
26141 ENTRY_DECLARATION
26142 GENERIC_INSTANTIATION
26143 SUBPROGRAM_SPECIFICATION
26144
26145 * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
26146 can start with an overriding indicator.
26147
26148 * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
26149 flags accordingly on subrogram specifications or instances.
26150
da8f5fd9 26151 * sem_ch8.adb:
0adcdb66
AC
26152 (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
26153 overriding_indicator, if present, is consistent with status of spec.
26154 Improve error message for null-excluding checks on controlling access
26155 parameters.
26156 (Check_In_Previous_With_Clause): Protect the frontend against
26157 previously reported critical errors in the context clauses.
26158 Save and restore Ada_Version_Explicit, for implementation of AI-362
26159 (Analyze_Subprogram_Renaming): If the new entity is a dispatching
26160 operation verify that controlling formals of the renamed entity that
26161 are access parameters are explicitly non-null.
26162 (Find_Expanded_Name): Improve error message when prefix is an illegal
26163 reference to a private child unit.
26164
26165 * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
da8f5fd9 26166 s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
0adcdb66
AC
26167 Rewrite to correspond to new wide character names in AI-395
26168
6f7f72f9
EB
26169 * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
26170 default procedures.
0adcdb66
AC
26171
261722005-06-14 Ed Schonberg <schonberg@adacore.com>
26173 Robert Dewar <dewar@adacore.com>
26174
26175 * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
26176 code, not on the bodies of predefined operations, to cut down on
26177 spurious noise.
26178
261792005-06-14 Ed Schonberg <schonberg@adacore.com>
26180
26181 * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
26182 be expanded in place. The size computation does not require a
26183 subtraction, which would raise an exception on a compiler built with
26184 assertions when the upper bound is Integer'first.
26185 (Flatten): For an array of composite components, take into account the
26186 size of the components to determine whether it is safe to expand the
26187 array into a purely positional representation.
26188
261892005-06-14 Thomas Quinot <quinot@adacore.com>
26190
26191 * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
26192 denoting a formal parameter into account.
26193
261942005-06-14 Ed Schonberg <schonberg@adacore.com>
26195
26196 * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
26197 the entry_call alternative of a conditional entry call, wrap the
26198 conditional entry call itself.
26199
262002005-06-14 Nicolas Setton <setton@adacore.com>
26201 Ed Schonberg <schonberg@adacore.com>
26202
26203 * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
26204 the "simple_choice" member in a variant record, in accordance with the
26205 description in the package spec: the information output for a constant
26206 should be "S number", not "SS number".
26207 (Get_Encoded_Name): Return at once if not generating code. Avoids name
26208 overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
26209
262102005-06-14 Thomas Quinot <quinot@adacore.com>
26211
26212 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
26213 RACW without any primitives, do not generate the if statement for
26214 dispatching by name in the PolyORB/DSA case, as it would be malformed
26215 (it would have an Elsif_Parts list that is not No_List, but with a
26216 length of 0).
26217
262182005-06-14 Robert Dewar <dewar@adacore.com>
26219
26220 * exp_intr.adb, par-ch5.adb: Minor fix to error message text
26221
262222005-06-14 Jose Ruiz <ruiz@adacore.com>
26223
26224 * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
26225 can determine whether pragma Suppress_Exception_Locations is in effect.
26226
26227 * utils2.c (build_call_raise): Do not pass the file name to the
26228 exception handler if pragma Suppress_Exception_Locations is in effect.
26229 (build_allocator): Add and process arg IGNORE_INIT_TYPE.
26230
262312005-06-14 Emmanuel Briot <briot@adacore.com>
26232
26233 * g-debpoo.adb (Deallocate, Dereference): Improve output.
26234
262352005-06-14 Nicolas Roche <roche@adacore.com>
26236
26237 * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
26238 to ""
26239 (Next_Level): Fix minor bug in handling of ../dir case
26240 (Read): Add dir separator to Directory name so that "" is understood as
26241 "/"
26242
262432005-06-14 Pascal Obry <obry@adacore.com>
26244
26245 * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
26246 releasing the items.
26247
262482005-06-14 Vincent Celier <celier@adacore.com>
26249 Cyrille Comar <comar@adacore.com>
26250
26251 * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
26252 with output file descriptor and with output file name.
26253 (Dup, Dup2): Now global procedures as they are used by two subprograms
26254 (Copy): Allocate the 200K buffer on the heap rather than on the stack.
26255
262562005-06-14 Thomas Quinot <quinot@adacore.com>
26257
26258 PR ada/6717
0adcdb66
AC
26259 * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
26260 broadcast address.
26261 (Create_Selector): Bind listening socket used to create the signalling
26262 socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
26263 Set listen backlog to 1 to ensure that we detect socket theft by a
26264 failure of our own connect(2) call.
26265 (Check_Selector): Improve documentation of the selector mechanism.
26266 (Broadcast_Inet_Addr): New constant.
26267
262682005-06-14 Gary Dismukes <dismukes@adacore.com>
26269
26270 * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
26271 type which turns out to be an incomplete and incorrect fix.
26272 (Layout_Array_Type): Use Underlying_Type when checking whether the scope
26273 of the type is declared in a record (for determination of insertion
26274 type).
26275 (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
26276 a private type and ensure that the primary entity is used for the type
26277 of the newly created function's V formal by taking the Etype of the
26278 view.
26279
262802005-06-14 Javier Miranda <miranda@adacore.com>
26281 Jose Ruiz <ruiz@adacore.com>
26282 Robert Dewar <dewar@adacore.com>
26283 Ed Schonberg <schonberg@adacore.com>
26284
26285 * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
26286 that indicates if we are parsing a compilation unit found in a
26287 limited-with clause.
26288 It is use to avoid the circularity check.
26289
26290 * par.ads, par.adb (Par): Addition of a new parameter to indicate if
26291 we are parsing a compilation unit found in a limited-with clause. This
26292 is use to avoid the circularity check.
26293
26294 * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
26295 unit as a consequence of parsing a limited-with clause. This is used
26296 to avoid the circularity check.
26297
26298 * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
26299 (Analyze_Context): Limited-with clauses are now allowed
26300 in more compilation units.
26301 (Analyze_Subunit_Context, Check_Parent): Protect the frontend
26302 againts previously reported critical errors in context clauses
26303 (Install_Limited_Withed_Unit): Code cleanup plus static detection
26304 of two further errors: renamed subprograms and renamed packages
26305 are not allowed in limited with clauses.
26306 (Install_Siblings): Do not install private_with_clauses on the package
26307 declaration for a non-private child unit.
26308 (Re_Install_Parents): When a parent of the subunit is reinstalled,
26309 reset visibility of child units properly.
26310 (Install_Withed_Unit): When a child unit appears in a with_clause of its
26311 parent, it is immediately visible.
26312
263132005-06-14 Ed Schonberg <schonberg@adacore.com>
26314 Emmanuel Briot <briot@adacore.com>
26315
26316 * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
26317 declared within an inlined body as referenced, to prevent spurious
26318 warnings.
26319 (Output_One_Ref): If an entity renames an array component, indicate in
26320 the ALI file that this aliases (renames) the array. Capture as well
26321 function renamings that rename predefined operations.
26322 Add information about generic parent for package and subprogram
26323 instances.
26324 (Get_Type_Reference): For a subtype that is the renaming of an actual in
26325 an instantiation, use the first_subtype to ensure that we don't generate
26326 cross-reference information for internal types.
26327 For objects and parameters of a generic private type, retain the '*'
26328 indicator to distinguish such an entity from its type.
26329
6f7f72f9
EB
26330 * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
26331 to store information about instantiated entities.
0adcdb66 26332
6f7f72f9
EB
26333 * ali.adb (Scan_ALI): Add support for parsing the reference to the
26334 generic parent
0adcdb66 26335
6f7f72f9
EB
26336 * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
26337 (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
26338 information.
0adcdb66
AC
26339
263402005-06-10 Doug Rupp <rupp@adacore.com>
26341 Arnaud Charlet <charlet@adacore.com>
26342 Olivier Hainque <hainque@adacore.com>
26343 Jose Ruiz <ruiz@adacore.com>
26344
26345 * Make-lang.in: Add initialize.o when needed.
26346 Remove obsolete references to RT_FLAGS.
26347 Add missing dependencies for sdefault.o
26348
26349 * initialize.c: New file.
26350
26351 * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
26352 [VMS] cond_signal_table: Fix problem in declaration.
26353 [VMS] __gnat_error_handler: rewrite.
26354 Move all __gnat_initialize() routines to initialize.c
26355 Specialize the former "hpux" section to "hppa hpux", as this is what the
26356 section really is here for and we now have other hpux ports that need
26357 different contents.
26358 (__gnat_adjust_context_for_raise) i386-linux: First version of this
26359 function for this target. Adjust PC by one in the machine context. This
26360 adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
26361 it is more reliable to do that in the signal handler itself.
26362 (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
26363 flags, so that the handler is passed the context structure to adjust
26364 prior to the raise.
26365 (__gnat_error_handler) i386-linux: Adjust the signature to match what a
26366 SA_SIGINFO sigaction should look like. Call
26367 __gnat_adjust_context_for_raise before actually raising. Cleanup unused
26368 Machine_State_Operations stuff.
26369 Add conditional code so that the x86_64 is also supported.
26370
263712005-06-14 Pascal Obry <obry@adacore.com>
26372
26373 * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
26374 the library name.
26375
263762005-06-14 Robert Dewar <dewar@adacore.com>
26377
26378 * opt.ads, opt.adb: New flags for persistent_bss mode
26379 Add Ada_Version_Explicit, for implementation of AI-362
26380 Add Assertions_Enabled_Config and associated handling
26381 Needed since setting can be changed with Assertion_Policy pragma
26382 Add new flag Warn_On_Ada_2005_Compatibility
26383
26384 * switch-c.adb: Recognize -gnatwy/Y
26385 Set Ada_Version_Explicit, for implementation of AI-362
26386 The -gnatg switch now includes -gnatyu
26387
26388 * usage.adb: Add -gnatwy/Y
26389 Remove wrong asterisk on -gnatwX line
26390 Add line for -gnatyu switch
26391
263922005-06-14 Vincent Celier <celier@adacore.com>
26393
26394 * osint.adb (Add_Default_Search_Dirs): Put source and object
26395 directories of project files before directories coming from
26396 ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
26397
263982005-06-14 Robert Dewar <dewar@adacore.com>
26399
26400 PR ada/15613
0adcdb66
AC
26401 * par-ch2.adb (Scan_Pragma_Argument): New procedure
26402 (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
26403
264042005-06-14 Vincent Celier <celier@adacore.com>
26405
26406 * prep.adb (Preprocess): Ignore error when scanning the first token of
26407 a line.
26408
264092005-06-14 Vincent Celier <celier@adacore.com>
26410
26411 * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
26412 (Check_Stand_Alone_Library): If the specified reference symbol file does
26413 not exist, only issue a warning when the symbol policy is not
26414 Controlled. And, when symbol policy is Compliant, set the symbol
26415 policy to Autonomous.
26416
264172005-06-14 Vincent Celier <celier@adacore.com>
26418
26419 * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
26420 when the project file in a with clause is not the last one, that is the
26421 project file name is followed by a comma.
26422 * prj-pp.adb: (First_With_In_List): New Boolean global variable
26423 (Print): Issue list of project files separated by commas in with clauses
26424 according to the values returned by Is_Not_Last_In_List.
26425 * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
26426 (Set_Is_Not_Last_In_List): New procedure
26427
264282005-06-14 Eric Botcazou <ebotcazou@adacore.com>
26429
26430 * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
26431
264322005-06-14 Robert Dewar <dewar@adacore.com>
26433
26434 * scng.adb: Add call to new Check_EOF routine
26435 (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
26436 Add some comments regarding wide character handling
26437
26438 * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
26439
26440 * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
26441
26442 * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
26443 characters are now considered graphic characters and hence yield false
26444 in this call.
26445
6f7f72f9
EB
26446 * nmake.adt: Modify header so that xnmake does not generate output
26447 files with multiple blank lines.
0adcdb66 26448
6f7f72f9
EB
26449 * treeprs.adt: Remove a blank line so that output from xtreeprs does
26450 not have an extra blank line
0adcdb66
AC
26451
264522005-06-14 Gary Dismukes <dismukes@adacore.com>
26453
26454 * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
26455 expression when the component type is an anonymous access type to
26456 ensure that appropriate accessibility checks are done.
26457
26458 * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
26459 expression of an assignment when the target object is of an anonymous
26460 access type. This ensures that required accessibility checks are done.
26461 (One_Bound): Move the check for type Universal_Integer to
26462 Process_Bounds.
26463 (Process_Bounds): Check whether the type of the preanalyzed range is
26464 Universal_Integer, and in that case set Typ to Integer_Type prior
26465 to setting the type of the original range and the calls to One_Bound.
26466
264672005-06-14 Ed Schonberg <schonberg@adacore.com>
26468
26469 * sem_case.adb (Expand_Others_Choice): Improve warning.
26470
264712005-06-14 Ed Schonberg <schonberg@adacore.com>
26472
26473 * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
26474 constraint of full view if present, when other type is discriminated.
26475 (Eval_Relational_Op): Recognize tests of pointer values against Null,
26476 when the pointer is known to be non-null, and emit appropriate warning.
26477
264782005-06-14 Robert Dewar <dewar@adacore.com>
26479 Ed Schonberg <schonberg@adacore.com>
26480
26481 PR ada/10671
0adcdb66
AC
26482 * sem_prag.adb: Implement pragma Persistent_BSS
26483 Remove obsolete pragma Persistent_Data, Persistent_Object
26484 Set Ada_Version_Explicit, for implementation of AI-362
26485 Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
26486 Add processing for pragma Pure_05 and Preelaborate_05
26487 Add processing for Assertion_Policy pragma
26488 Add pragma identifiers for Assert
26489 (Analyze_Pragma, case Assert): Check number of arguments
26490 (Process_Inline): Additional guard against an illegal program, where the
26491 argument of the pragma is undefined, and warnings on redundant
26492 constructs are enabled.
26493 (Analyze_Pragma, case Obsolescent): Allow an optional second argument
26494 Ada_05 to this pragma, specifying that the pragma is only active in
26495 Ada_05 mode.
26496 (Check_Arg_Order): New procedure
26497 Add appropriate calls to this procedure throughout
26498 Also throughout, check entity name before doing any other checks
26499
26500 * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
26501 Remove obsolete pragma Persistent_Data, Persistent_Object
26502 Add entries for pragma Pure_05 and Preelaborate_05
26503 Add entries for Assertion_Policy pragma and associated names
26504 Add some names for pragma argument processing
26505
26506 * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
26507
265082005-06-14 Ed Schonberg <schonberg@adacore.com>
26509
26510 * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
26511 appears within a negation (either from source or as a rewriting of
26512 inequality) adjust text of warning accordingly.
26513
265142005-06-14 Thomas Quinot <quinot@adacore.com>
26515
26516 * s-strxdr.adb: Follow AI95-00132
26517
265182005-06-14 Arnaud Charlet <charlet@adacore.com>
26519
26520 * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
26521
265222005-06-14 Arnaud Charlet <charlet@adacore.com>
26523 Jose Ruiz <ruiz@adacore.com>
26524
26525 * s-tposen.adb, s-tpobop.adb
26526 (Exceptional_Complete_Rendezvous): Save the occurrence and not only
26527 the exception id.
26528 (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
26529 there is no violation of the Max_Entry_Queue_Length restriction (if it
26530 has been set); Program_Error is raised otherwise.
26531 (Requeue_Call): Before requeuing the task on the target entry queue we
26532 check that there is no violation of the Max_Entry_Queue_Length
26533 restriction (if it has been set); Program_Error is raised otherwise.
26534
265352005-06-14 Robert Dewar <dewar@adacore.com>
26536
26537 * styleg.adb: Fix several remaining problems in -gnatyu switch
26538 Blank line count not reset at start
26539 Scanning outside source buffer in some cases
26540 Confusing message for blanks at end of file
26541 Non-empty blank lines not recognized
26542
26543 * nmake.adt: Modify header so that xnmake does not generate output
26544 files with multiple blank lines.
26545
6f7f72f9
EB
26546 * treeprs.adt: Remove a blank line so that output from xtreeprs does
26547 not have an extra blank line
0adcdb66
AC
26548
265492005-06-14 Sergey Rybin <rybin@adacore.com>
26550
26551 * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
26552
265532005-06-14 Doug Rupp <rupp@adacore.com>
26554 Vincent Celier <celier@adacore.com>
26555
26556 * vms_conv.ads, vms_conv.adb: Remove "Library" command.
26557 Update copyright.
26558
26559 * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
26560 Remove "Library" command.
26561 Change keyword for style check -gnatyd from NOCRLF to
26562 DOS_LINE_ENDINGS.
26563 Remove useless second style check keyword NONE
26564 Remove help documentation for inexistent style check keyword
26565 RM_COLUMN_LAYOUT.
26566 Add help documentation for style check keywords DOS_LINE_ENDINGS,
26567 UNNECESSARY_BLANK_LINES and XTRA_PARENS
26568 Add UNNECESSARY_BLANK_LINES for -gnatyu
26569 Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
26570
6f7f72f9 26571 * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
0adcdb66
AC
26572
265732005-06-14 Vincent Celier <celier@adacore.com>
26574
26575 * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
26576 gprmake was invoked with -d.
26577 (Compile_Sources): If -d was used, output the "completed ..." message
26578 for each compilation.
26579 (Scan_Arg): Recognize new switch -d
26580 When -c and at least one main is specified, set
26581 Unique_Compile to True to guarantee that no other sources will be
26582 compiled.
26583
265842005-06-14 Matthew Heaney <heaney@adacore.com>
26585
26586 * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
26587 * a-swuwha.ads, a-swuwha.adb: New files
26588
26589 * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
26590 * a-szuzha.ads, a-szuzha.adb: New files.
26591
26592 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
da8f5fd9
AJ
26593 a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
26594 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
26595 a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
26596 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
0adcdb66 26597 a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
da8f5fd9 26598 a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
0adcdb66
AC
26599 a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
26600 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
26601 a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
26602 Ada 2005 RM.
26603
266042005-06-10 Eric Botcazou <ebotcazou@adacore.com>
26605 Olivier Hainque <hainque@adacore.com>
26606 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26607 Pascal Obry <obry@adacore.com>
26608
26609 * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
26610
26611 * trans.c (call_to_gnu): Issue a warning for users of Starlet when
26612 making a temporary around a procedure call because of non-addressable
26613 actual parameter.
26614 (process_freeze_entity): If entity is a private type, capture size
26615 information that may have been computed for the full view.
26616 (tree_transform, case N_Allocator): If have initializing expression,
26617 check type for Has_Constrained_Partial_View and pass that to
26618 build_allocator.
26619 (tree_transform, case N_Return_Statement): Pass extra arg to
26620 build_allocator.
26621
26622 * decl.c (annotate_value): Remove early return if -gnatR is not
26623 specified.
26624 (gnat_to_gnu_field): Don't make a packable type for a component clause
26625 if the position is byte aligned, the field is aliased, and the clause
26626 size isn't a multiple of the packable alignment. It serves no useful
26627 purpose packing-wise and would be rejected later on.
26628 (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
26629
26630 PR ada/20515
26631 (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
26632 context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
26633 instead.
26634 (create_concat_name): Idem.
26635
266362005-06-10 Robert Dewar <dewar@adacore.com>
26637 Eric Botcazou <ebotcazou@adacore.com>
26638 Ben Brosgol <brosgol@adacore.com>
26639 Cyrille Comar <comar@adacore.com>
26640 Sergey Rybin <rybin@adacore.com>
26641 Pascal Obry <obry@adacore.com>
26642
26643 * gnat_rm.texi: Add documentation for pragma Persistent_BSS
26644 Document second argument (Ada_05) of pragma Obsolescent
26645 Add note that call to subprogram marked with pragma Obsolescent
26646 is now considered to be a violation of program Restrictions
26647 (No_Obsolescent_Features).
26648 (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
26649 that only machine-dependent attributes are supported.
26650
da8f5fd9 26651 * gnat_ugn.texi:
0adcdb66
AC
26652 Commented out menu lines and empty section for gnatclean examples
26653 Document -gnatwy/Y
26654 Fix some over long lines
26655 Clarify and enhance documentation of ADA_PROJECT_PATH.
26656 Rework section 2.11.2(3) about linking with a non-GNU compiler.
26657 Mention new switch -fcallgraph-info.
26658 Mention new switch -fstack-usage.
26659 For gnatpp, replace '-notab' with '-N' and add this option to Index
26660 Corrected VMS example.
26661 VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
26662 Minor reformatting
26663 Add documentation for -gnatyu switch (unnecessary blank lines)
26664 Document new switch -U for GNAT PRETTY and GNAT METRIC
26665 Add note about Stdcall being handled as C convention on non Windows OS.
26666 Remove some junk typo in description of gnatbind -S switch
26667 Remove reference to Extensions_Allowed pragma
26668 Document the new order of the directories to be searched (source and
26669 object directories of project files before directories in ADA_*_PATH
26670 environment variables.
26671
6f7f72f9 26672 * g-trasym.ads: Document that IRIX is supported
0adcdb66
AC
26673
266742005-06-10 Arnaud Charlet <charlet@adacore.com>
26675
26676 * Makefile.in: Add initialize.o when needed.
26677 Adapt to new VMS package body Symbols and subunits
26678 No specialized version of a-sytaco is needed for VxWorks.
26679
26680 * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
26681 * a-zchara.ads, a-widcha.ads: New files.
26682
26683 * system-hpux-ia64.ads: New file.
26684
26685 * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
26686 is imported from the VxWorks kernel.
26687
266882005-06-14 Robert Dewar <dewar@adacore.com>
26689
26690 * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
26691 fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
26692 a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
26693 s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
26694 a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
26695 g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
26696 i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
26697 namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
26698 sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
26699 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
26700 s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
26701 xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
26702
267032005-06-14 Thomas Quinot <quinot@adacore.com>
26704
26705 * xeinfo.adb: Fix typo in comment
26706
267072005-06-14 Javier Miranda <miranda@adacore.com>
26708
26709 * repinfo.ads: Fix typo in comment
26710
267112005-06-14 Gary Dismukes <dismukes@adacore.com>
26712
26713 * s-finimp.adb (Parent_Tag): Delete this imported function (function
26714 Parent_Tag is now in the visible part of Ada.Tags).
26715 (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
26716 using imported function.
26717
267182005-06-14 Bernard Banner <banner@adacore.com>
26719
26720 * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
26721 also apply for handling support for VxSim 653.
26722
267232005-06-14 Eric Botcazou <ebotcazou@adacore.com>
26724
26725 * xsnames.adb: Add automatic generation of snames.h.
26726
267272005-06-14 Thomas Quinot <quinot@adacore.com>
26728
26729 * gen-soccon.c: Add IP_MULTICAST_IF constant
26730 Minor reformatting and adjustments to prevent warnings.
26731
267322005-06-14 Pascal Obry <obry@adacore.com>
26733
26734 * seh_init.c: Do not include <sys/stat.h>. This is not needed.
26735
e0d161cf
AP
267362005-06-03 Andrew Pinski <pinskia@physics.uc.edu>
26737
26738 * trans.c (gnat_gimplify_expr): Call
26739 recompute_tree_invarant_for_addr_expr when we change
26740 the operand of the ADDR_EXPR.
26741
4c714dd4
KG
267422005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26743
26744 * misc.c: Don't include errors.h.
26745
7b9997f3
KG
267462005-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26747
26748 * raise.c (db): Add ATTRIBUTE_PRINTF_2.
26749
5ff62c2e
KH
267502005-05-29 Kazu Hirata <kazu@cs.umass.edu>
26751
26752 * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
26753 comment typos.
26754 * gnat_rm.texi, gnat_ugn.texi: Fix typos.
26755
9e94c78f 267562005-05-16 Nathanael Nerode <neroden@gcc.gnu.org>
8b37cc64
NN
26757
26758 PR ada/20270
26759 * Makefile.in: Make TGT_LIB behave correctly.
26760
d4ee4d25
DD
267612005-04-23 DJ Delorie <dj@redhat.com>
26762
26763 * misc.c: Adjust warning() callers.
26764
9e94c78f 267652005-04-16 Laurent Guerby <laurent@guerby.net>
159921c0 26766
6f7f72f9
EB
26767 PR ada/18847
26768 * a-nudira.adb (Value): Check for valid string.
26769 * a-nuflra.adb (Value): Likewise.
159921c0 26770
0b026622
RS
267712005-04-11 Richard Sandiford <rsandifo@redhat.com>
26772
26773 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
26774
bde83138
KH
267752005-04-10 Kazu Hirata <kazu@cs.umass.edu>
26776
26777 * adaint.c, init.c, tracebak.c: Fix comment typos.
26778 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
26779
9e94c78f 267802005-04-07 Laurent Guerby <laurent@guerby.net>
ad9945b5
LG
26781 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26782
26783 * Makefile.in: Add make ifeq define for hppa linux tasking support.
26784 * system-hpux.ads: Define Signed_Zeros to be True.
26785 * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
26786
45f7cb60
KH
267872005-04-01 Kazu Hirata <kazu@cs.umass.edu>
26788
26789 * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
26790 raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
26791 typos.
26792
5662a50d
TT
267932005-03-30 Tom Tromey <tromey@redhat.com>
26794
26795 * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
26796
e6e375cc
AL
267972005-03-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
26798
26799 * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
26800
5db8bc34
AC
268012005-03-29 Robert Dewar <dewar@adacore.com>
26802
26803 * sem_res.adb (Resolve_Real_Literal): Generate warning if static
26804 fixed-point expression has value that is not a multiple of the Small
26805 value.
26806
26807 * opt.ads (Warn_On_Bad_Fixed_Value): New flag
26808
26809 * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
26810 nanoseconds.
26811
26812 * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
26813
268142005-03-29 Vincent Celier <celier@adacore.com>
26815
26816 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
26817 (Build_Dynamic_Library.Version_String): Return the empty string when
26818 Lib_Version is empty or when the symbol policy is not Autonomous.
26819
26820 * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
26821 a symbol is not in the reference symbol file, increase the Major ID
26822 and set the Minor ID to 0.
26823 Use gsmatch=lequal instead of gsmatch=equal
26824
268252005-03-29 Doug Rupp <rupp@adacore.com>
26826
26827 * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
26828 name and translate.
26829
268302005-03-29 Javier Miranda <miranda@adacore.com>
26831
26832 * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
26833 (Inherit_DT): The first formal has been redefined as a Tag.
26834 This allows us the removal of the subprogram Get_TSD.
26835 (TSD): Replace the call to Get_TSD by the actual code.
26836
26837 * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
26838 (Make_DT): Upgrade the call to Inherit_TSD according to the
26839 new interface: the first formal is now a Tag.
26840
26841 * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
26842 redefined as a Tag.
26843 This change allows us to remove the subprogram Get_TSD.
26844 (CPP_Get_TSD): Subprogram removed.
26845 (TSD): Replace the call to CPP_Get_TSD by the actual code.
26846
26847 * rtsfind.ads: Remove support to call the run-time
26848 subprogram Get_TSD
26849
268502005-03-29 Robert Dewar <dewar@adacore.com>
26851
da8f5fd9 26852 * errutil.adb, errout.adb:
5db8bc34
AC
26853 Minor comment updates on Line_Terminator references
26854
26855 * par-ch10.adb: Add ??? comment about line terminator
26856
26857 * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
26858 (check dos line terminator).
26859 (Check_Line_Max_Length): New procedure, split off from the existing
26860 Check_Line_Terminator routine. Separating this out allows -gnatyf to
26861 be properly recognized.
26862
26863 * styleg.adb: Add ??? comment for line terminator reference
26864
26865 * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
26866 (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
26867
26868 * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
26869 (check dos line terminator).
26870 (Check_Line_Max_Length): New procedure, split off from the existing
26871 Check_Line_Terminator routine. Separating this out allows -gnatyf to
26872 be properly recognized.
26873
da8f5fd9 26874 * stylesw.ads, stylesw.adb:
5db8bc34
AC
26875 Add handling for new -gnatyd switch (check dos line terminator)
26876
26877 * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
26878 Recognize -gnatwb/-gnatwB switches
26879 Include Warn_On_Bad_Fixed_Value for -gnatg
26880
da8f5fd9 26881 * usage.adb:
5db8bc34
AC
26882 Add line for new -gnatyd switch (check dos line terminator)
26883
26884 * usage.adb: Add lines for -gnatwb/-gnatwB
26885
26886 * vms_data.ads: Add entry for NOCRLF (-gnatyd)
26887
26888 * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
26889
26890 * gnat_ugn.texi: Fix overlong lines
26891 Document new -gnatyd switch
26892 Document new -gnatwb/-gnatwB switches
26893
268942005-03-29 Ed Schonberg <schonberg@adacore.com>
26895
26896 * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
26897 order to retrieve the component list of the type, before examining
26898 individual components.
26899
26900 * sem_type.adb (Covers): Types are compatible if one is the base type
26901 of the other, even though their base types might differ when private
26902 views are involved.
26903
269042005-03-29 Thomas Quinot <quinot@adacore.com>
26905
26906 * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
26907 To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
26908 of using Set_Renaming_TSS. This ensures that the TSS bodies are not
26909 analyzed if expansion is disabled (which could otherwise cause spurious
26910 error messages if expansion has been disabled due to previous
26911 (unrelated) errors).
26912
26913 * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
26914 is disabled, the entity denoted by the argument is the access type
26915 itself, not an underlying record type, so there is no need to go back
26916 to the Corresponding_Remote_Type.
26917
269182005-03-29 Gary Dismukes <dismukes@adacore.com>
26919 Robert Dewar <dewar@adacore.com>
26920
26921 * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
26922 expand a call to an instance of
26923 Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
26924 Constructor actual of the instance. A class-wide membership
26925 check is also generated, to ensure that the tag passed to the instance
26926 denotes a type in the class.
26927 (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
26928 of Name_Generic_Dispatching_Constructor.
26929
26930 * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
26931 05 unit for AI-260-02).
26932
26933 * a-tgdico.ads: New file.
26934
26935 * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
26936 predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
26937
26938 * snames.ads, snames.adb (Preset_Names): Add entry for
26939 Generic_Dispatching_Constructor.
26940
26941 PR ada/20300
5db8bc34
AC
26942 * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
26943 character type cases.
26944 (Analyze_Subprogram_Renaming): Add special handling for
26945 the case of renaming of stream attributes when the renaming denotes a
26946 generic formal subprogram association for an abstract formal subprogram.
26947 Check that the attribute is a primitive stream attribute (and not
26948 a class-wide stream attribute) and then rewrite the attribute name
26949 as the name of the appropriate compiler-generated stream primitive.
26950
269512005-03-29 Robert Dewar <dewar@adacore.com>
26952
26953 * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
26954 recursive calls.
26955 (Is_Possibly_Unaligned_Object): Correct typo that
26956 resulted in inaccurate result for unaligned scalars within records.
26957
269582005-03-29 Ed Schonberg <schonberg@adacore.com>
26959
26960 * freeze.adb (Freeze_Record_Type): If the type of the component is an
26961 itype whose parent is controlled and not yet frozen, do not create a
26962 freeze node for the itype if expansion is disabled.
26963
269642005-03-29 Vincent Celier <celier@adacore.com>
26965
26966 * make.adb (Gnatmake): Don't fail if the main project file is declared
26967 as having no Ada sources. Do not display message "no sources to
26968 compile" in quiet output.
26969
269702005-03-29 Doug Rupp <rupp@adacore.com>
26971
26972 * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
26973 extra tools.
26974
269752005-03-29 Robert Dewar <dewar@adacore.com>
26976
26977 * par-ch12.adb (P_Generic): Give better msg for illegal private generic
26978 child.
26979
269802005-03-29 Robert Dewar <dewar@adacore.com>
26981
26982 * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
26983 missing TYPE Improve the error message generated when compiling a
26984 limited interface in Ada83 or Ada95 mode.
26985
269862005-03-29 Robert Dewar <dewar@adacore.com>
26987
26988 * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
26989 rather than proceed ahead using a junk attribute name.
26990
269912005-03-29 Vincent Celier <celier@adacore.com>
26992
26993 * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
26994
26995 * prj-part.adb (Parse_Single_Project): Set the location of a project
26996 on its defining identifier, rather than on the reserved word "project".
26997
26998 * prj-proc.adb (Expression): Adapt to the fact that default of external
26999 references may be string expressions, not always literal strings.
27000 (Recursive_Process): Set Display_Name equal to Name
27001 when Location is No_Location, that is when there is no actual file.
27002 Get the Display_Name of the project from the source, when it is not a
27003 virtual project.
27004 (Process): Use the Display_Name in error messages
27005
27006 * prj-strt.adb (External_Reference): Allow default to be string
27007 expressions, not only literal strings.
27008
270092005-03-29 Vincent Celier <celier@adacore.com>
27010
27011 * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
27012 file and the reference symbol file to be the same file.
27013
270142005-03-29 Thomas Quinot <quinot@adacore.com>
27015
27016 * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
27017 forbid conversion of a local access-to-subprogram type to a remote one.
27018
27019 * sem_util.adb (Wrong_Type): For a record type that is the expanded
27020 equivalent type for a remote access-to-subprogram type, go back to the
27021 original RAS entity when displaying an error message, so the casing is
27022 the original source casing.
27023
270242005-03-29 Robert Dewar <dewar@adacore.com>
27025
27026 * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
27027 on param update.
27028
270292005-03-29 Ed Schonberg <schonberg@adacore.com>
27030
27031 * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
27032 subtype if code is being pre-analyzed, to prevent un-expanded
27033 references to protected formals, among others.
27034 (Analyze_Explicit_Dereference): If the overloaded prefix includes some
27035 interpretation that can be a call, include the result of the call as a
27036 possible interpretation of the dereference.
27037
27038 * sem_ch5.adb (Process_Bounds): Determine type of range by
27039 pre-analyzing a copy of the original range, and then analyze the range
27040 with the expected type.
27041
27042 * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
27043 with an overloaded prefix where not all interpretations yield an
27044 access to subprogram, do not rewrite node as a call.
27045 (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
27046 the node as a call once the context identifies the interpretation of
27047 the prefix whose call yields the context type.
27048 (Valid_Conversion): For the case of a conversion between
27049 local access-to-subprogram types, check subtype conformance using
27050 Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
27051 detailed error message.
27052
270532005-03-29 Ed Schonberg <schonberg@adacore.com>
27054
27055 * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
27056 indicator, indicate that the formal can never be null.
27057 (Process_Formals): If a formal has a non_null indicator, insert the
27058 resulting subtype immediately before the enclosing subprogram decl,
27059 and not at the beginning of the corresponding declarative part, to
27060 prevent access before elaboration (Ada2005).
27061
270622005-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27063
27064 PR ada/19956
27065 * utils.c (finish_record_type): Use variable_size when setting sizes.
27066
270672005-03-29 Robert Dewar <dewar@adacore.com>
27068
27069 * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
27070 guarantee Unix style line terminators for the output files, even when
27071 running on windows.
27072
270732005-03-29 Robert Dewar <dewar@adacore.com>
27074
27075 * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
27076 buffer if an exception is raised.
27077
270782005-03-29 Ed Falis <falis@adacore.com>
27079
27080 * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
27081 VxWorks 653 1.4
27082
270832005-03-29 Robert Dewar <dewar@adacore.com>
27084
27085 * sem_util.ads: Minor reformatting
27086 * gnat_rm.texi: Minor editing.
27087
270882005-03-29 Eric Botcazou <ebotcazou@adacore.com>
27089
27090 * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
27091 * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
27092
aad9ff31
AL
270932005-03-24 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
27094
27095 * adaint.c (__gnat_portable_spawn): Adjust cast.
27096
d101034c
JM
270972005-03-23 Joseph S. Myers <joseph@codesourcery.com>
27098
27099 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
27100
3a0c4f5a
AC
271012005-03-17 Pascal Obry <obry@adacore.com>
27102
27103 * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
27104 used.
27105
27106 * expect.c (__gnat_waitpid): Moved here from adaint.c.
27107 Reimplement under Win32 using Win32 API.
27108
27109 (__gnat_kill) [Win32]: Properly close the process handle before leaving
27110 this routine.
27111
271122005-03-17 Eric Botcazou <ebotcazou@adacore.com>
27113
27114 * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
27115 (DECL_RENAMED_OBJECT): New accessor macro.
27116 (SET_DECL_RENAMED_OBJECT): New setter macro.
27117
27118 * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
27119 object in all cases. Attach the renamed object to the VAR_DECL.
27120 (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
27121 field is not prescribed.
27122
27123 * misc.c (gnat_handle_option): Handle -gnatO separately.
27124 (gnat_print_decl) <VAR_DECL>: New case.
27125 Print the DECL_RENAMED_OBJECT node.
27126
27127 * lang.opt: Declare separate -gnatO option.
27128
27129 * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
27130 pointer, replace it with the renamed object.
27131 <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
27132 pointer type if the source is not a fat pointer type whose underlying
27133 array has the same non-zero alias set as that of the destination array.
27134
271352005-03-17 Javier Miranda <miranda@adacore.com>
27136
27137 * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
27138 (Get_Inheritance_Depth): Removed.
27139 (Set_Inheritance_Depth): Removed.
27140
27141 * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
27142 subprogram Get_Expanded_Name because it is not referenced by the
27143 frontend.
27144
27145 * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
27146 (CPP_Get_Inheritance_Depth): Removed.
27147 (CPP_Set_Inheritance_Depth): Removed.
27148
27149 * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
27150
271512005-03-17 Robert Dewar <dewar@adacore.com>
27152
27153 * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
27154 3, since we now expect GCC 3 to do all the work.
27155
271562005-03-17 Javier Miranda <miranda@adacore.com>
27157
27158 * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
27159 of one barrier to avoid wrong usage of this attribute.
27160
27161 * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
27162 First_Private_Entity.
27163
27164 * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
27165 the subprogram against wrong usage.
27166 Adapt the code to traverse the entities in the
27167 scope of a record_type because in addition to its usage regarding
27168 packages, this subprogram is also called by Expand_N_Freeze_Entity
27169 to install the visible declarations of the enclosing scope of a
27170 record_type_with_private to establish the proper visibility before
27171 freezing the entity and related subprograms.
27172
271732005-03-17 Ed Schonberg <schonberg@adacore.com>
27174
27175 * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
27176 entry formals.
27177
271782005-03-17 Thomas Quinot <quinot@adacore.com>
27179
27180 * exp_ch3.adb (Check_Attr): New subprogram.
27181 (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
27182 into a new Check_Attr subprogram, in order to provide a more
27183 explanatory error message (including the name of the missing attribute).
27184 (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
27185 subprogram determines whether a default implementation exists for a
27186 given stream attribute.
27187 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
27188 Determine whether to generate a default implementation for each stream
27189 attribute separately, as this depends on the specific attribute.
27190
27191 * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
27192 limited extension where a stream attribute is missing for a limited
27193 component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
27194 generate a bogus reference to the missing attribute to prevent
27195 cascaded errors. Instead, generate a null statement.
27196
27197 * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
27198 available for a limited type if it has been specified for an ancestor
27199 of the type.
27200
272012005-03-17 Ed Schonberg <schonberg@adacore.com>
27202
27203 * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
27204 entity is an operator.
27205
272062005-03-17 Thomas Quinot <quinot@adacore.com>
27207
27208 * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27209 spec, to make this predicate available to other units.
27210
27211 * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
27212 reimplementing it.
27213
27214 * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
27215 when no distribution runtime library is available.
27216
27217 * sem_res.adb, sem_dist.adb: Disable expansion of remote
27218 access-to-subprogram types when no distribution runtime library is
27219 available.
27220 (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
27221 predicate available to other units.
27222
27223 * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27224 spec, to make this predicate available to other units.
27225
272262005-03-17 Vincent Celier <celier@adacore.com>
27227
27228 * make.adb (Insert_Project_Sources): Make sure the Q is always
27229 initialized.
27230
27231 * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
27232 the default for the tree, not the global default naming.
27233
27234 * prj-proc.adb (Recursive_Process): No need to put the default naming
27235 in the project data, it's already there.
27236
272372005-03-17 Doug Rupp <rupp@adacore.com>
27238
27239 * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
27240
6f7f72f9
EB
27241 * 5xcrtl.ads: Renamed to...
27242 * s-crtl-vms64.ads: ...this new file
3a0c4f5a
AC
27243
272442005-03-17 Robert Dewar <dewar@adacore.com>
27245
27246 PR ada/19519
3a0c4f5a
AC
27247 * namet.adb (Copy_One_Character): Set proper wide character encoding
27248 for upper half character if we have upper half encoding.
27249
272502005-03-17 Robert Dewar <dewar@adacore.com>
27251
27252 * par.adb (Par): Improved msg for attempt to recompile predefined unit
27253
272542005-03-17 Thomas Quinot <quinot@adacore.com>
27255
27256 * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
27257 tagged limited type, the TSS is a newly built renaming declaration:
27258 insert it using Set_TSS, not Copy_TSS.
27259
272602005-03-17 Javier Miranda <miranda@adacore.com>
27261
27262 * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
27263 Try_Object_Operation): Analyze the object that is accessible
27264 through the prefix of the subprogram call before we apply
27265 the transformation of the object-operation notation.
27266
272672005-03-17 Jose Ruiz <ruiz@adacore.com>
27268
27269 * s-taprob.adb (Initialize_Protection): Initialize the protected
27270 object's owner to Null_Task.
27271 (Lock): If pragma Detect_Blocking is in effect and the caller of this
27272 procedure is already the protected object's owner then Program_Error
27273 is raised. In addition the protected object's owner is updated.
27274 (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
27275 of this procedure is already the protected object's owner then
27276 Program_Error is raised.
27277 In addition the protected object's owner is updated.
27278 (Unlock): Remove the ownership of the protected object.
27279
27280 * s-taprob.ads (Protection): Add the field Owner, used to store the
27281 protected object's owner.
27282 This component is needed for detecting one type of potentially blocking
27283 operations (external calls on a protected subprogram with the same
27284 target object as that of the protected action). Document the rest of
27285 the components.
27286
27287 * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
27288 Initialize the protected object's owner to Null_Task.
27289 (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
27290 caller of this procedure is already the protected object's owner then
27291 Program_Error is raised.
27292 Do not raise Program_Error when this procedure is called from a
27293 protected action.
27294 (Unlock_Entries): Remove the ownership of the protected object.
27295 (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
27296 of this procedure is already the protected object's owner then
27297 Program_Error is raised.
27298 Do not raise Program_Error when this procedure is called from
27299 a protected action.
27300
27301 * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
27302 used to store the protected object's owner.
27303
27304 * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
27305 effect and this procedure (a potentially blocking operation) is called
27306 from whithin a protected action, Program_Error is raised.
27307 (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
27308 and this procedure (a potentially blocking operation) is called from
27309 whithin a protected action, Program_Error is raised.
27310
273112005-03-17 Vincent Celier <celier@adacore.com>
27312 Nicolas Setton <setton@adacore.com>
27313
27314 * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
27315 switch, not supported by the linker on Darwin. Add '_' before
27316 <library>init, as this character is added unconditionally by the
27317 compiler.
27318 (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
27319 correct one ".dylib". This fixes detection of the archive files when
27320 building library projects.
27321
273222005-03-17 Vincent Celier <celier@adacore.com>
27323
27324 * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
27325 -gnat83, -gnat95 and -gnat05.
27326
273272005-03-17 Vasiliy Fofanov <fofanov@adacore.com>
27328
27329 * gnat_ugn.texi: Document gnatmem restriction
27330
273312005-03-17 Thomas Quinot <quinot@adacore.com>
27332
27333 * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
27334 cleanup
27335
273362005-03-17 Robert Dewar <dewar@adacore.com>
27337
27338 * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
27339 a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
27340 s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
27341
27342 * casing.adb: Comment improvements
27343
273442005-03-17 Pascal Obry <obry@adacore.com>
27345
27346 * g-expect.adb: Minor reformatting.
27347
a1286ef5
ZW
273482005-03-15 Zack Weinberg <zack@codesourcery.com>
27349
27350 * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
27351 (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
27352 to dependencies.
27353
2532808d
VC
273542005-03-15 Vincent Celier <celier@adacore.com>
27355
a1286ef5
ZW
27356 * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
27357 Add new parameter In_Tree to specify the project tree: needed
27358 by the project manager. Adapt to changes in project manager
27359 using new parameter In_Tree.
2532808d 27360
e2d6b9b9
JJ
273612005-03-15 Jakub Jelinek <jakub@redhat.com>
27362
27363 * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
27364 ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
27365 ada/bldtools to avoid make -jN failures.
27366
813edff1
EB
273672005-03-15 Eric Botcazou <ebotcazou@adacore.com>
27368
27369 * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
27370 to NULL_TREE on entry.
27371
4f51c6e7
AC
273722005-03-15 Robert Dewar <dewar@adacore.com>
27373
27374 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
27375 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
27376 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
27377 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
27378 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
27379 system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
27380 system-interix.ads, system-solaris-sparc.ads,
27381 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
27382 system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
27383 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
27384 system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
27385 system-linux-s390.ads, system-linux-s390x.ads: Add line defining
27386 Compiler_System_Version to be False.
27387
27388 * opt.ads: Add new flag Opt.Address_Is_Private
27389
27390 * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
27391 Add new parameter Compiler_System_Version to avoid checking for
27392 completeness of parameters when compiler is compiling itself.
27393 Allows old versions of GNAT to be compiled with new compiler.
27394
273952005-03-15 Eric Botcazou <ebotcazou@adacore.com>
27396
27397 * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
27398 (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
27399 calling thread.
27400 (Stack_Base_Available): New flag.
27401 (Get_Page_Size): New overloaded functions imported from C.
27402 (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
27403 PROT_ON, PROT_OFF): New constants.
27404 (mprotect): New function imported from C.
27405 (pthread_teb_t): New record type.
27406
27407 * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
27408 (Create_Task): Account for the Yellow Zone and the guard page.
27409
274102005-03-15 Vincent Celier <celier@adacore.com>
27411
27412 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
27413 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
27414 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
27415 mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
27416 Library_File_Name_For): Add new parameter In_Tree
27417 to specify the project tree: needed by the project manager.
27418 Adapt to changes in project manager using new parameter In_Tree.
27419 Remove local imports, use functions in System.CRTL.
27420
27421 * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
27422 to use the project manager.
27423
27424 * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
27425 In_Tree to designate the project tree. Adapt to changes in the project
27426 manager, using In_Tree.
27427
27428 * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
27429 Copy_Interface_Sources): Add new parameter In_Tree to specify the
27430 project tree: needed by the project manager.
27431 (Build_Library): Check that Arg'Length >= 6 before checking if it
27432 contains "--RTS=...".
27433
27434 * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
27435 Library_File_Name_For): Add new parameter In_Tree to specify the
27436 project tree: needed by the project manager.
27437
27438 * prj.ads, prj.adb: Major modifications to allow several project trees
27439 in memory at the same time.
27440 Change tables to dynamic tables and hash tables to dynamic hash
27441 tables. Move tables and hash tables from Prj.Com (in the visible part)
27442 and Prj.Env (in the private part). Move some constants from the visible
27443 part to the private part. Make other constants deferred.
27444 (Project_Empty): Make it a variable, not a function
27445 (Empty_Project): Add parameter Tree. Returns the data with the default
27446 naming data of the project tree Tree.
27447 (Initialize): After updating Std_Naming_Data, copy its value to the
27448 component Naming of Project Empty.
27449 (Register_Default_Naming_Scheme): Use and update the default naming
27450 component of the project tree, instead of the global variable
27451 Std_Naming_Data.
27452 (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
27453 Tree is not defaulted, return the default naming data of the Tree.
27454 (Initial_Buffer_Size): Constant moved from private part
27455 (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
27456 variables initialized in procedure Initialize.
27457 (Add_To_Buffer): Add two in out parameters to replace global variables
27458 Buffer and Buffer_Last.
27459 (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
27460 functions.
27461 Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
27462 hash tables.
27463 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
27464 for the project tree.
27465 (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
27466 constant at the beginning of the package spec, so that they cane be used
27467 in subprograms before their full declarations.
27468 (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
27469 (Empty_Project): Add parameter of type Project_Node_Ref
27470 (Private_Project_Tree_Data): Add component Default_Naming of type
27471 Naming_Data.
27472 (Buffer, Buffer_Last): remove global variables
27473 (Add_To_Buffer): Add two in out parameters to replace global variables
27474 Buffer and Buffer_Last.
27475 (Current_Packages_To_Check): Remove global variable
27476 (Empty_Name): Move to private part
27477 (No-Symbols): Make it a constant
27478 (Private_Project_Tree_Data): New type for the private part of the
27479 project tree data.
27480 (Project_Tree_Data): New type for the data of a project tree
27481 (Project_Tree_Ref): New type to designate a project tree
27482 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
27483 for the project tree.
27484
27485 * prj-attr.ads: Add with Table; needed, as package Prj no longer
27486 imports package Table.
27487
27488 * prj-com.adb: Remove empty, no longer needed body
27489
27490 * prj-com.ads: Move most of the content of this package to package Prj.
27491
27492 * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
27493 designate the project node tree and Packages_To_Check to replace
27494 global variable Current_Packages_To_Check.
27495 Add new parameters In_Tree and Packages_To_Check to local subprograms,
27496 when needed. Adapt to changes in project manager with project node tree
27497 In_Tree.
27498
27499 * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
27500 project tree to most subprograms. Move tables and hash tables to
27501 private part of package Prj.
27502 Adapt to changes in project manager using project tree In_Tree.
27503
27504 * prj-makr.adb (Tree): New constant to designate the project node tree
27505 Adapt to change in project manager using project node tree Tree
27506
27507 * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
27508 display the Library_Src_Dir and the Library_Dir.
27509 Add new parameter In_Tree to designate the project node tree to most
27510 subprograms. Adapt to changes in the project manager, using project tree
27511 In_Tree.
27512 (Check_Naming_Scheme): Do not alter the casing on platforms where
27513 the casing of file names is not significant.
27514 (Check): Add new parameter In_Tree to designate the
27515
27516 * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
27517 designate the project tree.
27518 Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
27519
27520 * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
27521 to replace those that were in the private part of package Prj.
27522 Add new parameter In__Tree to designate the project node tree to most
27523 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
27524 (Post_Parse_Context_Clause): When specifying the project node of a with
27525 clause, indicate that it is a limited with only if there is "limited"
27526 in the with clause, not necessarily when In_Limited is True.
27527 (Parse): Add new parameter In_Tree to designate the project node tree
27528
27529 * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
27530 designate the project node tree. Adapt to change in Prj.Tree with
27531 project node tree In_Tree.
27532
27533 * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
27534 tree In_Tree in the call to function Empty_Process to give its initial
27535 value to the project data Processed_Data.
27536 Add new parameters In_Tree to designate the project tree and
27537 From_Project_Node_Tree to designate the project node tree to several
27538 subprograms. Adapt to change in project manager with project tree
27539 In_Tree and project node tree From_Project_Node_Tree.
27540
27541 * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
27542 to replace those that were in the private part of package Prj.
27543 Add new parameter In_Tree to designate the project node tree to most
27544 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
27545
27546 * prj-tree.ads, prj-tree.adb: Add new parameter of type
27547 Project_Node_Tree_Ref to most subprograms.
27548 Use this new parameter to store project nodes in the designated project
27549 node tree.
27550 (Project_Node_Tree_Ref): New type to designate a project node tree
27551 (Tree_Private_Part): Change table to dynamic table and hash tables to
27552 dynamic hash tables.
27553
27554 * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
27555 the project tree to most subprograms. Adapt to changes in project
27556 manager using project tree In_Tree.
27557
27558 * makegpr.adb (Project_Tree): New constant needed to use project
27559 manager.
27560
275612005-03-15 Olivier Hainque <hainque@adacore.com>
27562
27563 * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
27564 for sigactions with SA_SIGINFO set. Call
27565 __gnat_adjust_context_for_raise before raising, to perform the
27566 potentially required adjustments to the machine context for the GCC
27567 unwinder.
27568
27569 * raise.h (__gnat_adjust_context_for_raise): New prototype.
27570
27571 * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
27572 Adjust PC by one in the provided machine context.
27573 (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
27574 so that the handler is passed the context structure to adjust prior to
27575 the raise.
27576 (__gnat_error_handler) HPUX: Adjust the signature to match what an
27577 SA_SIGINFO sigaction should look like. Call
27578 __gnat_adjust_context_for_raise before actually raising.
27579 (__gnat_adjust_context_for_raise): Default noop to help PC
27580 adjustments before raise from signal handlers.
27581 (__gnat_error_handler): Indirectly call a predicate function to
27582 determine if a condition should be resignaled or not.
27583 (__gnat_set_resignal_predicate): User interface to modify the predicate.
27584 (__gnat_default_resignal_p): Default GNAT predicate.
27585
275862005-03-15 Doug Rupp <rupp@adacore.com>
27587
27588 * adaint.c: Prefix #include of VMS system header files with vms/
27589 [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
27590 Do not define a dummy function "convert_addresses" under Darwin,
27591 not needed.
27592
27593 * tb-alvms.c, expect.c: Prefix #include of VMS system header files
27594 with vms/
27595
275962005-03-15 Nicolas Setton <setton@adacore.com>
27597
27598 * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
27599 PPC/AIX.
27600
276012005-03-15 Robert Dewar <dewar@adacore.com>
27602
27603 * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
27604 AI-386.
27605
27606 * a-retide.ads: Minor comment changes
27607
276082005-03-15 Robert Dewar <dewar@adacore.com>
27609
27610 * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
27611 a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
27612 Realloc_For_Chunk to private part of package.
27613 New subprograms for AI-301
27614
27615 * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
27616 Get_Line procedure.
27617 Avoid unnecessary use of Get/Set_Wide_String
27618
276192005-03-15 Robert Dewar <dewar@adacore.com>
27620
27621 PR ada/13470
a1286ef5 27622 * a-stunau.ads, a-stunau.adb:
4f51c6e7
AC
27623 Change interface to allow efficient (and correct) implementation
27624 The previous changes to allow extra space in unbounded strings had
27625 left this interface a bit broken.
27626
27627 * a-suteio.adb: Avoid unnecessary use of Get/Set_String
27628
27629 * g-spipat.ads, g-spipat.adb: New interface for Get_String
27630 Minor reformatting (function specs)
27631
27632 * g-spitbo.adb: New interface for Get_String
27633
27634 * g-spitbo.ads: Minor reformatting
27635
27636 * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
27637
27638 * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
27639
276402005-03-15 Javier Miranda <miranda@adacore.com>
27641 Robert Dewar <dewar@adacore.com>
27642 Thomas Quinot <quinot@adacore.com>
27643 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27644
27645 * atree.ads, atree.adb: Add support for Elist24 field
27646
27647 * atree.h: Fix wrong definition of Field27
27648 Add support for Elist16 field
27649 Add support for Elist24 field
27650
27651 * einfo.ads, einfo.adb (Abstract_Interfaces,
27652 Set_Abstract_Interfaces): New subprograms.
27653 (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
27654 subprograms.
27655 (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
27656 entities rather than a single node.
27657 (Is_Interface, Set_Is_Interface): New subprogram
27658 (First_Tag_Component): New syntesized attribute
27659 (Next_Tag_Component): New synthesized attribute
27660 (Write_Entity_Flags): Upgraded to write Is_Interface
27661 (Write_Field24_Name): Upgraded to write Abstract_Interfaces
27662 (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
27663 (Task_Body_Procedure): New subprogram to read this attribute.
27664 (Set_Task_Body_Procedure): New subprogram to set this attribute.
27665 (Has_Controlled_Component): Now applies to all entities.
27666 This is only a documentation change, since it always worked to apply
27667 this to other than composite types (yielding false), but now this is
27668 official.
27669 Update documentation on Must_Be_Byte_Aligned for new spec
27670
27671 * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
27672 exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
27673 uses of the Access_Disp_Table attribute to reference the first dispatch
27674 table associated with a tagged type. As
27675 part of the implementation of abstract interface types,
27676 Access_Disp_Table has been redefined to contain a list of dispatch
27677 tables (rather than a single dispatch table).
27678 Similarly, upgrade all the references to Tag_Component by the
27679 new attribute First_Tag_Component.
27680 (Find_Inherited_TSS): Moved to exp_tss.
27681 Clean up test in Expand_N_Object_Declaration for cases
27682 where we need to do a separate assignment of the initial value.
27683 (Expand_N_Object_Declaration): If the expression in the
27684 declaration of a tagged type is an aggregate, no need to generate an
27685 additional tag assignment.
27686 (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
27687 is to be deleted.
27688 Bit packed array ops are only called if operands are known to be
27689 aligned.
27690 (Component_Equality): When returning an N_Raise_Program_Error statement,
27691 ensure that its Etype is set to Empty to avoid confusing GIGI (which
27692 expects that only expressions have a bona fide type).
27693 (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
27694 determine the amount of data to be copied.
27695
27696 * par.adb (P_Interface_Type_Definition): New subprogram that parses the
27697 new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
27698 INTERFACE_TYPE_DEFINITION ::=
27699 [limited | task | protected | synchronized] interface
a1286ef5 27700 [AND interface_list]
4f51c6e7
AC
27701
27702 * par-ch3.adb (P_Type_Declaration): Modified to give support to
27703 interfaces.
27704 (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
27705 interfaces.
27706 (P_Interface_Type_Definition): New subprogram that parses the new
27707 syntax rule of Ada 2005 interfaces
27708 (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
27709 messages by the correct RENAMES (quotes removed).
27710
27711 * sem_prag.adb: Upgrade all the references to Tag_Component by the new
27712 attribute First_Tag_Component.
27713
27714 * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
27715 (Interface_List, Set_Interface_List): New subprograms.
27716 (Interface_Present, Set_Interface_Present): New subprograms.
27717 (Limited_Present, Set_Limited_Present): Available also in derived
27718 type definition nodes.
27719 (Protected_Present, Set_Protected_Present): Available also in
27720 record type definition and
27721 derived type definition nodes.
27722 (Synchronized_Present, Set_Synchronized_Present): New subprograms.
27723 (Task_Present, Set_Task_Present): New subprogram.
27724 (Task_Body_Procedure): Removed.
27725 (Set_Task_Body_Procedure): Removed.
27726 These subprogram have been removed because the attribute
27727 Task_Body_Procedure has been moved to the corresponding task type
27728 or task subtype entity to leave a field free to store the list
27729 of interfaces implemented by a task (for AI-345)
27730 Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
27731 (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
27732 expression flag Do_Range_Check
27733 (Exception_Junk): Change to Flag7 to accomodate above change
27734 (Box_Present, Default_Name, Specification, Set_Box_Present,
27735 Set_Default_Name, Set_Specification): Expand the expression
27736 "X in N_Formal_Subprogram_Declaration" into the corresponding
27737 two comparisons. Required to use the csinfo tool.
27738
27739 * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
27740 "with string" given.
27741
a1286ef5
ZW
27742 * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
27743 expression given.
4f51c6e7
AC
27744
27745 * par-ch11.adb (P_Raise_Statement): Recognize with string expression
27746 in 2005 mode
27747
27748 * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
27749 attribute Task_Body_Procedure rather than the old semantic field that
27750 was available in the task_type_declaration node.
27751
27752 * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
27753 interface type definitions.
27754 (P_Formal_Derived_Type_Definition): Modified to handle the list of
27755 interfaces.
27756
27757 * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
27758 task type declaration.
27759 (P_Protected): Modified to handle the list of interfaces in a
27760 protected type declaration.
27761
277622005-03-15 Doug Rupp <rupp@adacore.com>
27763 Vincent Celier <celier@adacore.com>
27764
27765 * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
27766 (Gen_Output_File_C): Likewise.
27767 (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
27768
277692005-03-15 Thomas Quinot <quinot@adacore.com>
27770
27771 * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
27772 is an N_Raise_Constraint_Error node, create a new copy of it without
27773 going through a call to Duplicate_Subexpr.
27774
277752005-03-15 Eric Botcazou <ebotcazou@adacore.com>
27776 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27777 Nicolas Setton <setton@adacore.com>
27778 Ed Schonberg <schonberg@adacore.com>
27779
27780 PR ada/19900
27781 PR ada/19408
27782 PR ada/19140
27783 PR ada/20255
4f51c6e7
AC
27784 * decl.c (gnat_to_gnu_field): Reject aliased components with a
27785 representation clause that prescribes a size not equal to the rounded
27786 size of their types.
27787 (gnat_to_gnu_entity, case E_Component): Always look at
27788 Original_Record_Component if Present and not the entity.
27789 (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
27790 of tagged extension types by not making field for components that are
27791 inside the parent.
27792 (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
27793 (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
27794 expression to the type of the object when the object is constant.
27795 Reverse defer_debug_incomplete_list before traversing it, so that trees
27796 are processed in the order at which they were added to the list. This
27797 order is important when using the stabs debug format.
27798 If we are deferring the output of debug information, also defer this
27799 output for a function return type.
27800 When adding fields to a record, prevent emitting debug information
27801 for incomplete records, emit the information only when the record is
27802 complete.
27803 (components_to_record): New parameter defer_debug.
27804 (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
27805 (gnat_to_gnu_field_decl): New function.
27806 (substitution_list, annotate_rep): Call it.
27807 (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
27808 (gnat_to_gnu_entity, case E_Record_Type): Likewise.
27809 No longer update discriminants to not be a COMPONENT_REF.
27810 (copy_alias_set): Strip padding from input type; also handle
27811 unconstrained arrays properly.
27812
27813 * gigi.h (write_record_type_debug_info): New function.
27814 Convert to use ANSI-style prototypes. Remove unused
27815 declarations for emit_stack_check, elab_all_gnat and
27816 set_second_error_entity.
27817 (gnat_to_gnu_field_decl): New decl.
27818
27819 * utils.c (write_record_type_debug_info): New function.
27820 (finish_record_type): Delegate generation of debug information to
27821 write_record_type_debug_info.
27822 (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
27823 (update_pointer_to): Fix pasto.
27824 (convert) <UNION_TYPE>: Accept slight type variations when
27825 converting to an unchecked union type.
27826
27827 * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
27828 replace the N_Freeze_Entity with a null statement.
27829
27830 * freeze.adb (Freeze_Expression): If the freeze nodes are generated
27831 within a constrained subcomponent of an enclosing record, place the
27832 freeze nodes in the scope stack entry for the enclosing record.
27833 (Undelay_Type): New Subprogram.
27834 (Set_Small_Size): Pass T, the type to modify; all callers changed.
27835 (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
27836 within records; allow them to have freeze nodes if their base types
27837 aren't frozen yet.
27838
017205f5
EB
27839 * exp_util.adb (Remove_Side_Effects): Properly test for
27840 Expansion_Delayed and handle case when it's inside an
27841 N_Qualified_Expression.
27842
4f51c6e7
AC
27843 * sem_ch3.adb (Derived_Type_Declaration): New predicate
27844 Comes_From_Generic, to recognize accurately that the parent type in a
27845 derived type declaration can be traced back to a formal type, because
27846 it is one or is derived from one, or because its completion is derived
27847 from one.
27848 (Constrain_Component_Type): If component comes from source and has no
27849 explicit constraint, no need to constrain in in a subtype of the
27850 enclosing record.
27851 (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
27852 Minor change to propagate Is_Ada_2005 flag
27853
27854 * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
27855 Expansion_Delayed is False.
27856 (assoc_to_constructor): Ignore fields that have a
27857 Corresponding_Discriminant.
27858 (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
27859 function returns "by target", dereference the target pointer using the
27860 type of the actual return value.
27861 <all>: Be prepared for a null gnu_result.
27862 (processed_inline_subprograms): Check flag_really_no_inline
27863 instead of flag_no_inline.
27864 (set_second_error_entity): Remove unused function.
27865 (gnat_to_gnu, case N_Selected_Component): Call
27866 gnat_to_gnu_field_decl.
27867 (assoc_to_constructor): Likewise.
27868
278692005-03-15 Robert Dewar <dewar@adacore.com>
27870 Ed Schonberg <schonberg@adacore.com>
27871 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27872
4f51c6e7
AC
27873 * exp_pakd.adb (Create_Packed_Array_Type): Do not set
27874 Must_Be_Byte_Aligned for cases where we do not need to use a
27875 System.Pack_nn unit.
27876
27877 * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
27878 as procedures.
27879 Needed now that we do some processing for IN parameters as well. This
27880 may well fix some unrelated errors.
27881 (Expand_Call): Handle case of unaligned objects (in particular those
27882 that come from packed arrays).
27883 (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
27884 renamed entity is an inherited operation, re-expand the call using the
27885 original operation, which is the one to call.
27886 Detect attempt to inline parameterless recursive subprogram.
27887 (Represented_As_Scalar): Fix to work properly with private types
27888 (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
27889 accurate estimate. Yields True in far fewer cases than before,
27890 improving the quality of code that depends on this test.
4f51c6e7
AC
27891
27892 * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
27893 over both visible and private declarations to remove them from tree,
27894 and mark subprograms declared in package as eliminated, to prevent
27895 spurious use in subsequent compilation of generic units in the context.
27896
27897 * exp_util.ads: Minor cleanup in variable names
27898
27899 * sem_eval.ads, sem_eval.adb: Minor reformatting
27900 (Compile_Time_Known_Bounds): New function
27901
279022005-03-15 Ed Schonberg <schonberg@adacore.com>
27903
27904 * exp_ch7.adb (Convert_View): Use base types of underlying types when
27905 determining whether an unchecked conversion is needed for the argument
27906 of an initialization call.
27907
279082005-03-15 Ed Schonberg <schonberg@adacore.com>
27909
27910 * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
27911 that appears in the instantiation rather than the internal subtype
27912 generated in the wrapper package, to avoid anomalies in gigi when the
27913 target is derived from a private type whose full view is an access type.
27914
279152005-03-15 Robert Dewar <dewar@adacore.com>
27916
27917 * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
27918 not needed.
27919 Add documentation to replace the use of this flag
27920 Fix kludge for Maximum_Alignment on x86 so that it does not apply to
27921 the x86_64.
27922
279232005-03-15 Thomas Quinot <quinot@adacore.com>
27924
27925 * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
27926 here from exp_attr so it can be shared between exp_attr and exp_dist.
27927 (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
27928 all TSS names, not a subset thereof, and the previous name introduced
27929 an unnecessarily confusion that a distinction might exist between
27930 "OK" TSS names and some "not OK" TSS names.
27931
279322005-03-15 Doug Rupp <rupp@adacore.com>
27933
27934 * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
27935 Command_Name.
27936
279372005-03-15 Pascal Obry <obry@adacore.com>
27938 Eric Botcazou <ebotcazou@adacore.com>
27939
27940 PR ada/20226
27941 PR ada/20344
4f51c6e7
AC
27942 * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
27943 when IN_RTS. This is to work around a bootstrap path problem.
27944
27945 * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
27946 table and pass it to __gnat_install_SEH_handler().
27947 (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
27948
27949 * lang.opt: Fix specification of -fRTS=.
27950
279512005-03-15 Doug Rupp <rupp@adacore.com>
27952 Bernard Banner <banner@adacore.com>
27953 Vincent Celier <celier@adacore.com>
27954 Arnaud Charlet <charlet@adacore.com>
27955
27956 PR ada/6852
27957 This change works fine when gnatlib is built from the gcc directory,
27958 but does not work when using the libada Makefile, since GCC_FOR_TARGET
27959 is not passed to ada/Makefile.in, so more work is needed by a
27960 Makefile/configure expert.
27961
27962 * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
27963 set GMEM_LIB on ia64 linux to add optional support for gnatmem.
27964 Setup gnatlink switch -M for x86_64 linux, as it is already setup
27965 for Linux x86.
27966 (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
27967 Run ranlib on libgccprefix.a
27968 Define PREFIX_OBJS for Darwin, to build libgccprefix.
27969 (ADA_INCLUDE_SRCS): Split Ada packages.
27970
279712005-03-15 Robert Dewar <dewar@adacore.com>
27972
27973 * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
27974
27975 * impunit.adb: Add GNAT.UTF_32
27976
27977 * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
27978
27979 * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
27980 now uses GNAT.UTF_32).
27981
27982 * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
27983 capabilities for categorizing characters using Unicode categories
27984
279852005-03-15 Ed Schonberg <schonberg@adacore.com>
27986
27987 * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
27988 instantiation that has been rewritten as a package body, retrieve spec
27989 to generate proper name for implicit_with_clause.
27990 (Install_Parents): Recognize a parent that is an instantiation but has
27991 been rewritten as a package declaration during analysis.
27992
279932005-03-15 Javier Miranda <miranda@adacore.com>
27994 Ed Schonberg <schonberg@adacore.com>
27995
27996 * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
27997 parameter reported some error we immediately return. This improves the
27998 behaviour of the frontend in case of errors.
27999 (Install_Parent, Remove_Parent): Introduce new flag
28000 Parent_Unit_Visible, to preserve the proper visibility of the ultimate
28001 ancestor of a generic child unit, when the child is being instantiated.
28002 (Inline_Instance_Body): If we are compiling the private
28003 part or the body of a child unit, restore the proper visibility of the
28004 parents after compiling the instance body.
28005
280062005-03-15 Ed Schonberg <schonberg@adacore.com>
28007 Javier Miranda <miranda@adacore.com>
28008
28009 PR ada/15608
28010 * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
28011 of a private type, in which case it is underlying_type that denotes
28012 the proper task. Also modified to use the new entity attribute
28013 that is directly available in the task type and task subtype entities
28014 (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
28015 arrays when other dimensions than the first are constrained by
28016 discriminants of an enclosing record.
28017 (Insert_Explicit_Dereference): If the prefix is an indexed component or
28018 a combination of indexed and selected components, find ultimate entity
28019 and generate the appropriate reference for it, to suppress spurious
28020 warnings.
28021 (Note_Possible_Modification): If an entity name has no entity, return.
28022 (Is_Variable): A function call never denotes a variable.
28023 (Requires_Transient_Scope): For record types, recurse only on
28024 components, not on internal subtypes that may have been generated for
28025 constrained components.
28026
280272005-03-15 Ed Schonberg <schonberg@adacore.com>
28028
28029 * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
28030 Eliminated as candidates for resolution. Both efficient, and avoids
28031 anomalies with operators declared in deleted code.
28032 (Process_Implicit_Dereference_Prefix): Use this procedure whenever
28033 expansion is disabled (as when compiling a generic) to prevent spurious
28034 warnings on prefixes of selected components.
28035
280362005-03-15 Ed Schonberg <schonberg@adacore.com>
28037
28038 * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
28039 attached to a list before checking whether it appears in the private
28040 declarations of the current package.
28041 (Make_Inequality_Operator): Insert declaration in proper declarative
28042 list rather than just setting the Parent field, so that
28043 Is_Private_Declaration can handle it properly.
28044
280452005-03-15 Ed Schonberg <schonberg@adacore.com>
28046
28047 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
28048 a renaming a body, check that the renamed subprogram in not intrinsic.
28049 (Find_Direct_Name): If several use_visible entities hide
28050 each other, and the context is a predefined file compiled through
28051 rtsfind, keep only the entity that comes from a predefined file.
28052
280532005-03-15 Geert Bosch <bosch@adacore.com>
28054
28055 * s-fatgen.adb (Valid): Extend special exceptions to account for long
28056 long float padding to also cover AMD64 and IA64.
28057
280582005-03-15 Gary Dismukes <dismukes@adacore.com>
28059
28060 * s-imgwch.adb: Add with and use of Interfaces.
28061 (Img_Wide_Character): Change type of Val to Unsigned_16.
28062 (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
28063
280642005-03-15 Matthew Gingell <gingell@adacore.com>
28065
28066 * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
28067
280682005-03-15 Robert Dewar <dewar@adacore.com>
28069
28070 * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
28071
28072 * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
28073
28074 * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
28075
280762005-03-15 Robert Dewar <dewar@adacore.com>
28077
28078 * s-bitops.adb, s-bitops.ads,
28079 s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
28080 s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
28081 tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
28082 s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
28083 s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
28084 s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
28085 s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
28086 s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
28087 reformatting.
28088
280892005-03-15 Eric Botcazou <ebotcazou@adacore.com>
28090
28091 * utils2.c (build_binary_op): Fix typo.
28092
280932005-03-15 Doug Rupp <rupp@adacore.com>
28094
28095 * s-crtl.ads (popen,pclose): New imports.
28096
280972005-03-15 Cyrille Comar <comar@adacore.com>
28098
28099 * comperr.adb (Compiler_Abort): remove references to obsolete
28100 procedures in the bug boxes for various GNAT builds.
28101
281022005-03-15 Vincent Celier <celier@adacore.com>
28103
28104 * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
28105
281062005-03-15 Geert Bosch <bosch@adacore.com>
28107 Arnaud Charlet <charlet@adacore.com>
28108 Robert Dewar <dewar@adacore.com>
28109 Cyrille Comar <comar@adacore.com>
28110 Sergey Rybin <rybin@adacore.com>
28111
28112 * gnat_ugn.texi: Remove extended inline assembly example, as it was far
28113 too specific and long-winded to be appropriate for the GNAT User's
28114 Guide.
28115 Warn about use of GCC switches not documented in the GNAT User's Guide,
28116 as these may cause generated code to not conform to Ada semantics.
28117 Remove mention of -gdwarf-2 for sparc64, since this is now the default.
28118 Add documentation for -gnat95 and -gnat05 switches
28119 Remove paragraph documenting obsolete way to refer to third party
28120 libraries.
28121 Add a few references to Ada_05 that were missing.
28122 Update documentation on -gnatZ/-gnatL.
28123 Document limitation when using -m64 under Solaris.
28124 Change the "Name Casing" subsection of the pretty-printer section
28125 according to the changes in the dictionary processing.
28126
28127 * gnat_rm.texi: Document the Ada_05 pragma.
28128 Section on record representation clauses describes the new more
28129 relaxed rules about placement of large packed bit array components.
28130 Add documentation of GNAT.UTF_32
28131
9e94c78f 281322005-03-12 Daniel Berlin <dberlin@dberlin.org>
c75ab022
DB
28133
28134 * misc.c (gnat_post_options): Turn off structural
28135 aliasing for now.
4f51c6e7 28136
9e94c78f 281372005-03-08 Laurent Guerby <laurent@guerby.net>
391bdf45
LG
28138
28139 * system-linux-sparc.ads: Fix typo in previous commit.
28140
9e94c78f
EB
281412005-03-07 James A. Morrison <phython@gcc.gnu.org>
28142 Laurent Guerby <laurent@guerby.net>
fe8a06f2 28143
a1286ef5
ZW
28144 PR ada/20035
28145 * system-linux-sparc.ads: New.
28146 * Makefile.in: Add sparc linux entry.
fe8a06f2 28147
a1286ef5 281482005-02-27 Danny Smith <dannysmith@users.sourceforge.net>
9811fd17 28149
a1286ef5 28150 * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
9811fd17
DS
28151 parameters as unused.
28152
5395b47b
NN
281532005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
28154 Partial merge from libada-gnattools-branch:
28155
28156 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
a1286ef5
ZW
28157 * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
28158 into code in gnattools/Makefile.in. Remove direct dependencies on
28159 stamp-tools by tools clauses.
5395b47b 28160 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
a1286ef5 28161 * config-lang.in: Add gnattools to $lang_dirs.
5395b47b 28162
4fa0972f
AP
281632005-02-13 Andrew Pinski <pinskia@physics.uc.edu>
28164
28165 PR ada/19942
2532808d 28166 * utils.c (gnat_type_for_mode): Return null instead of ICE because
a1286ef5 28167 we asked for an unknown mode.
4fa0972f 28168
bd0b34a8
RH
281692005-02-12 Richard Henderson <rth@redhat.com>
28170
28171 * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
28172 validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
28173
0ebbef54
AJ
281742005-02-10 Andreas Jaeger <aj@suse.de>
28175
28176 * init.c (__gnat_initialize): Mark parameter as unused.
28177
fc5a191d
AC
281782005-02-09 Doug Rupp <rupp@adacore.com>
28179
28180 * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
28181 * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
28182
281832005-02-09 Doug Rupp <rupp@adacore.com>
28184
28185 * gnatchop.adb (dup, dup2),
28186 g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
28187
28188 * gnatlbr.adb (mkdir),
28189 mlib-tgt-vms-ia64.adb (popen, plose): Import with decc$ prefix.
28190
28191 * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
28192
281932005-02-09 Doug Rupp <rupp@adacore.com>
28194
28195 * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
28196
281972005-02-09 Robert Dewar <dewar@adacore.com>
28198 Thomas Quinot <quinot@adacore.com>
28199 Javier Miranda <miranda@adacore.com>
28200 Pascal Obry <obry@adacore.com>
28201 Ed Schonberg <schonberg@adacore.com>
28202 Doug Rupp <rupp@adacore.com>
28203 Gary Dismukes <dismukes@adacore.com>
28204 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28205
28206 * g-zstspl.ads: New file.
28207
28208 * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
28209
28210 * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
28211 Ada 95 mode
28212 Add definition of Wide_Wide_Space for AI-285
28213
28214 * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
28215 interface (to support Ada 95 and Ada 2005 units).
28216 Add Unbounded_IO files
28217 Add entries for Wide_Wide packages for AI-285
28218 Add list of containers packages to Ada 2005 unit list
28219
28220 * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
28221 support new Unbounded_IO package cleanly.
28222
28223 * g-utf_32.ads, g-utf_32.adb: New files.
28224
28225 * Makefile.rtl: Add entry for g-utf_32
28226 Add new files for Unbounded_IO
28227 Adjust make file for new AI-285 wide wide packages
28228 Add AI-302 containers to the run time.
28229
28230 * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
28231 a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
28232 subprograms for AI-301.
28233
28234 * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
28235
28236 * a-stunau.ads: Minor comment correction
28237
28238 * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
28239 etc.
28240 Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
28241 (Check_RPC): Update to match changes in expanded code.
28242 Clean up unused entity.
28243
28244 * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
28245 was not taken into account.
28246 This includes proper initialization with Normalize_Scalars.
28247 (Get_Simple_Init_Val): Major rewrite for initialize scalars and
28248 normalize scalars cases (particularly the latter) to do a better job
28249 of finding invalid representations.
28250
28251 * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
28252
28253 * s-strops.ads, s-strops.adb: Remove string normalize routines, never
28254 used
28255
28256 * exp_dist.adb: Add support for wide wide character type
28257 (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
28258 private part, generate stub bodies at the end of the private part,
28259 not the visible part.
28260 (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
28261 PolyORB support.
28262 (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
28263 generic wrapper to execute final processing after completing the
28264 expansion of the RPC receiver for an RACW.
28265
28266 * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
28267 packages and attributes.
28268 (Preset_Names): Addition of the new reserved words of Ada 2005,
28269 that is interface, overriding and synchronized.
28270 (Get_Pragma_Id): Give support to the use of the new reserved word
28271 "interface" as a pragma name.
28272 (Is_Pragma_Name): Give support to the use of the new reserved word
28273 "interface" as a pragma name.
28274 (Preset_Names): Add stream_size string for the Stream_Size Ada2005
28275 attribute implementation.
28276
28277 * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
28278 checks to entities that are output parameters of Asm operations.
28279 Handle the Stream_Size attribute.
28280 Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
28281
28282 * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
28283
28284 * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
28285 for second parameter being 0.0.
28286 Add support for wide wide character type.
28287 (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
28288
28289 * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
28290 s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
28291 s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
28292 s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
28293 for wide wide character cases.
28294
28295 * cstand.adb: Create entities for Wide_Wide_Character and
28296 Wide_Wide_String.
28297
28298 * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
28299 accordance with AI-258.
28300 Add new declarations for 16/32 bit C character types (Part of AI285)
28301
28302 * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
28303 (Obsolescent_Warning): New field
28304 (Rep_Clause): New local subprogram used to share code. Returns the rep
28305 clause for which the name is given in parameter.
28306 (Has_Stream_Size_Clause): New routine.
28307 (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
28308 (Address_Clause): Implementation is now using Rep_Clause.
28309 (Alignment_Clause): Idem.
28310 (Size_Clause): Idem.
28311
28312 * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
28313 entity in non-Ada 2005 mode and generate warning.
28314
28315 * par-prag.adb: Add handling of one argument form for pragma Ada_05.
28316 (Prag): Code cleanup. Remove old gnat pragma "overriding"
28317
28318 * sem_prag.adb: Add handling of one argument form for pragma Ada_05
28319 (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
28320 on the named unit if the pragma is not in the current compilation unit,
28321 so that elaboration calls in the current unit can set up an elaboration
28322 dependency on the named unit, as needed.
28323 (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
28324 subprogram as well as for subprograms declared within a package.
28325 (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
28326 pragma overriding.
28327
28328 * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
28329 to z) to avoid some instances of duplication for Wide_Wide packages.
28330
28331 * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
28332 characters.
28333
28334 * scn.adb: Char_Literal_Value field is now a Uint
28335
28336 * scng.adb: Significant rewrite to handle new Ada 2005 features
28337 allowing wide and wide wide characters in program text, e.g. for
28338 identifiers, as described in AI-285.
28339 (Set_Reserved): New procedure, makes setting up keywords cleaner.
28340 (Initialize_Scanner): Register the new reserved words of Ada 2005.
28341 (Scan): Give support to the new reserved words.
28342
28343 * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
28344 warning notifying that interface, overriding, and synchronized are
28345 new reserved words.
28346 (P_Pragma): Allow the use of the new reserved word "interface" as
28347 a pragma name.
28348
28349 * gnatls.adb, gnatbind.adb,
28350 ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
28351 identifiers named "interface" to "SAL_Interface".
28352
28353 * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
28354 (Structured Exception handling).
28355 (Gen_Main_C): Idem.
28356
a1286ef5 28357 * bindgen.adb:
fc5a191d
AC
28358 (Gen_Main_Ada): Set the default exit code if specified.
28359 (Gen_Main_C): Likewise.
28360 Part of *DC20-006.
28361 (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
28362 Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
28363
28364 * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
28365 new -Xnnn switch.
28366
28367 * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
28368 has a collision with the new Ada 2005 "interface" reserved word.
28369
28370 * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
28371 generate a warning notifying that interface, overriding, and
28372 synchronized are new reserved words.
28373
28374 * scans.ads (Token_Type): Addition of the tokens corresponding to the
28375 new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
28376 and Tok_Synchronized.
28377
28378 * sem_res.adb (Resolve_Actuals): Change error messages to refer to
28379 "dispatching" rather than "primitive" operations, since dispatching
28380 calls are now allowed to abstract formal subprograms (which are not
28381 primitive).
28382 Char_Literal_Value field is now a Uint
28383 (Resolve_Slice): If the prefix is an access to an unconstrained array,
28384 compute the actual subtype of the designated object to impose the proper
28385 index constraints.
28386 (Resolve_Selected_Component): Do not insert an access check if the
28387 prefix is an access type: such a node is expanded into an explicit
28388 dereference, on which the access check is performed anyway. Removes
28389 expensive duplicate checks.
28390 (Resolve_Call): Use new flag Is_Obsolescent and field
28391 Obsolescent_Warning so that pragma Obsolescent works on library
28392 subprograms.
28393 Add support for wide wide character type
28394 (Resolve_Allocator): Replace the error message on wrong null-exclusion
28395 value by a warning message.
28396 (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
28397 as fixed-point, and one of the operands is non-static and universal, it
28398 can only be an illegal exponentiation operation, in which case there is
28399 no real value to retrieve.
28400
28401 * exp_strm.adb: Add support for wide wide character type
28402 (Build_Elementary_Input_Call): Compute the size of the stream element by
28403 querying the rep chain to find the Stream_Attribute attribute value.
28404 (Build_Elementary_Write_Call): Ditto.
28405
28406 * sem_aggr.adb: Char_Literal_Value field is now a Uint
28407 Add support for wide wide character type
28408 Replace the error messages on wrong null-exclusion value by warnings
28409 as described in Ada 2005.
28410 (Resolve_Extension_Aggregate): Document the fact that the error
28411 message on class-wide expressions in extensions aggregates.
28412
28413 * sem_case.adb: Add support for wide wide character type
28414
28415 * sem_ch13.adb: Add support for wide wide character type
28416 (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
28417
28418 * sem_ch3.adb: Add support for wide wide character type
28419 (Process_Subtype): If constraint is illegal for the type, set Ekind of
28420 now-useless Itype, to prevent cascaded errors on a compiler built
28421 without -gnatp.
28422
28423 * sem_ch8.adb: Add with and use of Sem_Disp.
28424 (Analyze_Subprogram_Renaming): Replace unclean uses of
28425 Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
28426 of Corresponding_Spec to Empty).
28427 (Attribute_Renaming): Replace use of Corresponding_Spec with
28428 Corresponding_ Formal_Spec and simplify condition.
28429 (Use_One_Package): Check that scope of homonym of identifier is defined,
28430 before checking whether it is a wrapper package.
28431 Add support for wide wide character type
28432
28433 * sem_eval.adb: Add support for wide wide character type.
28434 (Eval_Arithmetic_Op): Check for compile time known signed integer
28435 overflow in the non-static case.
28436 (Subtypes_Statically_Match): A formal scalar type and its base type do
28437 not statically match.
28438
28439 * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
28440 "not in" for test of N_Formal_Subprogram_Declaration (which is now a
28441 subtype).
28442 (Unit_Declaration_Node): Ditto.
28443 (Is_Variable_Prefix): For the case of an indexed component whose prefix
28444 has a packed array type, the prefix has been rewritten into a type
28445 conversion. Determine variable-ness from the converted expression.
28446 Handle wide wide character cases.
28447
28448 * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
28449
28450 * stringt.ads, stringt.adb: Handle full UTF-32 range.
28451 Remove ["0A"] from comment, since it can look like a line terminator.
28452 Currently we don't permit this, but this is under discussion by the
28453 ARG, and it is easy enough to use a different example.
28454
28455 * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
28456 handling UTF-32 encoding for wide wide character.
28457 Implement new brackets coding ["hhhhhhhh"]
28458 Add UTF-8 encodings for full UTF-32 range
28459
28460 * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
28461
28462 * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
28463 bit range Add full UTF-32 support.
28464 (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
28465 notify that constraint error will be raised at run-time
28466 because a null value is assigned to a null-excluding object.
28467 Remove some obsolete declarations and make Char_Code
28468 unsigned.
28469
28470 * a-except.adb (Rcheck_30): New subprogram. Addition of the message
28471 corresponding to CE_Null_Not_Allowed, and adjust the output of all the
28472 Rcheck subprograms.
28473
28474 * checks.adb (Check_Null_Not_Allowed): Replace the error message on
28475 wrong null-exclusion value by a warning message.
28476 (Enable_Range_Check): Do range check if the prefix is an
28477 explicit dereference whose designated object is an unconstrained array.
28478 Current algorithm for removing duplicate checks is over-eager in this
28479 case.
28480
28481 * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
28482 null-exclusion value by a warning message
28483
28484 * atree.h, atree.ads, atree.adb: Remove Char_Code field support
28485 completely. Add support for Uint2 field
28486
28487 sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
28488 exp_prag.adb: Char_Literal_Value field is now a Uint.
28489
28490 * exp_util.adb (Insert_Actions): Replace
28491 N_Formal_Subprogram_Declaration by
28492 N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
28493 Char_Literal_Value field is now a Uint.
28494
28495 * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
28496 defined for subprogram renaming declarations. When set, the field
28497 indicates the defining entity of a corresponding formal subprogram
28498 when the renaming corresponds to a formal subprogram association in an
28499 instantiation.
28500 (Set_Corresponding_Formal_Spec): New procedure to return
28501 Corresponding_Formal_Spec field.
28502 Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
28503 (which is now a subtype).
28504 Char_Literal_Value field is now a Uint
28505
28506 * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
28507 pointer to the base of the dispatch table.
28508 Minor changes to comments.
28509 (Controlling_Type): New function for determining the tagged type
28510 associated with a tagged primitive subprogram.
28511 (Expand_Dispatching_Call): Add support for a controlling actual that is
28512 directly a value of type Ada.Tag rather than a tagged object.
28513
28514 * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
28515 describing the new layout.
28516 (Dispatch_Table): The expander computes the actual array size, allocates
28517 the Dispatch_Table record accordingly, and generates code that displaces
28518 the base of the record after the Typeinfo_Ptr component. The access to
28519 these components is done by means of local functions.
28520 (Offset_To_Top): New function.
28521 (Typeinfo_Ptr): New function.
28522 (Get_TSD): Modified to access the new position of the TSD.
28523 (Set_TSD): Modified to save the TSD in its new position.
28524
28525 * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
28526 case of formal abstract subprograms. Add check and message for -gnat05.
28527 Update comments.
28528
28529 * sem_ch12.adb: Add with and use for Sem_Disp.
28530 (Analyze_Associations): Minor change from "=" to "in" for use of
28531 N_Formal_Subtype_Declaration (which is now a subtype).
28532 (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
28533 N_Formal_Subtype_Declaration (which is now a subtype).
28534 (Analyze_Formal_Subprogram): Add handling for
28535 N_Formal_Abstract_Subprogram, marking the formal as abstract and
28536 dispatching, setting the controlling status of the formal parameters
28537 and result, and issuing an error if there is no controlling type for
28538 the formal subprogram.
28539 (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
28540 which is an unclean use of that field, we set the new field
28541 Corresponding_Formal_Spec to make the formal subprogram available to
28542 processing in Analyze_Subprogram_Declaration.
28543 (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
28544 Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
28545 Constrained, so that it is is does not statically match its anonymous
28546 base type.
28547
28548 * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
28549 abstract formal subprograms in error check for functions returning
28550 abstract types. Set scope of new designator for
28551 a parameterless subprogram, so that it is available when checking the
28552 body for nested subprograms, before full analysis of said body.
28553 (Analyze_Subprogram_Body): Warn on inlining bodies with nested
28554 subprogram only if inner one comes from source.
28555 (Analyze_Function_Call): If the call is given in object notation, the
28556 analysis of the name rewrites the node and analyzes it with the proper
28557 argument list. After analyzing the name, if the call has been rewritten
28558 and the result type is set, no further analysis is needed.
28559 (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
28560 mark in function specification, in a context where the formals are
28561 visible and hide outer homographs.
28562
28563 * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
28564 as the tagged type for the cases of abstract formal subprograms and
28565 renamings of those. Clean up spec comments.
28566 (Check_Dispatching_Context): Add error message to indicate "abstract
28567 procedure", covering the case of a call to a formal abstract procedure
28568 that has statically tagged operands.
28569 (Check_Dispatching_Call): Check for the case of an actual given by
28570 a tag-indeterminate function call whose type is an ancestor of the
28571 containing call's associated tagged type. This situation can occur
28572 for inherited primitives with function defaults. In this case we
28573 use the tagged type's tag directly as the controlling argument for
28574 the calls.
28575 (Expand_Call): Name change on call to Expand_Dispatch_Call.
28576
28577 * sprint.adb (Sprint_Node_Actual): Split
28578 N_Formal_Subprogram_Declaration into two alternatives for the new
28579 cases N_Formal_Abstract_Subprogram_Declaration and
28580 N_Formal_Concrete_Subprogram_Declaration.
28581 Char_Literal_Value field is now a Uint.
28582
28583 * trans.c: Get rid of junk Uint2 reference.
28584 Char_Literal_Value field is now a Uint.
28585 (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
28586 (gigi): Correct third arg to gimplify_body.
28587
28588 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
28589 (TYPE_LANG_FLAG_0): Check for record or union.
28590
28591 * treepr.adb: Char_Literal_Value field is now a Uint
28592
28593 * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
28594 UI_From_CC.
28595
28596 * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
28597 Add full UTF-32 support
28598 Char_Code is now 32 bits
28599
28600 * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
28601 wide character UTF_32 line terminators.
28602 Initialize Main_Source_File to avoid error when no main
28603 source is loaded.
28604
28605 * errout.adb (Finalize): Do not check Num_SRef_Pragmas
28606 (Main_Source_File) when no main source has been loaded, to avoid
28607 potential crash.
28608
286092005-02-09 Robert Dewar <dewar@adacore.com>
28610
a1286ef5
ZW
28611 * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
28612 Fix name of Set routine
fc5a191d
AC
28613
28614 * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
28615 fixed packages.
28616
28617 * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
28618 a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
28619 fixed packages
28620
28621 * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
28622 forms of Get_Line subprograms for AI-301.
28623
28624 * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
28625 a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
28626 a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
28627 a-stwima.ads: Minor reformatting.
28628
286292005-02-09 Doug Rupp <rupp@adacore.com>
28630 Thomas Quinot <quinot@adacore.com>
28631
28632 * adaint.c, adaint.h
28633 [VMS] (to_ptr32): New function.
28634 (MAYBE_TO_PTR32): New macro.
28635 (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
28636 for pointer size.
28637 [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
28638 [VMS] (#define fork()): Remove since unneccessary.
28639 (__gnat_set_close_on_exec): New routine to support
28640 GNAT.OS_Lib.Set_Close_On_Exec.
28641
28642 * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
28643 the parent side as close-on-exec so that they are not inherited by the
28644 child.
28645
28646 * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
28647 set or clear the FD_CLOEXEC flag on a file descriptor.
28648
286492005-02-09 Eric Botcazou <ebotcazou@adacore.com>
28650 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28651
6f7f72f9 28652 PR ada/19386
a1286ef5 28653 * decl.c:
fc5a191d
AC
28654 (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
28655 on the field if Pragma Component_Alignment (Storage_Unit).
28656 (gnat_to_gnu_entity, case object): Do not treat a renaming that has
28657 side-effects as if it were a constant; also make SAVE_EXPR to protect
28658 side-effects.
28659 (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
28660 UNION_TYPE.
28661 (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
28662 (components_to_record): Test it.
28663 Fix improper usage of REFERENCE_CLASS_P.
28664
28665 * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
28666 RECORD_TYPE.
28667
28668 * utils2.c: Minor reformatting.
28669
28670 * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
28671 handle other cases like RECORD_TYPE.
28672
28673 * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
28674
286752005-02-09 Ed Schonberg <schonberg@adacore.com>
28676
28677 * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
28678 component of an array of arrays in an assignment context, and the
28679 aggregate has component associations that require sliding on
28680 assignment, force reanalysis of the aggregate to generate a temporary
28681 before the assignment.
28682 (Must_Slide): Make global to the package, for use in Gen_Assign.
28683
286842005-02-09 Ed Schonberg <schonberg@adacore.com>
28685
28686 * exp_ch4.adb (Expand_Composite_Equality): If a component is an
28687 unchecked union with no inferable discriminants, return a
28688 Raise_Program_Error node, rather than inserting it at the point the
28689 type is frozen.
28690 (Expand_Record_Equality, Component_Equality): Handle properly the case
28691 where some subcomponent is an unchecked union whose generated equality
28692 code raises program error.
28693
286942005-02-09 Doug Rupp <rupp@adacore.com>
28695
28696 * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
28697 [VMS] (#define exit hack): Remove.
28698
286992005-02-09 Pascal Obry <obry@adacore.com>
9e94c78f 28700 Arnaud Charlet <charlet@adacore.com>
fc5a191d
AC
28701
28702 * init.c (__gnat_initialize): Add a new parameter eh which contains the
28703 address of the exception registration. The Win32 version of this
28704 routine calls __gnat_install_SEH_handler() to initialize the SEH
28705 (Structured Exception Handling) handler.
28706 (__gnat_error_handler) [Win32]: Removed. Not needed as we use
28707 SEH (Structured Exception Handling) now.
28708 (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
28709 (__gnat_initialize for ppc-vxworks): Adjust comments and the
28710 preprocessor condition protecting the call to the extra eh setup
28711 subprogram, which is only available for the ppc target.
28712 (__gnat_clear_exception_count): replaced reference to
28713 variable taskIdCurrent by call to taskIdSelf(), cleaner.
28714
28715 * seh_init.c: New file.
28716
28717 * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
28718 (GNATBIND_OBJS): Idem.
28719
28720 * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
28721 routine takes a new parameter (a pointer to the exception registration
28722 for the SEH (Structured Exception Handling) support.
28723
28724 * raise.h: (__gnat_install_SEH_handler): New prototype.
28725 Update copyright notice.
28726
28727 * s-tassta.adb (Task_Wrapper): Declare the exception registration
28728 record and initialize it by calling __gnat_install_SEH_handler.
28729
287302005-02-09 Vincent Celier <celier@adacore.com>
28731
28732 * make.adb (Gnatmake): Do not fail when the main project has no object
28733 directory.
28734
287352005-02-09 Doug Rupp <rupp@adacore.com>
28736
28737 * Makefile.in [VMS] (LN,LN_S): Define as cp -p
28738 Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
28739 [VMS]: Add translations for g-enblsp.adb.
28740
28741 * s-asthan-vms.adb: Removed.
28742 * s-asthan-vms-alpha.adb: Added.
28743
287442005-02-09 Pascal Obry <obry@adacore.com>
28745
28746 * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
28747 (LIBGNAT_OBJS): Add seh_init.o.
28748
287492005-02-09 Arnaud Charlet <charlet@adacore.com>
28750
28751 PR ada/16592
fc5a191d
AC
28752 * Makefile.in: Link all gnat tools with -static-libgcc, since
28753 -shared-libgcc is now used by default on some systems (e.g. linux with
28754 recent binutils).
28755 Remove references to Makefile.prolog/generic, no longer used.
28756
287572005-02-09 Vincent Celier <celier@adacore.com>
28758
28759 * prj-makr.adb (Process_Directory): Put file name in canonical case
28760 before matching against the patterns.
28761 If gnatname has been invoked as <prefix>-gnatname
28762 then invoke the compiler as <prefix>-gcc, not just "gcc".
28763
287642005-02-09 Ed Schonberg <schonberg@adacore.com>
28765
28766 * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
28767 with expansion disabled. The actual subtype is needed among other
28768 places when the selected component appears in the context of a loop
28769 bound, and denotes a packed array.
28770 (Operator_Check): Always use the first subtype in the
28771 error message, to avoid the appearance of internal base types.
28772 (Transform_Object_Operation): Copy each actual in full
28773 to the parameter associations of the constructed call, rather than
28774 using the shallow copy mechanism of New_Copy_List. This ensures that
28775 the chaining of named associations is done properly.
28776 (Complete_Object_Operation): Rewrite node, rather than
28777 replacing it, so that we can trace back to the original selected
28778 component.
28779
28780 * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
28781 and calls that use object notation, if the called function is not
28782 declared in a withed unit, place the elaboration constraint on the
28783 unit in the context that makes the function accessible.
28784 (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
28785 imposes an elaboration constraint between two packages.
28786
287872005-02-09 Ed Schonberg <schonberg@adacore.com>
28788
28789 * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
28790 views of a private type after handling its private dependents, to
28791 maintain proper stack discipline between entry and exit from the
28792 package.
28793
287942005-02-09 Cyrille Comar <comar@adacore.com>
28795
28796 * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
28797 Minor reformatting.
28798
287992005-02-09 Arnaud Charlet <charlet@adacore.com>
28800
28801 * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
28802 fields for foreign threads.
28803
288042005-02-09 Doug Rupp <rupp@adacore.com>
28805
28806 * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
28807 recursion warnings when compiled with -gnatdm.
28808
288092005-02-09 Robert Dewar <dewar@adacore.com>
28810
28811 * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
28812 Slight fix to documentation of -gnaty with no parameters
28813
28814 * xr_tabls.ads: Add ??? comment for missing overall comment
28815
28816 * xsinfo.adb: Make default file name be sinfo.h, since this is what
28817 we now use by default.
28818
28819 * xsnames.adb: Adjust end of file test to look for five space followed
28820 by '#' instead of six spaces. The format of xsnames.adb was modified
28821 in the last update.
28822
28823 * a-numeri.ads: Add reference to AI-388 for greek letter pi
28824 identifier.
28825
28826 * clean.adb: Minor reformatting.
28827
28828 * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
28829 gnatname.adb: Minor reformatting
28830 Add 2005 to copyright output when utility is run
28831
28832 * csets.adb: Eliminate obsolete comment
28833
28834 * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
28835 Update comments.
28836
28837 * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
28838
288392005-02-09 Sergey Rybin <rybin@adacore.com>
28840
28841 * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
28842 the difference between compact and incompact layout and add the record
28843 representation clause to the example illustrating different layouts.
28844 Add the description of '-A5' gnatpp option ("align 'AT' keywords in
28845 component clauses").
28846
288472005-02-09 Florian Villoing <villoing@adacore.com>
28848
28849 * gnat_ugn.texi: Fix typos.
28850 Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
28851 @file.
28852 Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
28853 in the generated documentation.
28854
288552005-02-09 Arnaud Charlet <charlet@adacore.com>
28856
28857 * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
28858 longer supported.
28859 Update linker wrapper when linking with non GNU C++.
28860
288612005-02-09 Pascal Obry <obry@adacore.com>
28862
a1286ef5 28863 * gnat_ugn.texi:
fc5a191d
AC
28864 Document the procedure to debug the DllMain routine on Windows.
28865 Add note about -funwind-tables and mixed Ada and C/C++ programming in
28866 ZCX mode.
28867 Document new BIND qualifer /RETURN_CODES=VMS.
28868
288692005-02-09 Ben Brosgol <brosgol@adacore.com>
28870
28871 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
28872 Edited gnatmetric chapter
28873
288742005-02-09 Robert Dewar <dewar@adacore.com>
28875
a1286ef5 28876 * gnat_rm.texi:
fc5a191d
AC
28877 Changes to document new wide wide character support
28878 For AI-285
28879 Update documentation on Normalize_Scalars and Initialize_Scalars
28880
288812005-02-09 Pascal Obry <obry@adacore.com>
28882
28883 * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
28884
288852005-02-09 Jose Ruiz <ruiz@adacore.com>
28886
28887 * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
28888 from the VxWorks kernel) that is needed for getting the active
28889 priority of the different tasks.
28890
28891 * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
28892 Use a pragma Elaborate_Body in the spec file instead.
28893 Noticed by code reading.
28894
288952005-02-09 Thomas Quinot <quinot@adacore.com>
28896
28897 * exp_util.ads: Minor correction in comment.
28898
288992005-02-09 Arnaud Charlet <charlet@adacore.com>
28900
28901 * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
28902 since this procedure is now too complex to be worth inlining.
28903
c6a912da
RH
289042005-02-09 Richard Henderson <rth@redhat.com>
28905
28906 * utils.c (gnat_define_builtin): Remove.
28907 (gnat_install_builtins): Use build_common_builtin_nodes.
28908
4c2d6a70
AC
289092005-02-09 Arnaud Charlet <charlet@adacore.com>
28910
28911 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
28912 a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
28913 a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
28914 a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
28915 a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
28916 a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
28917 a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
28918 a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
28919 a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
28920 a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
28921 a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
28922 a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
28923 a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
28924 a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
28925 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
28926 a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
28927 a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
28928 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
28929 a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
28930 a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
28931 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
28932 a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
28933 a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
28934 a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
28935 a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
28936 a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
28937 a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
28938 a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
28939 a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
28940 a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
28941 a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
28942 a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
28943 a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
28944 a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
28945 library.
28946
9e94c78f 289472005-01-27 Laurent Guerby <laurent@guerby.net>
74a22497
LG
28948
28949 * Makefile.in: Fix a-intnam.ads from previous commit,
28950 add 2005 to copyright.
28951 * a-intman-rtems.ads: Renamed to...
28952 * a-intnam-rtems.ads:
28953
9e94c78f 289542005-01-27 Laurent Guerby <laurent@guerby.net>
7d921ba4
LG
28955
28956 * Makefile.in: Rename GNAT RTEMS specific files.
a1286ef5 28957 * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
da8f5fd9 28958 5rosinte.ads, 5rparame.adb: Replaced by files below.
7d921ba4
LG
28959 * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
28960 s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
28961
9e94c78f
EB
289622005-01-27 Joel Sherrill <joel.sherrill@oarcorp.com>
28963 Laurent Guerby <laurent@guerby.net>
9011d4bb
JS
28964
28965 PR ada/19488
28966 * 5rosinte.ads: Add No_Key constant.
a1286ef5
ZW
28967 * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
28968 * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
9011d4bb 28969
9e94c78f 289702005-01-26 Laurent Guerby <laurent@guerby.net>
d487e3c1
LG
28971
28972 PR ada/19414
28973 * i-cobol.adb (Valid_Numeric): Handle zero length case.
a1286ef5 28974
3f38e738
RH
289752005-01-20 Richard Henderson <rth@redhat.com>
28976
28977 * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
28978 a-intnam-linux.ads and system-linux-alpha.ads.
28979 * a-intnam-linux-alpha.ads: Remove file.
28980 * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
28981 * system-linux-alpha.ads: New file.
28982
4d960a7e
JJ
289832005-01-18 Jakub Jelinek <jakub@redhat.com>
28984
28985 PR ada/13470
28986 * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
28987 set to the new string.
28988
b4c6a3a2
TM
289892005-01-18 Toon Moene <toon@moene.indiv.nluug.nl>
28990
28991 * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
28992 to True.
28993
8d5e1df2
RH
289942005-01-18 Richard Henderson <rth@redhat.com>
28995
28996 * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
28997 THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
28998 for alpha-linux.
28999 * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
29000
03eef11c
AP
290012005-01-14 Andrew Pinski <pinskia@physics.uc.edu>
29002
29003 * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
29004 (GCC_ZCX_Support): Likewise.
29005
bc7566ca
BB
290062005-01-11 Bastian Blank <waldi@debian.org>
29007
29008 * system-linux-s390.ads: Define Preallocated_Stacks.
29009 * system-linux-s390x.ads: Likewise.
29010
e550819c
AC
290112005-01-04 Arnaud Charlet <charlet@adacore.com>
29012
29013 * gnat_ugn.texi: Fix texi errors with null variables.
29014
376a74d4
AC
290152005-01-03 Thomas Quinot <quinot@adacore.com>
29016
29017 * gen-soccon.c: New utility program to generate g-soccon.ads
29018 automatically.
29019
29020 * socket.c, gsocket.h: Split inclusion of system header files into a
29021 gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
29022
29023 * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
29024 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
29025 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
29026 g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
29027 should not be edited by hand anymore, but should be regenerated using
29028 gen-soccon.
29029
290302005-01-03 Robert Dewar <dewar@adacore.com>
29031 Ed Schonberg <schonberg@adacore.com>
29032 Vincent Celier <celier@adacore.com>
29033
29034 * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
29035 on/off, since this is an obsolescent feature, for which we now generate
29036 a warning.
29037
29038 * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
29039 warning mode is set and obsolescent usage of this attribute occurs.
29040 (Resolve_Access, case 'Access): Note that GNAT uses the context type to
29041 disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
29042 predates, and partly motivates, the adoption of the AI.
29043 Implement new Ada 2005 attribute Mod
29044
29045 * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
29046 attribute Mod.
29047
29048 * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
29049
29050 * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
29051 pragma restrictions.
29052 New entry for Ada 2005 attribute Mod.
29053
a1286ef5 29054 * par-prag.adb:
376a74d4
AC
29055 Add recognition of new pragma Restrictions No_Dependence
29056 Recognize restriction No_Obsolescent_Features at parse time
29057
29058 * bcheck.adb: Add circuitry for checking for consistency of
29059 No_Dependence restrictions.
29060
29061 * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
29062 restrictions.
29063
29064 * restrict.ads, restrict.adb: Add subprograms to deal with
29065 No_Dependence restrictions.
29066
29067 * rtsfind.adb: Check that implicit with's do not violate No_Dependence
29068 restrictions.
29069
29070 * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
29071 sem_attr.adb: Add check for new restriction No_Obsolescent_Features
29072
29073 * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
29074 dummy parameter to scng instantiation.
29075 Needed for new restriction No_Obsolescent_Features
29076
29077 * scn.adb: (Obsolescent_Check): New procedure
29078 Needed for new restriction No_Obsolescent_Features
29079
29080 * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
29081 specified by AI-285, needed for implementation of AI-388 (adding greek
29082 pi to Ada.Numerics).
29083 Add new generic formal to scng, needed for new restriction
29084 No_Obsolescent_Features.
29085
29086 * s-rident.ads: Add new restriction No_Obsolescent_Features.
29087
29088 * ali.ads, ali.adb: Adjustments for reading new No_Dependence
29089 restrictions lines.
29090 (Scan_ALI): When finding an unexpected character on an R line, raise
29091 exception Bad_R_Line, instead of calling Fatal_Error, so that, when
29092 Ignore_Errors is True, default restrictions are set and scanning of the
29093 ALI file continues with the next line. Also, when Bad_R_Line is raised
29094 and Ignore_Errors is True, skip to the end of le line.
29095
29096 * sem_ch10.adb: Check that explicit with's do not violate
29097 No_Dependence restrictions.
29098 (Install_Withed_Unit): Add code to implement AI-377 and diagnose
29099 illegal context clauses containing child units of instance.
29100
29101 * sem_prag.adb: Processing and checking for new No_Dependence
29102 restrictions.
29103 (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
29104 analyze and check the External argument.
29105
29106 * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
29107
291082005-01-03 Robert Dewar <dewar@adacore.com>
29109
29110 * atree.adb: Add a fifth component to entities
29111 This allows us to add 32 flags and four new fields
29112
29113 * atree.ads: Add a fifth component to entities
29114 This allows us to add 32 flags and four new fields
29115
29116 * einfo.ads, einfo.adb: Document new fields and new flags now available
29117 Add routines for printing new fields
29118
29119 * treepr.adb: Call routines to print out additional fields if present
29120
291212005-01-03 Arnaud Charlet <charlet@adacore.com>
29122
29123 * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
29124 gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
29125
29126 * Makefile.in: Add support to build shared Ada libraries on solaris x86
29127 Remove gpr2make, replaced by gprmake.
29128 Remove references to gnatmem and libaddr2line.
29129 Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
29130 (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
29131 Add support for specialized version of Ada.Numerics.Aux for Darwin: use
29132 a-numaux-darwin.ads and a-numaux-darwin.adb
29133 Enable mlib-tgt-lynxos.adb on lynxos.
29134
29135 * Make-lang.in: Remove rules for gpr2make.
29136 When generating sdefault.adb, do not call Relocate_Path
29137 on S3 for function Target_Name, as it is not a path.
29138 Remove references to gnatmem and libaddr2line.
29139
29140 * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
29141 files.
29142
291432005-01-03 Samuel Tardieu <tardieu@adacore.com>
29144
29145 * checks.adb (Apply_Alignment_Check): Generate a warning if an object
29146 address is incompatible with its base type alignment constraints when
29147 this can be decided statically.
29148
291492005-01-03 Olivier Hainque <hainque@adacore.com>
29150
29151 * decl.c (compatible_signatures_p): New function. The intended purpose
29152 is to check if two function signatures for a call-site and a callee are
29153 compatible enough for the call to be valid. The underlying purpose is
29154 to check if a call to a mapped builtin is using the right interface.
29155 The current code actually does not check antyhing - this a placeholder
29156 for future refinements.
29157 (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
29158 builtin calls for convention Intrinsic.
29159
29160 * gigi.h (builtin_decl_for): Declare (new function).
29161
29162 * utils.c (gnat_install_builtins): Install the target specific builtins.
29163 (builtin_decl_for): New function, provide a dummy body for now.
29164
291652005-01-03 Geert Bosch <bosch@adacore.com>
29166
29167 * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
29168 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
29169 (Pred): Implement in terms of Succ.
a1286ef5 29170
376a74d4
AC
29171 * trans.c (convert_with_check): Reimplement conversion of float to
29172 integer.
29173
291742005-01-03 Ed Schonberg <schonberg@adacore.com>
29175 Vincent Celier <celier@adacore.com>
29176
29177 * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
29178 bounds can be negative, and must be declared Int, not Nat.
29179
29180 * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
29181 array is checked after using the index in the array.
29182
29183 * makegpr.adb (Add_Switches): Check if there is a package for the
29184 processor. If there is no package, do not look for switches.
29185
291862005-01-03 Ed Schonberg <schonberg@adacore.com>
29187
29188 * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
29189 generation of predefined stream operations (specs and bodies) should
29190 proceed. Under various restrictions these subprograms must not be
29191 generated.
29192
291932005-01-03 Thomas Quinot <quinot@adacore.com>
29194
a1286ef5 29195 * exp_dist.adb:
376a74d4
AC
29196 Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
29197 amount of PCS-specific code in RACW stubs generation.
29198 (Copy_Specification): Set Etype on copied formal parameter entities, as
29199 this information is needed for PolyORB stubs generation.
29200 (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
29201 variable Dynamic_Async.
29202 (Build_Subprogram_Receiving_Stubs): Make PCS-specific
29203 (Build_RPC_Receiver_Specification): Make generic again, as recent
29204 changes have allowed RPC receivers to have the same profile for both
29205 variants of the PCS.
29206 Reorganise RPC receiver generation to reduce differences between the
29207 structure of GARLIC and PolyORB RPC receivers.
29208 (Add_Receiving_Stubs_To_Declarations): Make this subprogram
29209 PCS-specific.
29210 Simplify elaboration code for RCI packages.
29211
29212 * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
29213 generation to reduce differences between the structure of GARLIC and
29214 PolyORB RPC receivers.
29215
29216 * s-stratt.adb: Fix typo in comment.
29217
292182005-01-03 Thomas Quinot <quinot@adacore.com>
29219
29220 * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
29221 copied from Make_Init_Call).
29222
29223 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
29224 reads and assignments on a temporary variable declared with appropriate
29225 discriminants.
29226
292272005-01-03 Robert Dewar <dewar@adacore.com>
29228
29229 * i-c.adb (To_C): Raise CE if string is null and Append_Null
29230
292312005-01-03 Robert Dewar <dewar@adacore.com>
29232
29233 * i-cstrin.adb (Update): Do not append a null in form called with a
29234 String. This avoids unintended behavior.
29235
292362005-01-03 Arnaud Charlet <charlet@adacore.com>
29237
29238 PR ada/17527
29239 * init.c: Fix warnings on Free BSD section.
29240
292412005-01-03 Arnaud Charlet <charlet@adacore.com>
29242
29243 PR ada/16949
29244 * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
29245 xsinfo.adb).
29246
292472005-01-03 Vincent Celier <celier@adacore.com>
29248
29249 * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
29250 libraries when Unique_Compile is True (-u switch).
29251 (Gnatmake): ditto.
29252
292532005-01-03 Robert Dewar <dewar@adacore.com>
29254
29255 * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
29256 upper case letter or underscore after W, as allowed by spec.
29257
292582005-01-03 Arnaud Charlet <charlet@adacore.com>
29259
29260 * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
29261 darwin port by using proper type definitions from header files.
29262 Use SIGTERM instead of SIGABRT for SIGADAABORT.
29263
292642005-01-03 Robert Dewar <dewar@adacore.com>
29265
29266 * par.adb: Enhance error message handling for configuration file
29267 pragmas.
29268
292692005-01-03 Robert Dewar <dewar@adacore.com>
29270
29271 * s-arit64.adb (Double_Divide): Put back changes that got accidentally
29272 removed during the previous update (test properly for case of dividing
29273 largest negative number by -1, which generates overflow).
29274
292752005-01-03 Ed Schonberg <schonberg@adacore.com>
29276 Sergey Rybin <rybin@adacore.com>
29277
29278 * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
29279 to use as the defining identifier for a formal package.
29280 (Remove_Parent): If the instance takes place within (an instance of)
29281 a sibling, preserve private declarations of common parent.
29282
292832005-01-03 Ed Schonberg <schonberg@adacore.com>
29284
29285 * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
29286 to determine whether one of the operands is a fixed-point type for
29287 which a user-defined multiplication or division operation might be
29288 defined.
29289
29290 * sem_res.adb (Valid_Conversion): The legality rules for conversions
29291 of access types are symmetric in Ada 2005: either designated type can
29292 be unconstrained.
29293
292942005-01-03 Vincent Celier <celier@adacore.com>
29295
29296 * s-fileio.adb (Temp_File_Record): Change length of string component
29297 Name from L_tmpnam + 1 to max_path_len + 1.
29298
292992005-01-03 Arnaud Charlet <charlet@adacore.com>
29300
29301 * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
29302 Self_Id.Deferral_Level = 0.
29303 (Do_Pending_Action): Move this function to the spec.
29304
29305 * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
29306 Do_Pending_Action explicitely when needed, in case we're using
29307 No_Abort restrictions.
29308
29309 * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
29310 deferral level since it will not get changed by the generated code.
29311 Keeping a default value of 1 would prevent some operations (e.g.
29312 select or delay) to proceed successfully.
29313
293142005-01-03 Ben Brosgol <brosgol@adacore.com>
29315 Robert Dewar <dewar@adacore.com>
29316 Cyrille Comar <comar@adacore.com>
29317
29318 * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
29319 porting guide chapter (vms version).
29320 Revised doc title (removed "for native platforms") and subtitle.
29321 Add discussion on warning flag for obsolescent features. First we
29322 note that it applies to obsolete GNAT features, which was previously
29323 omitted. Second we contrast the behavior with that of the new
29324 Ada 2005 AI-368 restriction No_Obsolescent_Features.
29325 Preliminary rewriting of GNAT & libraries chapter in order to take
29326 into account default project locations & new project manager
29327 capabilities.
29328
293292005-01-03 Robert Dewar <dewar@adacore.com>
29330
29331 * cstand.adb (Create_Operators): Clean up format and documentation of
29332 unary and binary operator result tables. No change in code, just
29333 reformatting and addition of comments.
29334
29335 * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
29336 sem_ch2.adb: Minor reformatting
29337
29338 * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
29339 sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
29340 comments for Tree_Read and Tree_Write.
29341
293422005-01-03 Pascal Obry <obry@adacore.com>
29343
29344 * exp_attr.ads: Minor reformatting.
29345
293462005-01-03 Romain Berrendonner <berrendo@adacore.com>
29347
29348 * comperr.adb (Compiler_Abort): Add specialized message for GAP
29349 versions.
29350
293512005-01-03 Ed Schonberg <schonberg@adacore.com>
29352
29353 * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
29354 whether the ancestor type is private, as may be the case with nested
29355 instantiations.
29356
9e94c78f 293572004-12-30 Sohail Somani <sohail@sohailsomani.com>
15cd18b9
SS
29358
29359 PR ada/19128
29360 * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
29361
2614034e 293622004-12-23 Eric Botcazou <ebotcazou@libertysurf.fr>
15cd18b9 29363
2614034e
EB
29364 * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
29365 * utils2.c (build_unary_op): Likewise.
29366
ad50bc8d
RH
293672004-12-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29368
29369 * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
29370
ed9c846c
RH
293712004-12-19 Richard Henderson <rth@redhat.com>
29372
29373 * trans.c (gigi): Update gimplify_body call.
29374
08f2586c
NS
293752004-12-09 Nathan Sidwell <nathan@codesourcery.com>
29376
29377 * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
29378
180684eb
AC
293792004-12-07 Ed Falis <falis@adacore.com>
29380
29381 * s-intman-vxworks.adb (Notify_Exception): removed useless check for
29382 current task being suspended.
29383
29384 * init.c (__gnat_clear_exception): added to reset VxWorks exception
29385 count.
29386 (__gnat_map_signal): removed test for current task being suspended.
29387
293882004-12-07 Gary Dismukes <dismukes@adacore.com>
29389
29390 * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
29391 from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
29392 targets (such as AAMP).
29393
293942004-12-07 Ed Schonberg <schonberg@adacore.com>
29395
29396 * atree.adb (Visit_Itype): Create a new name for the generated itype,
29397 because the back-end may otherwise treat it as a redefinition of the
29398 old symbol.
29399
294002004-12-07 Eric Botcazou <ebotcazou@adacore.com>
29401
29402 * back_end.adb (Scan_Back_End_Switches): Accept --param.
29403
29404 * lang-specs.h: Accept --param.
29405
294062004-12-07 Vincent Celier <celier@adacore.com>
29407
29408 * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
29409 package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
29410 Current_Body_Suffix => Ada_Body_Suffix).
29411 Take into account Externally_Built attribute.
29412
29413 * clean.adb (In_Extension_Chain): Always return False when one of the
29414 parameter is No_Project.
29415 (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
29416 Ada_Language_Index).
29417 (Gnatclean): Adapt to change in package Prj.Pars (no parameter
29418 Process_Languages for procedure Parse).
29419
29420 * gnatcmd.adb (Carg_Switches): New table.
29421 (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
29422 Adapt to name changes in package Prj (Current_Spec_Suffix =>
29423 Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
29424
29425 * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
29426 Header_Num and function Hash are now declared in package Prj,
29427 not Prj.Com.
29428
29429 * prj.adb (Suffix_Of): New function.
29430 (Set (Suffix)): New procedure.
29431 (Hash): One function moved from Prj.Com
29432 (Is_Present, Language_Processing_Data_Of): New functions
29433 (Set): Two new procedures
29434 (Add_Language_Name, Display_Language_Name): New procedures
29435
29436 * prj.ads: (Suffix_Of): New function
29437 (Set (Suffix)): New procedure
29438 Add several types and tables for multi-language support.
29439 (Header_Num): Type moved from Prj.Com
29440 (Hash): Two functions moved from Prj.Com
29441 (Is_Present, Language_Processing_Data_Of): New functions
29442 (Set): Two new procedures
29443 (Add_Language_Name, Display_Language_Name): New procedures
29444 (Naming): Component name changes:
29445 Current_Spec_Suffix => Ada_Spec_Suffix,
29446 Current_Body_Suffix => Ada_Body_Suffix. Add new components:
29447 Impl_Suffixes, Supp_Suffixes.
29448 (Project_Data): New components: Externally_Built, Supp_Languages,
29449 First_Language_Processing, Supp_Language_Processing, Default_Linker,
29450 Default_Linker_Path.
29451
29452 * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
29453 new package Language_Processing with its attributes (Compiler_Driver,
29454 Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
29455 Binder_Driver, Default_Linker).
29456
29457 * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
29458 (Header_Num): Type moved to package Prj
29459
29460 * prj-env.adb: Adapt to name changes in package Prj
29461 (Current_Spec_Suffix => Ada_Spec_Suffix,
29462 Current_Body_Suffix => Ada_Body_Suffix).
29463
29464 * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
29465 default to the project path, except the "-" is one of the directories
29466 in env var ADA_PROJECT_PATH.
29467 (Current_Project_Path): Global variable, replacing Project_Path
29468 that was in the body of Prj.Part.
29469 (Project_Path): New function
29470 (Set_Project_Path): New procedure
29471 Initialize Current_Project_Path during elaboration of the package
29472 Remove dependency on Prj.Com, no longer needed
29473
29474 * prj-ext.ads (Project_Path): New function
29475 (Set_Project_Path): New procedure
29476
29477 * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
29478 suffix is defined for language <lang>.
29479 (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
29480 accessing directly the components of Naming.
29481 (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
29482 Reorganise of this package.
29483 Break procedure Check in several procedures.
29484
29485 * prj-nmsc.ads: Replace all procedures (Ada_Check,
29486 Other_Languages_Check and Language_Independent_Check) with a single
29487 procedure Check.
29488
29489 * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
29490 Process_Languages, no longer needed.
29491
29492 * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
29493 Current_Project_Path.
29494 Remove elaboration code, moved to the body of Prj.Ext
29495 Use new function Prj.Ext.Project_Path instead of old variable
29496 Project_Path.
29497 (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
29498 When comparing with project paths on the stack, first put the resolved
29499 path in canonical case.
29500 (Parse_Single_Project): Set the path name of the project file in the
29501 tree to the normalized path.
29502
29503 * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
29504 parameter Process_Languages, no longer needed.
29505 (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
29506 Other_Languages_Check.
29507
29508 * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
29509 to store the resolved canonical path of the project file.
29510 Remove dependency to Prj.Com, no longer needed
29511
29512 * prj-util.adb: Adapt to name changes in package Prj
29513 (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
29514 Ada_Body_Suffix).
29515
29516 * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
29517 Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
29518 Externally_Built, Include_Option, Language_Processing.
29519
29520 * makegpr.adb: Numerous changes due to changes in packages
29521 Prj and Prj.Nmsc.
29522
29523 * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
29524 default to the project path, except whe "-" is one of the directories
29525 in env var ADA_PROJECT_PATH.
29526 (Gnatls): In verbose mode, add the new section "Project Search Path:"
29527
295282004-12-07 Robert Dewar <dewar@adacore.com>
29529
29530 * debug.adb: Document that -gnatdA automatically sets -gnatR3m
29531
29532 * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
29533 set -gnatR3m mode.
29534
29535 * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
29536 flag. No longer needed now that we handle this in gnat1drv.adb.
29537
29538 * repinfo.ads: Minor reformatting
29539
295402004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29541 Olivier Hainque <hainque@adacore.com>
29542 Eric Botcazou <ebotcazou@adacore.com>
29543
29544 * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
29545 TYPE_SIZE_UNIT of result type if SIZE is not specified.
29546 (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
29547 of a bitfield, which we know is useless and causes trouble because of
29548 alignment implications.
29549
29550 * utils.c (create_var_decl): Set DECL_COMMON again on targets without
29551 BSS sections.
29552 (process_attributes): Clear DECL_COMMON again when a section attribute
29553 is present.
29554 (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
29555 SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
29556 (create_field_decl): Special case ADDRESSABLE negative to mean
29557 "no bitfield creation", to be used by make_aligning_type. Don't
29558 restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
29559 fields claimed addressable still have to be bitfields. Use
29560 value_factor_p instead of a raw binop construction to check for the
29561 position's alignment.
29562
295632004-12-07 Geert Bosch <bosch@adacore.com>
29564
29565 * eval_fat.adb: Revert previous change.
29566
295672004-12-07 Thomas Quinot <quinot@adacore.com>
29568 Ed Schonberg <schonberg@adacore.com>
29569
29570 * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
29571 with an implicit dereference as its prefix, use
29572 Insert_Explicit_Dereference instead of merely rewriting the prefix into
29573 an explicit dereference. This ensures that a reference to the original
29574 prefix is generated, if appropriate.
29575
29576 * sem_util.adb (Insert_Explicit_Dereference): When an implicit
29577 dereference is rewritten to an explicit one, generate a reference to
29578 the entity denoted by its prefix using the original prefix node, so
29579 the dereference can be properly recorded as a read of the denoted
29580 access value, if appropriate.
29581
29582 * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
29583 emitting 'assigned but never read' warning on a variable on the basis
29584 that it has an access type.
29585 (Check_References): Emit unreferenced warning when the scope is a
29586 subprogram body.
29587
295882004-12-07 Robert Dewar <dewar@adacore.com>
29589 Ed Schonberg <schonberg@adacore.com>
29590
29591 * exp_ch6.adb (Expand_Call): Add comment on handling of back end
29592 intrinsic
29593
29594 * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
29595 leaving call unchanged.
29596 This deals with the case where the pragma Import specified
29597 an external name, to be handled by the back end.
29598
29599 * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
29600 subprogram which is Imported with convention Intrinsic if an
29601 External_Name argument is specified.
29602 (Process_Import_Or_Interface): Properly diagnose link name argument.
29603 (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
29604 with Sem_Ch6.Cannot_Inline.
29605 (Process_Inline): Provide separate warning for inapplicable inline
29606 pragma.
29607 (Cannot_Inline): Reject subprograms that have an at_end handler, so that
29608 treatment is uniform on different targets.
29609
296102004-12-07 Ed Schonberg <schonberg@adacore.com>
29611
29612 * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
29613 construct is rewritten, preserve end label to permit source navigation.
29614
296152004-12-07 Thomas Quinot <quinot@adacore.com>
29616
29617 * exp_dist.adb (Specific_Build_General_Calling_Stubs,
29618 Specific_Build_Stub_Target): New subprograms.
29619 (Build_Subprogram_Calling_Stubs): Make this procedure independent from
29620 the PCS implementation used, using the above PCS-customized subprograms.
29621 Minor reformatting.
29622 (PolyORB_Support.Helpers): New subunit containing supporting subprograms
29623 for generation of DSA code targeted to the PolyORB PCS.
29624 (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
29625 implementation of the partition communication subsystem in ancillary
29626 subprograms.
29627 (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
29628 PolyORB_Support.Build_Stub_Type): New subrograms containing the
29629 PCS-specific part of Add_Stub_Type.
29630 (Insert_Partition_Check): Use runtime library function to perform
29631 E.4(19) check.
29632
a1286ef5
ZW
29633 * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
29634 (RE_Same_Partition): New entity, from s-parint.
180684eb 29635
a1286ef5 29636 * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
180684eb
AC
29637
296382004-12-07 Gary Dismukes <dismukes@adacore.com>
29639
29640 * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
29641 Output the copyright message on a separate line from the version
29642 message.
29643
296442004-12-07 Joel Brobecker <brobecker@adacore.com>
29645
29646 * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
29647 compile-time warning.
29648
296492004-12-07 Robert Dewar <dewar@adacore.com>
29650
29651 * g-regpat.adb: (Match): Change a misuse of or to or else
29652
296532004-12-07 Ed Schonberg <schonberg@adacore.com>
29654
15cd18b9 29655 * lib-xref.adb:
180684eb
AC
29656 (Generate_Reference): Handle properly a reference to an entry formal,
29657 when an accept statement has a pragma Unreferenced for it.
29658
29659 * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
29660 and the Has_Pragma_Unreferenced flag for each formal before analyzing
29661 the body, to ensure that warnings are properly emitted for each accept
29662 statement of a given task entry.
29663
296642004-12-07 Vasiliy Fofanov <fofanov@adacore.com>
29665
29666 * Makefile.in: Add support for foreign threads on VMS.
29667
296682004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29669
29670 * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
29671 Remove.
29672 (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
29673
29674 * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
29675
29676 * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
29677 exception.
29678 (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
29679
296802004-12-07 Robert Dewar <dewar@adacore.com>
29681
29682 * nlists.adb (Prepend_Debug): Remove parameters and nest within
29683 Prepend.
29684 (Remove_Next_Debug): Same fix
29685
29686 * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
29687 maintain back pointers now, though we did not used to, and comments
29688 were out of date).
29689 (Prepend): Remove pragma Inline.
29690 (Remove_Next): Same cleanup
29691
296922004-12-07 Thomas Quinot <quinot@adacore.com>
29693
29694 * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
29695 used to record an implicit dereference as a read operation on its
29696 prefix when operating under -gnatc. Necessary to avoid spurious
29697 'variable assigned but never read' warnings in that mode.
29698 (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
29699 is a non-overloaded implicit dereference, call the above subprogram to
29700 ensure proper recording of references.
29701
297022004-12-07 Gary Dismukes <dismukes@adacore.com>
29703
29704 * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
29705 to be resolved later as part of Analyze_Iteration_Scheme's call to
29706 Make_Index.
29707
297082004-12-07 Ed Schonberg <schonberg@adacore.com>
29709
29710 * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
29711 prefix is not a scalar type, place error message on prefix, not on
29712 type entity.
29713
297142004-12-07 Bernard Banner <banner@adacore.com>
29715
29716 * vxaddr2line.adb: Add support for x86 vxworks
29717
297182004-12-07 Thomas Quinot <quinot@adacore.com>
29719
29720 * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
29721 documentation of the behaviour of these functions when passed an IP
29722 address that has no record in the system hosts database and no reverse
29723 record in the DNS.
29724
29725 * cstand.adb, a-tags.ads: Fix typos in comment.
29726
297272004-12-07 Robert Dewar <dewar@adacore.com>
29728
29729 * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
29730 exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
29731 sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
29732 s-poosiz.ads: Minor reformatting
29733
29734 * make.adb: Minor reformatting
29735 Add some ??? comments asking for more comments
29736
29737 * s-poosiz.adb: Minor reformatting
29738 Add comments on alignment requirement
29739
29740 * sinfo.ads: Remove obsolete comment and fix typo.
29741
297422004-12-07 Vincent Celier <celier@adacore.com>
29743 Sergey Rybin <rybin@adacore.com>
29744
29745 * gnat_ugn.texi: Update the section "The GNAT Driver and Project
29746 Files" with the new tool and package names.
29747 Reformatting to suppress most of the warnings for line too long
29748 Document the new section "Project Search Path:" in the output of
29749 gnatls -v.
29750 Add gnatmetric section
29751
297522004-12-07 Vincent Celier <celier@adacore.com>
29753
29754 * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
29755 -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
29756 and -eit to -ept. Added qualifier
29757 /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
29758
ed986c8e
AS
297592004-11-27 Andreas Schwab <schwab@suse.de>
29760
29761 * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
29762
3c13948a
AC
297632004-11-25 Arnaud Charlet <charlet@adacore.com>
29764
29765 * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
29766 internal implementation unit GNAT.Sockets.Thin,
29767 as their usage for sockets is non-portable (using the read and write
29768 functions from the system runtime library is fine on UNIX but won't
29769 work under Windows).
29770
29771 * mingw32.h: Update copyright notice.
29772
061fd2bf
AC
297732004-11-25 Arnaud Charlet <charlet@adacore.com>
29774
29775 * ada-tree.h: Minor reformatting of previous change to avoid lines
29776 longer than 79 characters.
29777
e850e1f4
OH
297782004-11-25 Olivier Hainque <hainque@adacore.com>
29779
29780 * tb-gcc.c: GCC infrastructure based implementation of
29781 __gnat_backtrace.
29782
39afeb1a
SB
297832004-11-24 Steven Bosscher <stevenb@suse.de>
29784
29785 * misc.c (gnat_post_options): Don't clear
29786 flag_inline_functions.
29787
9633a6ac
AP
297882004-11-22 Andrew Pinski <pinskia@physics.uc.edu>
29789
29790 PR ada/17986
29791 * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
29792 tree.
29793
7fe16580
AJ
297942004-11-21 Andreas Jaeger <aj@suse.de>
29795
29796 * stylesw.adb: Change Style_Check_Subprogram_Order to
29797 Style_Check_Order_Subprograms.
29798
9716416b
AC
297992004-11-18 Arnaud Charlet <charlet@adacore.com>
29800
29801 * adaint.h, adaint.c
29802 (__gnat_portable_spawn): Fix cast of spawnvp third parameter
29803 to avoid warnings.
29804 Add also a cast to kill another warning.
29805 (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
29806 parameter with the priority class of the parent process instead of
29807 always using the NORMAL_PRIORITY_CLASS.
29808 (__gnat_dup): New function.
29809 (__gnat_dup2): New function.
29810 (__gnat_is_symbolic_link): Enable the effective body of this
29811 function when __APPLE__ is defined.
29812
29813 * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
29814 Update comments.
29815
298162004-11-18 Olivier Hainque <hainque@adacore.com>
29817
29818 * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
29819 address of which may be used to represent "others" and "all others"
29820 choices in exception tables, instead of the current harcoded
29821 (void *)0 and (void *)1.
29822 (Setup_Exception): Do nothing in the GNAT SJLJ case.
29823
29824 * gigi.h (others_decl, all_others_decl): New decls representing the
29825 new Others_Value and All_Others_Value objects.
29826 (struct attrib): Rename "arg" component as "args", since GCC expects a
29827 list of arguments in there.
29828
29829 * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
29830 corresponding objects exported by a-exexpr, instead of hardcoded dummy
29831 addresses.
29832
29833 * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
29834 others_decl and all_others_decl instead of hardcoded dummy addresses
29835 to represent "others" and "all others" choices, which is cleaner and
29836 more flexible with respect to the possible eh pointer encoding policies.
29837
29838 * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
29839 (process_attributes): Account for the naming change of the "args"
29840 attribute list entry component.
29841
29842 * decl.c (build_attr_list): Rename into prepend_attributes to allow
29843 cumulating attributes for different entities into a single list.
29844 (gnat_to_gnu_entity): Use prepend_attributes to build the list of
29845 attributes for the current entity and propagate first subtype
29846 attributes to other subtypes.
29847 <E_Procedure>: Attribute arguments are attr->args and not
29848 attr->arg any more.
29849 (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
29850 argument provided, as this is what GCC expects. Use NULL_TREE instead
29851 of 0 for trees.
29852
298532004-11-18 Robert Dewar <dewar@adacore.com>
29854
15cd18b9 29855 * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
9716416b
AC
29856 Minor reformatting througout (including new function specs)
29857 Add ??? comments asking for clarification.
29858
298592004-11-18 Thomas Quinot <quinot@adacore.com>
29860
29861 * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
29862 incomplete duplicate implementation of this subprogram from butil.
29863
298642004-11-18 Thomas Quinot <quinot@adacore.com>
29865
29866 * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
29867 procedures factors the common processing for building an RPC receiver
29868 for an RCI package or an RACW type.
29869 Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
29870 Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
29871 (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
29872 in use.
29873 (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
29874 Add_RACW_Features.
29875 (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
29876 Add_RAST_Features.
29877 (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
29878 distribution subprogram identifiers that are either subprogram numbers
29879 or strings.
29880 (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
29881 string distribution identifiers assigned to a given subprogram.
29882 (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
29883 (Add_RAS_Dereference_TSS): Add comments.
29884 (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
29885 is not referenced yet because it will be used by the PolyORB DSA
29886 implementation.
29887 (Insert_Partition_Check): Remove fossile code.
29888 (First_RCI_Subprogram_Id): Document this constant.
29889 (Add_RAS_Access_TSS): Correct the setting of the Etype of the
29890 RAS_Access TSS.
29891 (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
29892 replaced with calls to Get_Library_Unit_Name_String. Previously there
29893 were several instances of the same code in different locations in the
29894 compiler; this checkin completes the replacement of all of these
29895 instances with calls to a common subprogram.
29896 Minor reformatting.
29897
29898 * sem_dist.adb: Remove comment noting that RPC receiver generation
29899 should be disabled for RACWs that implement RASs.
29900 (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
29901
29902 * sem_util.ads, sem_util.adb (Has_Stream): New function
29903 (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
29904 qualified name of a library unit into the name buffer.
29905 (Note_Possible_Modification): Generate a reference only
29906 if the context comes from source.
29907
29908 * snames.ads (PCS_Names): New subtype corresponding to names of
29909 supported implementations of the Partition Communication Subsystem
29910 (PCS) (i.e. the runtime library support modules for the distributed
29911 systems annex).
29912
299132004-11-18 Robert Dewar <dewar@adacore.com>
29914 Ed Schonberg <schonberg@adacore.com>
29915
29916 * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
29917 (Has_Rep_Pragma): New function
29918 (Has_Attribute_Definition_Clause): New function
29919 (Record_Rep_Pragma): Moved here from sem_ch13.adb
29920 (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
29921
29922 * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
29923
29924 * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
29925 (Expand_Pragma_Psect_Object): New procedure
29926 These procedures contain the revised and cleaned up processing for
29927 these two pragmas. This processing was formerly in Sem_Prag, but
29928 is more appropriately moved here. The cleanup involves making sure
29929 that the pragmas are properly attached to the tree, and that no
29930 nodes are improperly shared.
29931
29932 * sem_prag.adb: Move expansion of Common_Object and Psect_Object
29933 pragmas to Exp_Prag, which is more appropriate.
29934 Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
29935 check for duplicates Remove use of Is_Psected flag, no longer needed.
29936 Use new Make_String_Literal function with string.
29937
29938 * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
29939 that are functions return universal values, that have to be converted
29940 to the context type.
29941 Use new Make_String_Literal function with string.
29942 (Get_Stream_Convert_Pragma): New function, replaces the use of
29943 Get_Rep_Pragma, which had to be kludged to work in this case.
29944
29945 * freeze.adb: Use new Has_Rep_Pragma function
29946
29947 * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
29948 function with string.
29949 Use new Has_Rep_Pragma function.
29950
29951 * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
29952 string argument.
29953
299542004-11-18 Robert Dewar <dewar@adacore.com>
29955
29956 * errout.ads, errout.adb: (First_Sloc): New function
29957
29958 * par-ch5.adb (P_Condition): Check for redundant parens is now a style
29959 check (-gnatyx) instead of being included as a redundant construct
29960 warning.
29961
29962 * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
29963 Style_Check_Order_Subprograms.
29964
29965 * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
29966 stylesw.adb: Add Style_Check_Xtra_Parens
29967
29968 * usage.adb: Add line for -gnatyx (check extra parens)
29969
29970 * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
29971
299722004-11-18 Ed Schonberg <schonberg@adacore.com>
29973 Robert Dewar <dewar@adacore.com>
29974
29975 * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
29976 discriminant of a constrained subtype, analyze the copy of the
29977 corresponding constraint, because in some cases it may be only
29978 partially analyzed.
29979 Removes long-lived ??? comments.
29980
29981 * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
29982 handled controlled or secondary-stack expressions within the
29983 iteration_scheme of a loop.
29984
29985 * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
29986 bounds that may contain functions calls, to prevent memory leaks when
29987 the bound contains a call to a function that uses the secondary stack.
29988 (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
29989 generate temporaries for loop bounds that might contain function calls
29990 that require secondary stack and/or finalization actions.
29991
29992 * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
29993 selected component and the selector is overloadable (not just a
29994 function) treat as function call, Analyze_Call will disambiguate if
29995 necessary.
29996 (Analyze_Selected_Component): Do not generate an actual subtype for the
29997 selected component if expansion is disabled. The actual subtype is only
29998 needed for constraint checks.
29999 (Analyze_Allocator): If restriction No_Streams is set, then do
30000 not permit objects to be declared of a stream type, or of a
30001 composite type containing a stream.
30002
30003 * restrict.ads: Remove the a-stream entry from Unit_Array, since
30004 No_Streams no longer prohibits with'ing this package.
30005
30006 * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
30007 discriminants, but the parent base has unknown discriminants, there is
30008 no discriminant constraint to inherit. Such a discrepancy can arise
30009 when the actual for a formal type with unknown discriminants is a
30010 similar private type whose full view has discriminants.
30011 (Analyze_Object_Declaration): If restriction No_Streams is set, then
30012 do not permit objects to be declared of a stream type, or of a
30013 composite type containing a stream.
30014
300152004-11-18 Ed Schonberg <schonberg@adacore.com>
30016
30017 * exp_dbug.ads: Update documentation to reflect simpler encoding for
30018 protected operations.
30019
30020 * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
30021 generated name, it complicates decoding in gdb and hinders debugging
30022 of protected operations.
30023 (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
30024 flag for the protected entry barrier function.
30025 (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
30026 flag for the protected entry function.
30027
300282004-11-18 Nicolas Setton <setton@adacore.com>
30029
30030 * expect.c: Define __unix__ when __APPLE__ is defined.
30031
30032 * Makefile.in: Inform the value of the variable GMEM_LIB in the
30033 Darwin-specific section.
30034
30035 * lang-specs.h: Change the placement of the %1 marker.
30036 Works around the fact that gcc adds -fPIC by default under Darwin.
30037
300382004-11-18 Ed Schonberg <schonberg@adacore.com>
30039
30040 * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
30041 type of the object with the packed array type, set the Analyzed flag
30042 on the object if it is an entity or simple indexed component, to avoid
30043 spurious type errors.
30044
300452004-11-18 Gary Dismukes <dismukes@adacore.com>
30046
30047 * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
30048 gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
30049 separate line from the version message.
30050
300512004-11-18 Ed Falis <falis@adacore.com>
30052
30053 * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
30054 vthreads.
30055 (init_float): Eliminate initialization of floating point status for
30056 AE653. The instructions have no effect for vThreads.
30057
300582004-11-18 Vincent Celier <celier@adacore.com>
30059
30060 * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
30061 gnatbind is invoked with -shared.
30062
300632004-11-18 Jose Ruiz <ruiz@adacore.com>
30064
30065 * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
30066 for Detect_Blocking which is redundant with the check done within the
30067 procedure Protected_Single_Entry_Call.
30068 (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
30069 Detect_Blocking which is redundant with the check done within the
30070 procedure Protected_Single_Entry_Call.
30071
300722004-11-18 Vincent Celier <celier@adacore.com>
30073
30074 * makegpr.adb (Compile): Put the compiling switches (in package
30075 Compiler and on the command line) immediately after "-c", instead of
30076 at the end of the command line invocation of the compiler, when
30077 compiling a non-Ada file.
30078 (Build_Global_Archive): When there is no need to rebuild the archive,
30079 set Global_Archive_Exists, so that the archive is passed to the linker
30080 if one is needed.
30081
300822004-11-18 Robert Dewar <dewar@adacore.com>
30083 Sergey Rybin <rybin@adacore.com>
30084
15cd18b9 30085 * gnat_ugn.texi:
9716416b
AC
30086 Remove extra paren check from list of checks for redundant constructs
30087 Add documentation of new -gnatyx style check (check extra parens)
30088 Remove paragraph about gnatelim debug options.
30089
30090 * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
30091 objects rather than forbidding dependencies on the package Ada.Streams.
30092
30093 * sinfo.ads: Add ??? note that we should document pragmas passed to
30094 back end.
30095
30096 * g-expect.ads: Fix a few typos in the comments.
30097
9e637a26
JM
300982004-11-09 Joseph S. Myers <joseph@codesourcery.com>
30099
30100 * misc.c (gnat_handle_option): Use %< and %> for quoting in
30101 warning message.
30102
0506cb1c
RO
301032004-11-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
30104
30105 * a-numaux-x86.adb (Tan): Fix fdivp syntax.
30106
426e7d28
AS
301072004-11-07 Andreas Schwab <schwab@suse.de>
30108
30109 * Makefile.in (install-gnatlib): Remove spurious hyphen.
30110
8785609e 301112004-11-02 Andrew Pinski <pinskia@physics.uc.edu>
bb342a77
AP
30112
30113 PR ada/18228
30114 * Makefile.in (darwin): Set soext to .dylib.
30115
0ca5fab2
AC
301162004-10-26 Vincent Celier <celier@gnat.com>
30117 Thomas Quinot <quinot@act-europe.fr>
30118
30119 * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
30120 (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
30121 there is no use of GNAT.Sockets.Constants.
30122 Remove remaining pragma Import for C_Write
30123 Remove C_Read and C_Write from internal implementation unit
30124 GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
30125 the read and write functions from the system runtime library is fine
30126 on UNIX but won't work under Windows).
30127
30128 * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
30129 (Check_Selector): Use C_Recv instead of C_Read.
30130 Selectors are the GNAT.Sockets abstraction to perform a select()
30131 call on a set of descriptors. To allow abortion of an ongoing
30132 select operation, some data is written to a dedicated socket that
30133 is always monitored.
30134 Under Windows, the write and read library functions cannot operate
30135 on sockets, so we need to use send and recv instead, which is portable
30136 across all supported platforms.
30137
30138 * g-socthi.ads: Remove C_Read and C_Write from internal implementation
30139 unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
30140 (using the read and write functions from the system runtime library is
30141 fine on UNIX but won't work under Windows).
30142
301432004-10-26 Nicolas Setton <setton@act-europe.fr>
30144
30145 * mlib-tgt-darwin.adb: New file.
30146
30147 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30148 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
30149 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
30150 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
30151 subprogram body.
30152
30153 * Makefile.in: Add support for building shared libraries under Darwin.
30154 (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
30155 the low level EH init subprogram to be called from __gnat_initialize.
30156
30157 * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
30158 indicates which options to pass to the archive indexer.
30159
30160 * mlib-utl.adb: Add support for calling ranlib with additional
30161 options. This is needed for instance under Mac OS X.
30162 (Ranlib_Options): New global variable, used to store the potential
30163 options to pass to ranlib.
30164 (Ar): Use Ranlib_Options when spawning ranlib.
30165 (Initialize): Set the value of ranlib option.
30166
301672004-10-26 Olivier Hainque <hainque@act-europe.fr>
30168
30169 * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
30170 instead of 8K, to reflect the real potential needs for stack-checking
30171 in the ZCX case.
30172
301732004-10-26 Pascal Obry <obry@gnat.com>
30174
30175 * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
30176
30177 * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
30178 Windows only the initial thread stack size can be set so it is good to
30179 start we a low stack size.
30180 The OS will adjust the size as needed.
30181
301822004-10-26 Olivier Hainque <hainque@act-europe.fr>
30183 Nicolas Setton <setton@act-europe.fr>
30184
30185 * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
30186 "__unix__" instead of "unix".
30187 The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
30188 sections were just mistakenly ignored. The former is
30189 implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
30190 Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
30191 of hpux. This prevents an unwanted definition of the symbol
30192 convert_addresses in adaint.o.
30193
301942004-10-26 Gary Dismukes <dismukes@gnat.com>
30195
30196 * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
30197 compatibility with type Unwind_Word on 16-bit targets such as AAMP.
30198
301992004-10-26 Cyrille Comar <comar@act-europe.fr>
30200
30201 * a-filico.ads, a-filico.adb: fix incorrect header.
30202
302032004-10-26 Javier Miranda <miranda@gnat.com>
30204
30205 * a-ststio.ads: Fix typo in identifier
30206
302072004-10-26 Thomas Quinot <quinot@act-europe.fr>
30208
30209 * sem_ch4.adb: Minor reformatting.
30210
302112004-10-26 Ed Schonberg <schonberg@gnat.com>
30212
30213 * checks.adb (Expr_Known_Valid): If floating-point validity checks are
30214 enabled, check the result of unary and binary operations when the
30215 expression is the right-hand side of an assignment.
30216
302172004-10-26 Vincent Celier <celier@gnat.com>
30218
30219 * clean.adb (Delete): Do not output warnings when in quiet output and
30220 not in verbose mode.
30221 (Force_Deletions): New Boolean flag, defaulted to False
30222 (Delete): Only delete a file if it is writable, and when
30223 Force_Deletions is True.
30224 (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
30225 (Usage): Line for new switch -f
30226 (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
30227 own.
30228
302292004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
30230
30231 * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
30232 JM type only if its size matches that of the wrapper. When a size is
30233 prescribed and the field is not aliased, remove the wrapper of a JM
30234 type only if the size is not greater than that of the packed array.
30235 (gnat_to_gnu_entity): Change the extension of packed array wrappers
30236 from LJM to JM.
30237
302382004-10-26 Geert Bosch <bosch@gnat.com>
30239
30240 * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
30241 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
30242 (Pred): Implement in terms of Succ.
30243
302442004-10-26 Ed Schonberg <schonberg@gnat.com>
30245
30246 * exp_aggr.adb (Safe_Component): An aggregate component that is an
30247 unchecked conversion is safe for in-place use if the expression of the
30248 conversion is safe.
30249 (Expand_Array_Aggregate): An aggregate that initializes an allocator may
30250 be expandable in place even if the aggregate does not come from source.
30251 (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
30252 designated object of an allocator in place, rather than building it
30253 first on the stack. The previous scheme forces a full copy of the array,
30254 and may be altogether unsusable if the size of the array is too large
30255 for stack allocation.
30256
302572004-10-26 Robert Dewar <dewar@gnat.com>
30258
30259 * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
30260 compares if the component is atomic.
30261
30262 * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
30263 array assignment if the component type is atomic.
30264
302652004-10-26 Ed Schonberg <schonberg@gnat.com>
30266 Eric Botcazou <ebotcazou@act-europe.fr>
30267
30268 * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
30269 is aliased and is a by_reference type, do not pass by copy.
30270 (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
30271 detect whether the call is in the right side of an assignment or
30272 the expression of an object declaration. Recurse on component
30273 association within aggregates.
30274 Call it in the condition that determines whether the temporary is
30275 necessary for correct stack-checking.
30276
302772004-10-26 Thomas Quinot <quinot@act-europe.fr>
30278
30279 * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
30280 RACW_Type, used in the PolyORB version.
30281 Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
30282 version and the GARLIC version.
30283
15cd18b9 30284 * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
0ca5fab2
AC
30285 Rename RCI_Info to RCI_Locator for better consistency between the
30286 GARLIC and PolyORB versions of the distributed systems annex.
30287 (DSA_Implementation_Name): This enumeration lists the possible
30288 implementations of the Partition Communication Subsystem for the
30289 Distributed Systems Annex (DSA). The three available implementations
30290 are the dummy stub implementation (No_DSA), and two versions based on
30291 two different distribution runtime libraries: GARLIC and PolyORB. Both
30292 the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
30293 technology.
30294 Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
30295 that organization.
30296
30297 * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
30298 between the GARLIC and PolyORB versions of the distributed systems
30299 annex.
30300 Remove RE_Unbounded_Reclaim_Pool since it is unused.
30301
303022004-10-26 Gary Dismukes <dismukes@gnat.com>
30303
30304 * gnat1drv.adb: Suppress calling the back end when
30305 Frontend_Layout_On_Target is true.
30306
303072004-10-26 Thomas Quinot <quinot@act-europe.fr>
30308
30309 * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
30310 Set_Read_Only): New subprograms.
30311 These new routines allow the user to set or unset the Owner execute
30312 and Owner write permission flags on a file.
30313
30314 * makegpr.adb, mlib.adb, mlib-prj.adb: Use
30315 GNAT.OS_Lib.Set_Executable instead of rolling our own.
30316
303172004-10-26 Matthew Gingell <gingell@gnat.com>
30318
30319 * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
30320
303212004-10-26 Pascal Obry <obry@gnat.com>
30322
30323 * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
30324 memory before the faulting page we properly test the process read
30325 access for this address using appropriate Win32 routine.
30326 (HPUX sections): guard with "__hpux__" instead of "hpux".
30327
303282004-10-26 Robert Dewar <dewar@gnat.com>
30329
30330 * lib-xref.adb (Generate_Reference): Don't complain about reference to
30331 entry parameter if pragma Unreferenced set, since we do not properly
30332 handle the case of multiple parameters.
30333
303342004-10-26 Vincent Celier <celier@gnat.com>
30335
30336 * prj-env.adb: (Contains_ALI_Files): New Boolean function
30337 (Ada_Objects_Path.Add): For a library project, add to the object path
30338 the library directory only if there is no object directory or if the
30339 library directory contains ALI files.
30340 (Set_Ada_Paths.Add.Recursive_Add): Ditto
30341
303422004-10-26 Vincent Celier <celier@gnat.com>
30343
30344 * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
30345 extension of library projects.
30346
30347 * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
30348 path defaults to ".:<prefix>/lib/gnat".
30349 (Parse): For an extending all project, allow direct import of a project
30350 that is virtually extended.
30351
30352 * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
30353 the specified name is directly imported, return its ID. Otherwise, if
30354 an extension of this project is imported, return the ID of the
30355 extension.
30356
303572004-10-26 Robert Dewar <dewar@gnat.com>
30358
30359 * s-arit64.adb: (Le3): New function, used by Scaled_Divide
30360 (Sub3): New procedure, used by Scaled_Divide
30361 (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
30362 correct more than one instance of failure to propagate carries
30363 correctly.
30364 (Double_Divide): Handle overflow case of largest negative number
30365 divided by minus one.
30366
30367 * s-arit64.ads (Double_Divide): Document that overflow can occur in
30368 the case of a quotient value out of range.
30369 Fix comments.
30370
303712004-10-26 Robert Dewar <dewar@gnat.com>
30372
30373 * s-bitops.adb (Bit_Eq): Remove redundant check.
30374
30375 * s-bitops.ads: Minor comment updates
30376 Change some occurrences of Address to System.Address
30377
30378 * s-carsi8.ads: Fix minor cut-and-paste error in comments
30379
303802004-10-26 Ed Schonberg <schonberg@gnat.com>
30381
30382 * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
30383 accessibility check to prefix that is a protected operation.
30384
303852004-10-26 Ed Schonberg <schonberg@gnat.com>
30386
30387 * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
30388 empty, post message on stub.
30389
303902004-10-26 Ed Schonberg <schonberg@gnat.com>
30391 Javier Miranda <miranda@gnat.com>
30392
30393 * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
30394 current instance appears within a unit that is directly in the context
30395 of the main unit.
30396 Used to determine whether the body of the instance should be analyzed
30397 immediately after its spec, to make its subprogram bodies available
30398 for front-end inlining.
30399 (Analyze_Formal_Array_Type): Cleanup condition that checks that range
30400 constraint is not allowed on the component type (AARM 12.5.3(3))
30401
304022004-10-26 Cyrille Comar <comar@act-europe.fr>
30403
30404 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
30405 'Storage_Pool): enhance, document & limit detection of non-sharable
30406 internal pools.
30407
30408 * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
30409
30410 * s-pooglo.ads: Add more documentation now that this pool is properly
30411 documented.
30412
304132004-10-26 Ed Schonberg <schonberg@gnat.com>
30414
30415 * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
30416 or protected type with discriminants, do not constrain the
30417 corresponding record type if the subtype declaration has no
30418 discriminant constraints. This can be the case in source code, or in
30419 the subtype declaration created to rename an actual type within an
30420 instantiation.
30421
304222004-10-26 Ed Schonberg <schonberg@gnat.com>
30423
30424 * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
30425 different kind of stub (possibly wrong name for file), do not check
30426 for conformance.
30427 (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
30428 includes call to some function that returns an unconstrained type, do
30429 not inline.
30430
304312004-10-26 Ed Schonberg <schonberg@gnat.com>
30432
30433 * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
30434 appear in the code for the main unit. Dependencies among units in the
30435 context of the main unit are established when those other units are
30436 compiled. Otherwise spurious elaboration constraints can generate
30437 incorrect elaboration circularities.
30438
304392004-10-26 Thomas Quinot <quinot@act-europe.fr>
30440 Ed Schonberg <schonberg@gnat.com>
30441
30442 * sem_util.adb (Is_Aliased_View): Defend against the case where this
30443 subprogram is called with a parameter that is not an object name. This
30444 situation arises for some cases of illegal code, which is diagnosed
30445 later, and in this case it is wrong to call Is_Aliased, as that might
30446 cause a compiler crash.
30447 (Explain_Limited_Type): Refine previous fix to include
30448 inherited components of derived types, to provide complete information.
30449
30450 * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
30451 is the prival for a protected object.
30452 It is necessary to mark this entity as a variable, in addition to
30453 flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
30454 modified to avoid checking the Aliased flag on entities that are not
30455 objects. (Checking that flag for non-objects is erroneous and could
30456 lead to a compiler crash).
30457
304582004-10-26 Robert Dewar <dewar@gnat.com>
30459
30460 * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
30461 X_Frac = 0.5, then we know that the number X must be positive.
30462 (Succ): Remove the same redundant test, and also fix the primary test
30463 to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
30464 Minor reformatting
30465 (Decompose): Add fuller comments to spec
30466
304672004-10-26 Pascal Obry <obry@gnat.com>
30468
30469 * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
30470 validity (process must have read access). Set to 0 in all other cases.
30471 (STOP_FRAME): Now check for ptr validity to avoid a segmentation
30472 violation on Win32.
30473 (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
30474 segmentation violation.
30475
304762004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
30477
30478 * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
30479 whose type is a constructed subtype of an aliased object with an
30480 unconstrained nominal subtype, convert the actual to the constructed
30481 subtype before taking its address.
30482
304832004-10-26 Vincent Celier <celier@gnat.com>
30484
30485 * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
30486 (Is_Path_Name_Case_Sensitive): New function
30487
30488 * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
30489 (Base_Name, Simple_Name, Current_Directory, Compose,
30490 Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
30491 the result.
30492
304932004-10-26 Cyrille Comar <comar@act-europe.fr>
30494 Vasiliy Fofanov <fofanov@act-europe.fr>
30495 Vincent Celier <celier@gnat.com>
30496
30497 * gnat_ugn.texi: Generalize "finding memory problems" section into a
30498 "memory management issues" section and document some of the useful
30499 memory pools provided as part of the GNAT library.
30500 Remove "virtual" from declaration of A::method2 in
30501 the simple example of Ada/C++ mixed system.
30502 Library Projects may be virtually extended: their virtual extensions
30503 are not Library Projects.
30504 Added section on extending project hierarchies.
30505
d65c6710 305062004-10-19 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
aa75e737
AL
30507
30508 * adaint.c (__gnat_get_libraries_from_registry): Cast value
30509 to LPBYTE.
30510 (__gnat_portable_spawn): Remove const.
30511
30512 * mingw32.h (MAXPATHLEN): Check for previous definition.
30513
95e19580
MK
305142004-10-17 Matthias Klose <doko@debian.org>
30515
30516 * gnatvsn.ads: Set gnat library version to 4.0.
30517
88a6ecb6
VC
305182004-10-05 Vincent Celier <celier@gnat.com>
30519
a1286ef5 30520 * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
88a6ecb6 30521
9e94c78f 305222004-10-04 Laurent Guerby <laurent@guerby.net>
110aba14
LG
30523
30524 PR ada/15156
30525 * Makefile.in: Define and use RANLIB_FLAGS.
88a6ecb6 30526
09552763
PO
305272004-10-04 Pascal Obry <obry@gnat.com>
30528
30529 * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
30530 other x86 platforms).
30531
a8e490b7
OH
305322004-10-04 Olivier Hainque <hainque@act-europe.fr>
30533
30534 * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
30535 in general and triggers stack alignment adjustment for thread entry
30536 points on targets where this is necessary.
30537
71c10a83
BB
305382004-10-04 Bernard Banner <banner@gnat.com>
30539
30540 PR ada/13897
71c10a83
BB
30541 * Makefile.in: Add section for powerpc linux
30542 Add variant i-vxwork-x86.ads
30543
30544 * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
30545
9a03df55
OH
305462004-10-04 Olivier Hainque <hainque@act-europe.fr>
30547
30548 * init.c (__gnat_initialize): Call an Ada subprogram to perform the
30549 table registration calls when need be. Ensures no reference to the crt
30550 ctors symbol are issued in the SJLJ case, which avoids possible
30551 undefined symbol errors in the case of modules to be statically linked
30552 with the kernel.
30553
28d6470f
JM
305542004-10-04 Javier Miranda <miranda@gnat.com>
30555
30556 * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
30557 in-line the code corresponding to subprogram Analyze_Actuals. In
30558 addition, analyze the actuals only in case of subprogram call.
30559
06237875
EF
305602004-10-04 Ed Falis <falis@gnat.com>
30561
30562 * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
30563
259d6c3a
SR
305642004-10-04 Sergey Rybin <rybin@act-europe.fr>
30565
30566 * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
30567 in the documentation.
30568
6f21ed26
RD
305692004-10-04 Robert Dewar <dewar@gnat.com>
30570
30571 * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
30572 IF and CASE.
30573 (Analyze_Block_Statement): Add circuitry to detect following dead code
30574 (Check_Unreachable_Code): Handle case of block exit
30575
4cded177
RD
305762004-10-04 Robert Dewar <dewar@gnat.com>
30577
30578 * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
30579 (XMatchD): Avoid warning for Logic_Error call
30580
c6a60aa1
RD
305812004-10-04 Robert Dewar <dewar@gnat.com>
30582
30583 * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
30584 consider expressions buried within a procedure actual to be an actual.
30585 This caused some blowups with uses of packed slices within a procedure
30586 actual.
30587
1fdebfe5
RD
305882004-10-04 Robert Dewar <dewar@gnat.com>
30589
30590 * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
30591 longer need to be initialized to zero.
30592 (Get_Simple_Init_Val): Modular packed arrays no longer need to be
30593 initialized to zero.
30594
30595 * checks.adb (Expr_Known_Valid): Packed arrays are now always
30596 considered valid, even if the representation is modular. That's correct
30597 now that we no longer initialize packed modular arrays to zero.
30598
30599 * exp_dbug.ads: Clarify documentation on handling of PAD and JM
30600 suffixes. These are now documented as the only cases in which the
30601 debugger ignores outer records.
30602 Previously, the spec allowed arbitrary suffixes for this purpose.
30603 Change name of LJM to JM for packed array pad records
30604 Create separate section on packed array handling, and add a whole new
30605 set of comments to this section describing the situation with packed
30606 modular types and justification requirements depending on endianness.
30607
cd91501c
RD
306082004-10-04 Robert Dewar <dewar@gnat.com>
30609
30610 * a-except.adb: Add a comment for last change
30611
30612 * einfo.ads: Minor spelling correction in comment
30613
30614 * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
30615
30616 * sem_ch11.adb: Fix a case of using | instead of \ for continuation
30617 messages.
30618
30619 * sem_util.ads: Minor comment update
30620
c71c53a8
ES
306212004-10-04 Ed Schonberg <schonberg@gnat.com>
30622
30623 * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
30624 Inline_Always when in Configurable_Run_Time mode.
30625
30626 * sem_prag.adb (Process_Convention): If entity is an inherited
30627 subprogram, apply convention to parent subprogram if in same scope.
30628 (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
30629 when in Configurable_Run_Time mode.
30630
71d9e9f2
ES
306312004-10-04 Ed Schonberg <schonberg@gnat.com>
30632
30633 * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
30634 class_wide type after component list has been inherited.
30635
0b525bee
ES
306362004-10-04 Ed Schonberg <schonberg@gnat.com>
30637
30638 * sem_ch12.adb (Check_Generic_Actuals): New predicate
30639 Denotes_Previous_Actual, to handle properly the case of a private
30640 actual that is also the component type of a subsequent array actual.
30641 The visibility status of the first actual is not affected when the
30642 second is installed.
30643 (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
30644 make fully recursive the treatment of formals of packages declared
30645 with a box.
30646 (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
30647 the above on exit from an instantiation.
30648 (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
30649 current instantiation which is now complete.
30650 (Analyze_Package_Instantiation): No instantiated body is needed if the
30651 main unit is generic. Efficient, and avoid anomalies when a instance
30652 appears in a package accessed through rtsfind.
30653
27ad9660
ES
306542004-10-04 Ed Schonberg <schonberg@gnat.com>
30655
30656 * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
30657 do not generate a declaration for a temporary if the call is part of a
30658 library-level instantiation.
30659
1c6c6771
ES
306602004-10-04 Ed Schonberg <schonberg@gnat.com>
30661
30662 * sem_util.adb (Explain_Limited_Type): Ignore internal components when
30663 searching for a limited component to flag.
30664
30665 * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
30666 expansion of Input, to account for the fact that the implicit call
30667 generated by the attribute reference must freeze the user-defined
30668 stream subprogram. This is only relevant to 'Input, because it can
30669 appear in an object declaration, prior to the body of the subprogram.
30670
30671 * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
30672 expansion can proceed and further errors uncovered.
30673 (Minor clean up): Fix cases of using | instead of \ for continuation
30674 messages.
30675
8005f3e5
RK
306762004-10-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30677
30678 * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
30679
30680 * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
30681 (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
30682 Use gcc_assert and gcc_unreachable.
30683
30684 * decl.c (gnat_to_gnu_entity, case object): Check and process a
30685 specified alignment before validating size.
30686 (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
30687 stripped-down declaration for the type of the inner field when making
30688 a JM type.
30689
30690 * utils.c (finish_record_type): Do not compute the size in units
30691 incrementally. Instead compute it once for the rep clause case.
30692 Use gcc_assert and gcc_unreachable.
30693
6a294a29
VC
306942004-10-04 Vincent Celier <celier@gnat.com>
30695
30696 * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
30697 in file name.
30698 (Is_Valid_Path_Name): Take '/' as a directory separator.
30699
9a080ea3
VC
307002004-10-04 Vincent Celier <celier@gnat.com>
30701
30702 * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
30703 (Extended_Project) only if Extended_Project is defined, to avoid
30704 assertion error.
30705 (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
30706 resolved path.
30707 (Parse_Single_Project): Ditto.
30708
30709 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
30710 Add_To_Project_Path for virtual projects.
30711
51004cb5
VC
307122004-10-04 Vincent Celier <celier@gnat.com>
30713
15cd18b9
SS
30714 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30715 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
30716 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
51004cb5
VC
30717 mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
30718 parameter Options_2.
30719
30720 * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
30721 Build_Dynamic_Library with an empty Options_2.
30722
30723 * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
30724 default anymore.
30725
30726 * makegpr.adb (Get_Imported_Directories.add): Remove trailing
30727 directory separator, if any.
30728 (Gprmake): Do not allow mains on the command line for library projects.
30729 Do not attempt to link when the project is a library project.
30730 (Library_Opts): New table to store Library_Options.
30731 (Build_Library): If Library_Options is specified, pass these options
30732 when building a shared library.
30733
3b37ffbf
JR
307342004-10-04 Jose Ruiz <ruiz@act-europe.fr>
30735
30736 * s-tposen.adb (Service_Entry): The object must be always unlocked at
30737 the end of this procedure now that the unlock operation was inserted
30738 by the expander.
30739
b23e28d5
JR
307402004-10-04 Jose Ruiz <ruiz@act-europe.fr>
30741
30742 * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
30743 corresponding to the Preallocated_Stacks flags in System.
30744 (Get_Target_Parameters): Including the processing for
30745 Preallocated_Stacks.
30746
15cd18b9
SS
30747 * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
30748 system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
30749 system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
30750 system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
30751 system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
30752 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
30753 system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
30754 system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
30755 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
30756 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
b23e28d5
JR
30757 system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
30758 used to signal whether the compiler creates the required stacks and
30759 descriptors for the different tasks (when True) or it is done by the
30760 underlying operating system at run time (when False).
30761 It is initially set to False in all targets.
30762
30763 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
30764 if it is supported by the target.
30765 (Make_Task_Create_Call): Pass the stack address if it has been
30766 previously created. Otherwise pass a Null_Address.
30767
30768 * snames.adb: Add _stack.
30769
30770 * snames.ads: Add Name_uStack. Required to allow the expander to
30771 statically allocated task stacks.
30772
30773 * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
30774 Stack_Address argument.
30775 Check that its value is equal to Null_Address because this target does
30776 not support the static stack allocation.
30777
6fd459bb
TQ
307782004-10-04 Thomas Quinot <quinot@act-europe.fr>
30779
30780 * usage.adb: Change "pragma inline" to "pragma Inline" in information
30781 and error messages
30782
5885facb
TQ
307832004-10-04 Thomas Quinot <quinot@act-europe.fr>
30784
30785 * exp_dist.adb: Split declaration of asynchronous flag out of
30786 Add_RACW_Read_Attribute.
30787 Minor reformatting for better alignment with PolyORB version.
30788 Store the entity for the asynchronous flag of an RACW, rather than the
30789 expression, in the asynchronous flags table. This will allow this flag
30790 to be used in other subprograms beside Add_RACW_Read_Attribute.
30791
d6c7ed50
TQ
307922004-10-04 Thomas Quinot <quinot@act-europe.fr>
30793
30794 * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
15cd18b9
SS
30795 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
30796 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
30797 g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
d6c7ed50
TQ
30798 g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads: Add new
30799 sockets constant MSG_NOSIGNAL (Linux-specific).
30800 Add new sockets constant MSG_Forced_Flags, list of flags to be set on
30801 all Send operations.
30802 For Linux, set MSG_NOSIGNAL on all send operations to prevent them
30803 from trigerring SIGPIPE.
30804 Rename components to avoid clash with Ada 2005 possible reserved
30805 word 'interface'.
30806 (Check_Selector): When the select system call returns with an error
30807 condition, propagate Socket_Error to the caller.
30808
0f0377f6
JH
308092004-10-01 Jan Hubicka <jh@suse.cz>
30810
30811 * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
30812
2c9beb8a
RD
308132004-09-23 Robert Dewar <dewar@gnat.com>
30814
30815 PR ada/17540
2c9beb8a
RD
30816 * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
30817 instead do this at freeze time (we won't do it if there is an address
30818 clause).
30819 Change "pragma inline" to "pragma Inline" in information and error
30820 messages.
30821 Minor reformatting.
30822
30823 * freeze.adb (Check_Address_Clause): Remove previous change, not the
30824 right way of doing things after all.
30825 (Freeze_Entity): For object, set Is_Public for imported entities
30826 unless there is an address clause present.
30827
2494e673
OH
308282004-09-21 Olivier Hainque <hainque@act-europe.fr>
30829
30830 * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
30831 dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
30832 ensures proper handling of types with rep clauses, which might have
30833 their TYPE_SIZE set already.
30834
910d20fc
RD
308352004-09-21 Robert Dewar <dewar@gnat.com>
30836
30837 * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
30838 packed array types in both little- and big-endian cases. This change
30839 ensures that we no longer count on the unused bits being initialized
30840 for such types (and in particular ensures that equality testing will
30841 only read the relevant bits).
30842 Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
30843 These changes mean that we no longer need to initialize small packed
30844 arrays.
30845 (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
30846 optimization to an LJM field as to its parent field.
30847
30848 * ada-tree.h, trans.c, utils.c, utils2.c:
30849 Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
30850
8f235343
JH
308512004-09-20 Jan Hubicka <jh@suse.cz>
30852
30853 * utils.c (gnat_finalize): Remove.
30854 (end_subprog_body): Directly call cgraph_finalize_function;
30855 do not lower the nested functions.
30856
bb9be5eb
RD
308572004-09-20 Robert Dewar <dewar@gnat.com>
30858
30859 PR ada/17540
bb9be5eb
RD
30860 * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
30861 if an address clause is present, since that means that the Import
30862 should be ignored.
30863
796ef2e2
AC
308642004-09-20 Arnaud Charlet <charlet@act-europe.fr>
30865
30866 * 5tsystem.ads: Removed, no longer used.
30867
6615c446
JO
308682004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
30869 Zack Weinberg <zack@codesourcery.com>
30870
30871 * ada-tree.def: Use tree_code_class enumeration constants
30872 instead of code letters.
30873 * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
30874 Update for new tree-class enumeration constants.
30875
93ed8a01
VC
308762004-09-17 Vincent Celier <celier@gnat.com>
30877
30878 * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
30879 capabilities of the general project manager.
30880
c885d7a1
AC
308812004-09-09 Vincent Celier <celier@gnat.com>
30882
30883 * a-direct.ads: Add pragma Ada_05
30884 (Directory_Entry_Type): Give default value to component Kind to avoid
30885 not initialized warnings.
30886
30887 * a-direct.adb (Current_Directory): Remove directory separator at the
30888 end.
30889 (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
30890 an existing directory.
30891 (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
30892 (Size (String)): Function C_Size returns Long_Integer, not File_Size.
30893 Convert the result to File_Size.
30894
30895 * prj.ads: (Project_Error): New exception
30896
30897 * prj-attr.adb: Except in procedure Initialize, Fail comes from
30898 Prj.Com, not from Osint.
30899 (Attrs, Package_Attributes): Tables moved to private part of spec
30900 (Add_Attribute, Add_Unknown_Package): Moved to new child package
30901 Prj.Attr.PM.
30902 (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
30903 Prj.Project_Error after call to Fail.
30904 (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
30905 Fail. Check that package name is not already in use.
30906
30907 * prj-attr.ads: Comment updates to indicate that all subprograms may be
30908 used by tools, not only by the project manager, and to indicate that
30909 exception Prj.Prj_Error may be raised in case of problem.
30910 (Add_Unknown_Package, Add_Attribute): Moved to new child package
30911 Prj.Attr.PM.
30912 (Attrs, Package_Attributes): Table instantiations moved from the body to
30913 the private part to be accessible from Prj.Attr.PM body.
30914
30915 * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
30916 from new package Prj.Attr.PM.
30917 (Parse_Attribute_Declaration): Call Add_Attribute from new package
30918 Prj.Attr.PM.
30919
30920 * Makefile.in: Add prj-attr-pm.o to gnatmake object list
30921
30922 * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
30923 instead of Elaboration_Checks).
30924
30925 * a-calend.adb: Minor reformatting
30926
309272004-09-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30928
30929 * gigi.h (maybe_pad_type): New declaration.
30930 (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
30931
30932 * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
30933
30934 * cuintp.c: Convert to use buildN.
30935
30936 * decl.c (maybe_pad_type): No longer static.
30937 (gnat_to_gnu_entity, case E_Function): Handle case of returning by
30938 target pointer.
30939 Convert to use buildN.
30940
30941 * trans.c (call_to_gnu): Add arg GNU_TARGET; support
30942 TYPE_RETURNS_BY_TARGET_PTR_P. All callers changed.
30943 (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
30944 RHS.
30945 (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
30946 (gnat_gimplify_expr, case ADDR_EXPR): New case.
30947 Convert to use buildN.
30948
30949 * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
30950 TREE_READONLY for const.
30951 Convert to use buildN.
30952
30953 * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
30954 (create_var_decl): Refine when TREE_STATIC is set.
30955 Convert to use buildN.
30956
309572004-09-09 Gary Dismukes <dismukes@gnat.com>
30958
30959 * gnat_ugn.texi: Delete text relating to checking of ali and object
30960 consistency.
30961
30962 * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
30963 routines.
30964
309652004-09-09 Jose Ruiz <ruiz@act-europe.fr>
30966
30967 * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
30968 pragmas recognized by GNAT.
30969
30970 * gnat_rm.texi: Document pragma Detect_Blocking.
30971
30972 * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
30973 raise Program_Error if called from a protected operation.
30974
30975 * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
30976 the protected action nesting level.
30977 (Lock_Read_Only): When pragma Detect_Blocking is active increase the
30978 protected action nesting level.
30979 (Unlock): When pragma Detect_Blocking is active decrease the protected
30980 action nesting level.
30981
30982 * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
30983 Protected_Action_Nesting.
30984
30985 * s-taskin.ads: Adding the field Protected_Action_Nesting to the
30986 Common_ATCB record. It contains the dynamic level of protected action
30987 nesting for each task. It is needed for checking whether potentially
30988 blocking operations are called from protected operations.
30989 (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
30990 Detect_Blocking is active or not in the partition.
30991
30992 * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
30993 raise Program_Error if called from a protected operation.
30994 (Task_Entry_Call): When pragma Detect_Blocking is active, raise
30995 Program_Error if called from a protected operation.
30996 (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
30997 Program_Error if called from a protected operation.
30998
30999 * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
31000 raise Program_Error if called from a protected operation.
31001
31002 * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
31003 raise Program_Error if called from a protected operation, and increase
31004 the protected action nesting level.
31005 (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
31006 Program_Error if called from a protected operation, and increase the
31007 protected action nesting level.
31008 (Unlock_Entries): When pragma Detect_Blocking is active decrease the
31009 protected action nesting level.
31010
31011 * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
31012 raise Program_Error if called from a protected operation, and increase
31013 the protected action nesting level.
31014 (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
31015 Program_Error if called from a protected operation, and increase the
31016 protected action nesting level.
31017 (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
31018 raise Program_Error if called from a protected operation.
31019 (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
31020 active, raise Program_Error if called from a protected operation.
31021 (Unlock_Entry): When pragma Detect_Blocking is active decrease the
31022 protected action nesting level.
31023
31024 * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
31025 insertion of the statement raising Program_Error. The run time
31026 contains the required machinery for handling that.
31027
31028 * sem_util.ads: Change comment associated to procedure
31029 Check_Potentially_Blocking_Operation.
31030 This procedure does not insert a call for raising the exception because
31031 that is currently done by the run time.
31032
31033 * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
31034
31035 * init.c: Add the global variable __gl_detect_blocking that indicates
31036 whether pragma Detect_Blocking is active (1) or not (0). Needed for
31037 making the pragma available at run time.
31038 (__gnat_set_globals): Pass and update the detect_blocking parameter.
31039
31040 * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
31041 pragma Detect_Blocking is active.
31042
31043 * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
31044
31045 * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
31046 DB is found in the ali file. Any unit compiled with pragma
31047 Detect_Blocking active forces its effect in the whole partition.
31048
31049 * a-retide.adb (Delay_Until): Raise Program_Error if pragma
31050 Detect_Blocking is active and delay is called from a protected
31051 operation.
31052
31053 * bindgen.adb (Gen_Adainit_Ada): When generating the call to
31054 __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
31055 Detect_Blocking is active (0 otherwise).
31056 (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
31057 as Detect_Blocking parameter if pragma Detect_Blocking is active (0
31058 otherwise).
31059
310602004-09-09 Thomas Quinot <quinot@act-europe.fr>
31061
31062 * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
31063 GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
31064 package.
31065
31066 * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
31067 (Register_Receiving_Stub): Add Subp_Info formal parameter.
31068 Update API in placeholder implemetation of s-parint to reflect changes
31069 in distribution runtime library.
31070
31071 * sem_ch3.adb (Expand_Derived_Record): Rename to
31072 Expand_Record_Extension.
31073
31074 * sem_disp.adb (Check_Controlling_Formals): Improve error message for
31075 primitive operations of potentially distributed object types that have
31076 non-controlling anonymous access formals.
31077
31078 * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
31079 subprogram.
31080 New implementation of expansion for remote access-to-subprogram types,
31081 based on the RACW infrastructure.
31082 This version of sem_dist is compatible with PolyORB/DSA as well as
31083 GLADE.
31084
31085 * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
31086 Asynchrronous that applies to a remote access-to-subprogram type, mark
31087 the underlying RACW type as asynchronous.
31088
31089 * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
31090 __gnat_using_gnu_linker to 1.
31091
31092 * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
31093 g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
31094 GNAT.Perfect_Hash_Generators, and remove the empty
31095 GNAT.Perfect_Hash package.
31096
31097 * atree.adb: Minor reformatting
31098
31099 * exp_ch3.adb (Expand_Derived_Record): Rename to
31100 Expand_Record_Extension.
31101 (Build_Record_Init_Proc.Build_Assignment): The default expression in
31102 a component declaration must remain attached at that point in the
31103 tree so New_Copy_Tree copies it if the enclosing record type is derived.
31104 It is therefore necessary to take a copy of the expression when building
31105 the corresponding assignment statement in the init proc.
31106 As a side effect, in the case of a derived record type, we now see the
31107 original expression, without any rewriting that could have occurred
31108 during expansion of the ancestor type's init proc, and we do not need
31109 to go back to Original_Node.
31110
31111 * exp_ch3.ads (Expand_Derived_Record): Rename to
31112 Expand_Record_Extension.
31113
31114 * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
31115 Returns the RACW type used to implement a remote access-to-subprogram
31116 type.
31117 (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
31118 New subprograms. Used to create a proxy tagged object for a remote
31119 subprogram. The proxy object is used as the designated object
31120 for RAS values on the same partition (unless All_Calls_Remote applies).
31121 (Build_Get_Unique_RP_Call): New subprogram. Build a call to
31122 System.Partition_Interface.Get_Unique_Remote_Pointer.
31123 (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
31124 Renamed from Add_RAS_*_Attribute.
31125 (Add_Receiving_Stubs_To_Declarations): Generate a table of local
31126 subprograms.
31127 New implementation of expansion for remote access-to-subprogram types,
31128 based on the RACW infrastructure.
31129
31130 * exp_dist.ads (Copy_Specification): Update comment to note that this
31131 function can copy the specification from either a subprogram
31132 specification or an access-to-subprogram type definition.
31133
311342004-09-09 Ed Schonberg <schonberg@gnat.com>
31135
31136 * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
31137 in an instance, between an explicit subprogram an one inherited from a
31138 type derived from an actual.
31139
31140 * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
31141 add a polling call if the subprogram is to be inlined by the back-end,
31142 to avoid repeated calls with multiple inlinings.
31143
31144 * checks.adb (Apply_Alignment_Check): If the expression in the address
31145 clause is a call whose name is not a static entity (e.g. a dispatching
31146 call), treat as dynamic.
31147
311482004-09-09 Robert Dewar <dewar@gnat.com>
31149
31150 * g-trasym.ads: Minor reformatting
31151
31152 * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
31153 packed arrays, since unused bits are expected to be zero for a
31154 comparison.
31155
311562004-09-09 Eric Botcazou <ebotcazou@act-europe.fr>
31157
31158 * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
31159 comment.
31160
311612004-09-09 Pascal Obry <obry@gnat.com>
31162
31163 * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
31164 enable map file generation. Add the right option to generate the map
31165 file if Map_File is set to True.
31166
31167 * gnatdll.adb (Gen_Map_File): New variable.
31168 (Syntax): Add info about new -m (Map_File) option.
31169 (Parse_Command_Line): Add support for -m option.
31170 (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
31171 Minor reformatting.
31172
311732004-09-09 Laurent Pautet <pautet@act-europe.fr>
31174
31175 * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
31176 new gnatdist implementation.
31177 Define a subpackage isolating the output routines specific to this
31178 verbose mode.
31179
311802004-09-09 Joel Brobecker <brobecker@gnat.com>
31181
31182 * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
31183
31184 * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
31185
311862004-09-09 Cyrille Comar <comar@act-europe.fr>
31187
31188 * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
31189 internal unit.
31190
31191 * opt.ads: Add Ada_Version_Runtime constant used to decide which
31192 version of the language is used to compile the run time.
31193
311942004-09-09 Arnaud Charlet <charlet@act-europe.fr>
31195
31196 * sem_util.adb (Requires_Transient_Scope): Re-enable handling
31197 of variable length temporaries for function return now that the
31198 back-end and gigi support it.
31199
23c7b149 312002004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6cdb2c6e
AC
31201
31202 * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
31203
31204 * trans.c (struct stmt_group): Delete field GLOBAL.
31205 (gnat_init_stmt_group): Do not initialize it.
31206 (call_to_gnu): Use save_expr, not protect_multiple_eval.
31207 (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
31208 (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
31209 (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
31210 (start_stmt_group): Likewise.
31211 (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
31212
31213 * utils2.c (ggc.h): Include.
31214 (build_call_raise): Call build_int_cst, not build_int_2.
31215
31216 * utils.c (gnat_init_decl_processing): Fix arg to
31217 build_common_tree_nodes.
31218 (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
31219 (gnat_define_builtin): Set built_in_decls.
31220 (init_gigi_decls): Call build_int_cst, not build_int_2.
31221
31222 * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
31223 (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
31224 (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
31225 (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
31226 SET_TYPE_MODULE): Use them.
31227 (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
31228 (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
31229 (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
31230 SET_TYPE_ADA_SIZE): Likewise.
31231 (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
31232 (DECL_CONST_CORRESPONDING_VAR,
31233 SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
31234 (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
31235 (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
31236 (TYPE_RM_SIZE_NUM): New macro.
31237 (TYPE_RM_SIZE): Modified to use above.
31238
31239 * cuintp.c: (build_cst_from_int): New function.
31240 (UI_To_gnu): Use it.
31241
31242 * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
31243 (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
31244 (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
31245 MIN_EXPR for the size, copy it into new.
31246
23c7b149 312472004-09-01 Robert Dewar <dewar@gnat.com>
6cdb2c6e
AC
31248
31249 * exp_ch6.adb (Expand_Call): Properly handle validity checks for
31250 packed indexed component where array is an IN OUT formal. This
31251 generated garbage code previously.
31252
31253 * gnat_ugn.texi: Document -fverbose-asm
31254
31255 * gnat-style.texi: Minor updates (note that boolean constants and
31256 variables are joined with AND/OR rather than short circuit forms).
31257
23c7b149 312582004-09-01 Ed Schonberg <schonberg@gnat.com>
6cdb2c6e
AC
31259
31260 * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
31261 it is an upward conversion of an untagged type with no representation
31262 change.
31263
23c7b149 312642004-09-01 Thomas Quinot <quinot@act-europe.fr>
6cdb2c6e
AC
31265
31266 * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
31267 System.Partition_Interface.
31268
31269 * checks.adb (Apply_Access_Checks): Do not generate checks when
31270 expander is not active (but check for unset reference to prefix of
31271 dereference).
31272
31273 * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
31274 pragma Debug as an if statement with a constant condition, for
31275 consistent treatment of entity references contained within the
31276 enclosed procedure call.
31277
23c7b149 312782004-09-01 Vincent Celier <celier@gnat.com>
6cdb2c6e
AC
31279
31280 * bindgen.adb: (Set_EA_Last): New procedure
31281 (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
31282 Set_EA_Last.
31283 (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
31284 (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
31285 linked without errors.
31286 (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
31287 ST and EA.
31288 (Gen_Exception_Table_C): Correct same bugs
31289
31290 * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
31291
31292 * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
31293 on Windows, make sure that the drive letter is in upper case.
31294
31295 * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
31296 Windows, when the drive letter is added and Case_Sensitive is True, the
31297 drive letter is forced to upper case.
31298
31299 * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
31300 to Options_2 for the call to MLib.Utl.Gcc.
31301
31302 * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
31303 directory separator when defining BASE_DIR.
31304
23c7b149 313052004-09-01 Pascal Obry <obry@gnat.com>
6cdb2c6e
AC
31306
31307 * gprcmd.adb (Extend): Do not output trailing directory separator. This
31308 is not needed and it confuses Windows GNU/make which does not report
31309 directory terminated by a slash as a directory.
31310 (gprcmd): Idem for "pwd" internal command.
31311
31312 * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
31313 target names rewrite to fix regressions with recent version of
31314 GNU/make. Starting with GNU/make 3.80 the pipe character was not
31315 handled properly anymore.
31316
4eb104c1
AS
313172004-09-01 Andreas Schwab <schwab@suse.de>
31318
31319 * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
31320 * raise.c [!IN_RTS]: Undef abort.
31321
6a6bfc8e
NS
313222004-08-27 Nathan Sidwell <nathan@codesourcery.com>
31323
ce552f75
NS
31324 * utils2.c (build_allocator): Use ssize_int.
31325
6a6bfc8e
NS
31326 * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
31327
f8b7bf58
AS
313282004-08-27 Andreas Schwab <schwab@suse.de>
31329
31330 * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
31331
15793d0c
NS
313322004-08-25 Nathan Sidwell <nathan@codesourcery.com>
31333 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6615c446 31334
15793d0c
NS
31335 * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
31336
7d60be94
NS
313372004-08-25 Nathan Sidwell <nathan@codesourcery.com>
31338
31339 * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
31340 * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
31341 * utils.c (init_gigi_decls): Likewise.
31342 * utils2.c (build_call_raise, build_allocator): Likewise.
6615c446 31343
8c1d6d62
NS
313442004-08-24 Nathan Sidwell <nathan@codesourcery.com>
31345
7d60be94 31346 * utils.c (gnat_init_decl_processing): Adjust
8c1d6d62
NS
31347 build_common_tree_nodes call.
31348
3224bead
NS
313492004-08-20 Nathan Sidwell <nathan@codesourcery.com>
31350
31351 * utils2.c (build_allocator): Use build_int_cst for negative
31352 size types.
31353
4766261d
RH
313542004-08-18 Richard Henderson <rth@redhat.com>
31355
31356 * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
31357
1f6c00df
NS
313582004-08-16 Nathan Sidwell <nathan@codesourcery.com>
31359
31360 * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
31361 call.s
31362 * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
31363 (gnat_to_gnu): Likewise.
31364
4c46b835
AC
313652004-08-16 Pascal Obry <obry@gnat.com>
31366
31367 * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
31368 backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
31369 option and not mdll anymore. Update comment.
31370
313712004-08-16 Pascal Obry <obry@gnat.com>
31372
31373 * bld.adb (Put_Include_Project): Properly handle directory separators
31374 on Windows.
31375
313762004-08-16 Ed Schonberg <schonberg@gnat.com>
31377
31378 * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
31379 decreasing the number of allocated junk nodes while searching for the
31380 appropriate subprogram.
31381
4a90aeeb
NS
313822004-08-15 Nathan Sidwell <nathan@codesourcery.com>
31383
31384 * cuintp.c (UI_To_gnu): Use build_int_cst..
31385 * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
31386 * utils.c (init_gigi_decls): Likewise.
31387 * utils2.c (build_call_raise): Likewise.
31388
244e5a2c
AC
313892004-08-13 Olivier Hainque <hainque@act-europe.fr>
31390
31391 * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
31392 for a global aliased object with a variable size and an unconstrained
31393 nominal subtype, pretend there is no initializer if the one we have is
31394 incomplete, and avoid referencing an inexistant component in there. The
31395 part we have will be rebuilt anyway and the reference may confuse
31396 further operations.
31397
313982004-08-13 Thomas Quinot <quinot@act-europe.fr>
31399
31400 * einfo.ads: Minor reformatting
31401
31402 * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
31403 restrictions in the ALI if we only want to warn about violations.
31404
314052004-08-13 Vincent Celier <celier@gnat.com>
31406
31407 * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
31408 when creating a new Unit_Record in table Units.
31409
31410 * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
31411 that are violated, if any.
31412
31413 * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
31414 add directory separator if path already ends with a directory separator.
31415
314162004-08-13 Ed Schonberg <schonberg@gnat.com>
31417
31418 * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
31419 unit, this is an attempt to inline a construct that is not available in
31420 the current restricted mode, so abort rather than trying to continue.
31421
31422 * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
31423 discriminants that rename those of the parent, recover names of
31424 original discriminants for the constraint on the full view of the
31425 parent.
31426 (Complete_Private_Subtype): Do not create a subtype declaration if the
31427 subtype is an itype.
31428
31429 * gnat_rm.texi: Added section on implementation of discriminated
31430 records with default values for discriminants.
31431
314322004-08-13 Ed Schonberg <schonberg@gnat.com>
31433
31434 PR ada/15601
31435 * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
31436 the second operand is overloaded.
31437
1a186ec5
RH
314382004-08-10 Richard Henderson <rth@redhat.com>
31439
31440 * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
31441 add __builtin_alloca.
31442
89f1a702
RH
314432004-08-10 Richard Henderson <rth@redhat.com>
31444
31445 * config-lang.in (boot_language): Yes.
31446
5d09245e
AC
314472004-08-09 Thomas Quinot <quinot@act-europe.fr>
31448
31449 * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
31450 from complaining on potential uninitialized reference.
31451 Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
31452 new specification and test explicitly for non-zero return value.
31453
31454 * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
31455 returning C.int, to avoid using a derived boolean type.
31456
31457 * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
31458 Duplicate_Subexpr_No_Checks in preference to direct use of
31459 Remove_Side_Effects and New_Copy_Tree.
31460 Clear Comes_From_Source on prefix of 'Size attribute reference.
31461
31462 * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
31463 g-socthi-vxworks.adb: Change calls to
31464 GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
31465 and test explicitly for non-zero return value.
31466
6615c446 31467 * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
5d09245e
AC
31468 (Is_Socket_In_Set): Declare imported function as returning C.int, to
31469 avoid using a derived boolean type.
31470
314712004-08-09 Albert Lee <lee@gnat.com>
31472
31473 * system-irix-n32.ads: Refine tasking priority constants for IRIX.
31474
314752004-08-09 Pascal Obry <obry@gnat.com>
31476
31477 * gnat_ugn.texi: Document new way to build DLLs on Windows using
31478 GCC's -shared option.
31479
31480 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
31481 Options_2 parameter (options put after object files).
31482
314832004-08-09 Olivier Hainque <hainque@act-europe.fr>
31484
31485 * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
31486 ignore overflows on low and high bounds of an index to also account for
31487 differences in signedness between sizetype and gnu_index_subtype.
31488 These are as legitimate as the ones caused by a lower TYPE_PRECISION
31489 on sizetype.
31490
314912004-08-09 Robert Dewar <dewar@gnat.com>
31492
31493 * s-solita.ads, s-solita.adb: Minor reformatting
31494
31495 * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
31496 Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
31497 obsolescent section
31498 Add note that No_Implicit_Conditionals does not suppress
31499 run time constraint checks.
31500
31501 * vms_conv.ads: Minor reformatting
31502
31503 * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
31504 and necessary for following change).
31505 (Mark): Return new format Mark_Id containing sec stack address
31506 (Release): Use sec stack address from Mark_Id avoiding Self call
31507
31508 * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
31509 pointer (cleanup and necessary for following change).
31510 Define Mark_Id as record containing address of secondary stack, that way
31511 Release does not need to find the stack again, decreasing the number of
31512 calls to Self and improving efficiency.
31513
31514 * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
31515
31516 * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
31517 case variable into the individual case branches when possible.
31518
31519 * sem_ch11.adb: Minor reformatting
31520
31521 * prj.ads: Correct spelling of suffixs
31522
31523 * prj-nmsc.adb: Minor reformatting
31524 Correct spelling suffixs throughout (also in identifiers)
31525
31526 * freeze.adb: Minor spelling correction
31527
31528 * exp_ch2.adb: Cleanups to handling of Current_Value
31529 (no functional effect).
31530
31531 * bld.adb: Correct spelling of suffixs
31532
31533 * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
31534
315352004-08-09 Ed Schonberg <schonberg@gnat.com>
31536
31537 PR ada/15408
5d09245e
AC
31538 * sem_ch7.adb (Install_Private_Declarations): In the body of the
31539 package or of a child, private entities are both immediately_visible
31540 and not hidden.
31541
315422004-08-09 Ed Schonberg <schonberg@gnat.com>
31543
31544 * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
31545 there are no range checks on the value of the literal.
31546
31547 * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
31548 wrapped is the triggering alternative of an asynchronous select, action
31549 statements mustbe inserted before the select itself.
31550
31551 * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
31552 case where the prefix is a protected function call.
31553 (Resolve_Attribute, case 'Access): The attribute reference on a
31554 subprogram is legal in a generic body if the subprogram is declared
31555 elsewhere.
31556
315572004-08-09 Vincent Celier <celier@gnat.com>
31558
31559 * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
31560 languages, otherwise building the library may fail with unresolved
31561 symbols.
31562 (Compile_Sources): Do not build libraries if -c switch is used
31563
31564 * gnatlink.adb (Process_Args): New switches -M and -Mmap
31565 (Write_Usage): If map file creation is supported, output new switches
31566 -M and -Mmap.
31567 (Gnatlink): When -M is specified, add the necessary switch(es) to the
31568 gcc call, when supported.
31569
31570 * Makefile.in: Added indepsw.o to the object list for gnatlink
31571 Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
31572
31573 * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
31574 indepsw.adb, indepsw.ads: New files.
31575
315762004-08-09 Bernard Banner <banner@gnat.com>
31577
31578 * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
31579
31580 * Makefile.in: add section for vxworks x86
31581
315822004-08-09 Hristian Kirtchev <kirtchev@gnat.com>
31583
31584 * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
31585 per-object constrained components where the discriminant is of an
31586 Access type.
31587 (Build_Record_Init_Proc): Add condition to prevent the inheritance of
31588 the parent initialization procedure for derived Unchecked_Unions.
31589 Instead, derived Unchecked_Unions build their own initialization
31590 procedure.
31591 (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
31592 Check the body of the subprogram for details.
31593 (Freeze_Record_Type): Prevent the inheritance of discriminant checking
31594 functions for derived Unchecked_Union types by introducing a condition.
31595 Allow the creation of TSS equality functions for Unchecked_Unions.
31596 (Make_Eq_Case): Rename formal parameter Node to E in function signature.
31597 Add formal parameter Discr to function signature. Discr is used to
31598 control the generated case statement for Unchecked_Union types.
31599 (Make_Eq_If): Rename formal parameter Node to E in function signature.
31600
31601 * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
31602 Unchecked_Unions.
31603 Check the body of the subprogram for details.
31604 (Expand_Composite_Equality): Augment composite type equality to include
31605 correct handling of Unchecked_Union components.
31606 (Expand_N_In): Add condition to detect illegal membership tests when the
31607 subtype mark is a constrained Unchecked_Union and the expression lacks
31608 inferable discriminants, and build a Raise_Program_Error node.
31609 (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
31610 to detect types that contain components of unconstrained Unchecked_Union
31611 subtype. Add condition to detect equality between types that have an
31612 unconstrained Unchecked_Union component, and build a Raise_Program_Error
31613 node. Add condition to detect equality between Unchecked_Union types
31614 that lack inferable discriminants, and build a Raise_Program_Error node.
31615 Otherwise build a TSS equality function call.
31616 (Expand_N_Type_Conversion): Add condition to detect illegal conversions
31617 from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
31618 with the operand lacking inferable discriminants, and build a Raise_
31619 Program_Error node.
31620 (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
31621 composite equality.
31622 (Has_Inferable_Discriminants): Implement new predicate for objects and
31623 expressions of Unchecked_Union type. Check the body of subprogram for
31624 details.
31625 (Has_Unconstrained_UU_Components): Add function
31626 Component_Is_Unconstrained_UU. It is used to detect whether a single
31627 component is of an unconstrained Unchecked_Union subtype. Add function
31628 Variant_Is_Unconstrained_UU. It is used to detect whether a single
31629 component inside a variant is of an unconstrained Unchecked_Union type.
31630
31631 * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
31632 inferred discriminant values. Add condition to generate a case
31633 statement with an inferred discriminant as the switch.
31634 (Make_Component_List_Assign): Introduce a Boolean flag that determines
31635 the behaviour of the subprogram in the presence of an Unchecked_Union.
31636 Add condition to trigger the usage of the inferred discriminant value
31637 as the generated case statement switch.
31638 (Make_Field_Assign): Introduce a Boolean flag that determines the
31639 behaviour of the subprogram in the presence of an Unchecked_Union. Add
31640 condition to trigger the usage of the inferred discriminant value as
31641 the right-hand side of the generated assignment.
31642
31643 * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
31644 parameter generation when dealing with Unchecked_Unions.
31645
31646 * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
31647 checks for Unchecked_Unions.
31648
31649 * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
31650
31651 * exp_attr.adb (Expand_N_Attribute_Reference): Produce
31652 Raise_Program_Error nodes for the execution of Read and Write
31653 attributes of Unchecked_Union types and the execution of Input and
31654 Output attributes of Unchecked_Union types that lack default
31655 discriminant values.
31656
31657 * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
31658 Unchecked_Union. Add procedure Check_Component. It is used to inspect
31659 per-object constrained components of Unchecked_Unions for being
31660 Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
31661 check individual components withing a variant.
31662
31663 * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
31664 comparison of Unchecked_Unions.
31665 (Resolve_Equality_OP): Remove guard that prevents equality between
31666 Unchecked_Unions.
31667
31668 * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
31669 of component subtypes for Unchecked_Union components.
31670 (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
31671 since it is the actual subtype.
31672
31673 * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
31674 pass of Unchecked_Union subtypes as generic actuals to formal types
31675 that lack known_discriminant_parts or that are derived Unchecked_Union
31676 types, and do nothing. In any other case, produce an error message.
31677
31678 * sem_ch3.adb (Analyze_Component_Declaration): Add function
31679 Contains_POC. It determines whether a constraint uses the discriminant
31680 of an enclosing record type.
31681 Add condition to detect per-object constrained component and set the
31682 appropriate flag.
31683 (Derived_Type_Declaration): Remove guard that prevents derivation from
31684 Unchecked_Union types.
31685 (Process_Subtype): Remove quard that prevents the creation of Unchecked_
31686 Union subtypes.
31687
31688 * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
31689 references to Unchecked_Union discriminants.
31690
31691 * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
31692 formal generation when dealing with Unchecked_Unions.
31693 (Set_Actual_Subtypes): Add condition to prevent generation of actual
31694 subtypes for Unchecked_Unions.
31695
31696 * sem_ch7.adb (Analyze_Package_Specification): Add procedure
31697 Inspect_Unchecked_Union_Completion. It is used to detect incorrect
31698 completions of discriminated partial views by Unchecked_Unions and
31699 produce an error message.
31700
317012004-08-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31702
31703 * trans.c (struct stmt_group): New field, GLOBAL.
31704 (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
31705 (struct elab_info): New struct.
31706 (elab_info_list, gnu_elab_proc_stack): New variables.
31707 (Compilation_Unit_to_gnu): New procedure.
31708 (gigi): Call it and also handle elaboration procs we've saved.
31709 (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
31710 global field from parent.
31711 (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
31712 (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
31713 (start_stmt_group): Initialize global field from parent.
31714 (add_decl_expr): Set to global for current statement group.
31715 (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
31716 post.
31717
31718 * utils.c (global_bindings_p): True when no current_function_decl; no
31719 longer check current_binding_level.
31720
317212004-08-09 Ben Brosgol <brosgol@gnat.com>
31722
31723 * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
31724 choice.
31725
31726 * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
31727
160ff372
AS
317282004-08-06 Andreas Schwab <schwab@suse.de>
31729
31730 * utils.c (gnat_define_builtin): Remove second parameter of
31731 make_decl_rtl.
31732 (begin_subprog_body): Likewise.
31733
615cbd95
AC
317342004-07-26 Arnaud Charlet <charlet@act-europe.fr>
31735
31736 * sem_util.adb (Requires_Transient_Scope): Temporarily disable
31737 optimization, not supported by the tree-ssa back-end.
31738
317392004-07-26 Olivier Hainque <hainque@act-europe.fr>
31740
31741 * s-mastop-irix.adb: Update comments.
31742
31743 * a-except.adb (Exception_Information): Raise Constraint_Error if
31744 exception Id is Null_Id.
31745 This is required behavior, which is more reliably and clearly checked
31746 at the top level interface level.
31747
317482004-07-26 Javier Miranda <miranda@gnat.com>
31749
31750 * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
31751 call if a component has no default_expression and the box is used.
31752
31753 * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
31754 default_expression and you use box, it behaves as if you had declared a
31755 stand-alone object.
31756 (Resolve_Record_Aggregate): If a component has no default_expression and
31757 you use box, it behaves as if you had declared a stand-alone object.
31758
31759 * sem_ch10.adb (Install_Siblings): Do not make visible the private
31760 entities of private-with siblings.
31761
317622004-07-26 Ed Schonberg <schonberg@gnat.com>
31763
31764 * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
31765 for a component of an itype, set the parent pointer for analysis,
31766 there is no list in which to insert it.
31767
31768 * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
31769 bona-fide renamings, not for inherited operations.
31770
31771 * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
31772 actual for a formal that is an access parameter, create local
31773 finalization list even if the expression is not an aggregate.
31774
317752004-07-26 Ed Schonberg <schonberg@gnat.com>
31776
31777 PR ada/16213
31778 * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
31779 Diagnose properly illegal subprogram renamings that are library units.
31780
317812004-07-26 Ed Schonberg <schonberg@gnat.com>
31782
31783 PR ada/15588
31784 * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
31785 conversion rewritten as an unchecked conversion, check that original
31786 expression is a variable.
31787
31788 * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
31789 unchecked_conversion, create new node rather than rewriting in place,
31790 to preserve original construct.
31791
317922004-07-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31793
31794 * gigi.h (gnat_expand_body): Deleted.
31795
31796 * Make-lang.in: (trans.o): Depends on function.h.
31797
31798 * misc.c: (gnat_expand_body): Moved to here.
31799
31800 * trans.c (gnat_expand_body_1): Deleted.
31801 (gnat_expand_body): Moved from here.
31802 (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
31803 (add_stmt): Check for marked visited with global_bindings_p.
31804 (gnat_gimplify_expr, case COMPONENT_REF): New case.
31805 (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
31806
31807 * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
31808 VIEW_CONVERT_EXPR if not operation type.
31809
31810 * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
31811 fat pointer.
31812
31813 * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
31814 changes: reformatting of negation operators, removing unneeded
31815 inequality comparison with zero, converting equality comparisons with
31816 zero to negations, changing int/0/1 to bool/false/true, replace calls
31817 to gigi_abort with abort, and various other similar changes.
31818
318192004-07-26 Vincent Celier <celier@gnat.com>
31820
31821 * gnatcmd.adb (GNATCmd): Add processing for new built-in command
31822 "setup".
31823
31824 * make.adb (Gnatmake): Fail when a library is not present and there is
31825 no object directory.
31826
31827 * mlib-prj.adb (Check_Library): No need to check if the library needs
31828 to be rebuilt if there is no object directory, hence no object files
31829 to build the library.
31830
31831 * opt.ads (Setup_Projects): New Boolean flag.
31832
31833 * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
31834 Location.
31835 Create directory when Kind /= "" and in "gnat setup". Report error if
31836 directory cannot be created.
31837 (Ada_Check): Create library interface copy dir if it does not exist
31838 and we are in "gnat setup".
31839 (Find_Sources): No error if in "gnat setup" and no Ada sources were
31840 found.
31841 (Language_Independent_Check): Create object directory, exec directory
31842 and/or library directory if they do not exist and we are in
31843 "gnat setup".
31844
31845 * vms_conv.ads: (Command_Type): New command Setup.
31846
31847 * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
31848
31849 * vms_data.ads: Add qualifiers/switches for new built-in command
31850 "setup".
31851
b785f485
RH
318522004-07-25 Richard Henderson <rth@redhat.com>
31853
31854 * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
31855 DECL_IGNORED_P on RESULT_DECL.
31856
35ae2ed8
AC
318572004-07-20 Olivier Hainque <hainque@act-europe.fr>
31858
31859 * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
31860 allocation and potentially overflowing update with
31861 Tailored_Exception_Information. Use the sec-stack free procedural
31862 interface to output Exception_Information instead.
31863
31864 * a-except.adb (To_Stderr): New subprogram for character, and string
31865 version moved from a-exextr to be visible from other separate units.
31866 (Tailored_Exception_Information): Remove the procedural version,
31867 previously used by the default Last_Chance_Handler and not any more.
31868 Adjust various comments.
31869
31870 * a-exexda.adb: Generalize the exception information procedural
31871 interface, to minimize the use of secondary stack and the need for
31872 local buffers when the info is to be output to stderr:
31873 (Address_Image): Removed.
31874 (Append_Info_Character): New subprogram, checking for overflows and
31875 outputing to stderr if buffer to fill is of length 0.
31876 (Append_Info_String): Output to stderr if buffer to fill is of length 0.
31877 (Append_Info_Address, Append_Info_Exception_Name,
31878 Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
31879 Append_Info_Basic_Exception_Traceback,
31880 Append_Info_Exception_Information): New subprograms.
31881 (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
31882 (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
31883 Exception_Info_Maxlength, Exception_Name_Length,
31884 Exception_Message_Length): New subprograms.
31885 (Exception_Information): Use Append_Info_Exception_Information.
31886 (Tailored_Exception_Information): Use
31887 Append_Info_Basic_Exception_Information.
31888 Export services for the default Last_Chance_Handler.
31889
31890 * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
31891 other separate units.
31892
318932004-07-20 Vincent Celier <celier@gnat.com>
31894
31895 * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
31896
318972004-07-20 Ed Schonberg <schonberg@gnat.com>
31898
31899 * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
31900 emit itype references for the designated types of component types that
31901 are declared outside of the full record declaration, and that may
31902 denote a partial view of that record type.
31903
319042004-07-20 Ed Schonberg <schonberg@gnat.com>
31905
31906 PR ada/15607
31907 * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
31908 which is the designated type in an access component declaration, to the
31909 list of incomplete dependents of the parent type, to avoid elaboration
31910 issues with out-of-scope subtypes.
31911 (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
31912 full view of the parent.
31913
319142004-07-20 Ed Schonberg <schonberg@gnat.com>
31915
31916 PR ada/15610
31917 * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
31918 entities that are hidden, such as references to generic actuals
31919 outside an instance.
31920
319212004-07-20 Javier Miranda <miranda@gnat.com>
31922
31923 * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
31924 support to the new notation.
31925 (Analyze_Selected_Component): Add call to Try_Object_Operation.
31926
319272004-07-20 Jose Ruiz <ruiz@act-europe.fr>
31928
31929 * s-taprob.adb: Adding the elaboration code required for initializing
31930 the tasking soft links that are common to the full and the restricted
31931 run times.
31932
31933 * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
31934 restricted run time has been moved to the package
31935 System.Soft_Links.Tasking.
31936
31937 * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
31938 restricted run time has been moved to the package
31939 System.Soft_Links.Tasking.
31940
31941 * Makefile.rtl: Add entry for s-solita.o in run-time library list.
31942
31943 * s-solita.ads, s-solita.adb: New files.
31944
319452004-07-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31946
31947 * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
31948 Case_Statement_to_gnu): Split off from gnat_to_gnu.
31949 (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
31950 Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
31951 Exception_Handler_to_gnu_zcx): Likewise.
31952
6e34d3a3
JM
319532004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
31954
31955 * gigi.h (builtin_function): Declare.
31956
523456db
AC
319572004-07-15 Robert Dewar <dewar@gnat.com>
31958
31959 * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
31960 reformatting
31961
31962 * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
31963 access values as an example of a warning.
31964
31965 * gnat_rm.texi: Document new attribute Has_Access_Values
31966
31967 * gnat-style.texi: Document that box comments belong on nested
31968 subprograms
31969
31970 * sem_util.ads (Has_Access_Values): Improved documentation
31971
31972 * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
31973
31974 * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
31975 (Process_Interface_Name): Call to this new procedure
31976 (Set_Extended_Import_Export_External_Name): Call to this new procedure
31977
31978 * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
31979
31980 * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
31981
31982 * einfo.ads: Minor comment typo fixed
31983
319842004-07-15 Jose Ruiz <ruiz@act-europe.fr>
31985
31986 * snames.adb: Add _atcb.
31987
31988 * snames.ads: Add Name_uATCB.
31989
31990 * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
31991 (in the expanded code) when using the restricted run time.
31992
31993 * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
31994 a in parameter in order to allow ATCBs to be preallocated (in the
31995 expanded code).
31996
31997 * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
31998 order to allow ATCBs to be preallocated. In case of error, the ATCB is
31999 deallocated in System.Tasking.Stages.
32000
32001 * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
32002 order to allow ATCBs to be preallocated.
32003
32004 * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
32005 here. It was previously done in Initialize_ATCB.
32006
32007 * rtsfind.ads: Make the Ada_Task_Control_Block visible.
32008
32009 * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
32010 Restricted run time.
32011
32012 * exp_ch3.adb: When using the Restricted run time, pass the
32013 preallocated Ada_Task_Control_Block when creating a task.
32014
320152004-07-15 Ed Schonberg <schonberg@gnat.com>
32016
32017 * sem_util.adb (Normalize_Actuals): If there are no actuals on a
32018 function call that is itself an actual in an enclosing call, diagnose
32019 problem here rather than assuming that resolution will catch it.
32020
32021 * sem_ch7.adb (Analyze_Package_Specification): If the specification is
32022 the local copy of a generic unit for a formal package, and the generic
32023 is a child unit, install private part of ancestors before compiling
32024 private part of spec.
32025
32026 * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
32027 use scope entities rather than tree structures, to handle properly
32028 parent units that are instances rewritten as bodies for inlining
32029 purposes.
32030
32031 * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
32032 Remove_Parents): Handle properly a parent unit that is an
32033 instantiation, when the unit has been rewritten as a body for inlining
32034 purposes.
32035
32036 * par.adb (Goto_List): Global variable to collect goto statements in a
32037 given unit, for use in detecting natural loops.
32038
32039 * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
32040 use in detecting natural loops.
32041
32042 * par-labl.adb (Find_Natural_Loops): Recognize loops create by
32043 backwards goto's, and rewrite as a infinite loop, to improve locality
32044 of temporaries.
32045
32046 * exp_util.adb (Force_Evaluation): Recognize a left-hand side
32047 subcomponent that includes an indexed reference, to prevent the
32048 generation of copies that would miscompile the desired assignment
32049 statement.
32050 (Build_Task_Image_Decls): Add a numeric suffix to
32051 generated name for string variable, to avoid spurious conflicts with
32052 the name of the type of a single protected object.
32053
32054 * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
32055 loop with an explicit exit statement, to avoid generating an
32056 out-of-range value with 'Succ leading to spurious constraint_errors
32057 when compiling with -gnatVo.
32058
320592004-07-15 Thomas Quinot <quinot@act-europe.fr>
32060
32061 * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
32062 might not be analyzed yet, even if its Etype is already set (case of an
32063 unchecked conversion built using Unchecked_Convert_To, for example).
32064 If the prefix has already been analyzed, this will be a nop anyway.
32065
32066 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
32067 controller type, or an assignment of a record type with controlled
32068 components, copy only user data, and leave the finalization chain
32069 pointers untouched.
32070
320712004-07-15 Vincent Celier <celier@gnat.com>
32072
32073 * make.adb (Collect_Arguments): Improve error message when attempting
32074 to compile a source not part of any project, when -x is not used.
32075
32076 * prj.ads: (Defined_Variable_Kind): New subtype
32077
32078 * prj-attr.adb (Register_New_Package): Two new procedures to register
32079 a package with or without its attributes.
32080 (Register_New_Attribute): Mew procedure to register a new attribute in a
32081 package.
32082 New attribute oriented subprograms: Attribute_Node_Id_Of,
32083 Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
32084 Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
32085 Next_Attribute.
32086 New package oriented subprograms: Package_Node_Id_Of,
32087 Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
32088
32089 * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
32090 type.
32091 (Package_Node_Id): Now a private, self initialized type
32092 (Register_New_Package): New procedure to register a package with its
32093 attributes.
32094 New attribute oriented subprograms: Attribute_Node_Id_Of,
32095 Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
32096 Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
32097 Next_Attribute.
32098 New package oriented subprograms: Package_Node_Id_Of,
32099 Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
32100
32101 * prj-dect.adb (Parse_Attribute_Declaration,
32102 Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
32103
32104 * prj-makr.adb (Make): Parse existing project file before creating
32105 other files. Fail if there was an error during parsing.
32106
32107 * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
32108 new spec of Prj.Attr.
32109
32110 * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
32111 to new spec of Prj.Attr.
32112
321132004-07-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32114
32115 * utils2.c: Fix typo in comment.
32116
321172004-07-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
54805e13
RK
32118
32119 * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
32120 * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
32121
a1c7af89
AS
321222004-07-14 Andreas Schwab <schwab@suse.de>
32123
32124 * trans.c (gnat_init_stmt_group): Remove duplicate definition.
32125
a5cb3b30
AC
321262004-07-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32127
32128 * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
32129 object type.
32130 (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
32131 TYPE_STUB_DECL.
32132
32133 * misc.c (gnat_types_compatible_p): New function.
32134 (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
32135 (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
32136
32137 * trans.c (gigi): Move processing of main N_Compilation_Unit here.
32138 (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
32139 (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
32140 (mark_visited): Don't mark dummy type.
6615c446 32141 (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
a5cb3b30
AC
32142 parameter, we must remove any LJM building from GNU_NAME.
32143 (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
32144 (pos_to_constructor): Use int_const_binop.
32145 (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
32146 PARM_DECL.
32147
32148 * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
32149 (gnat_pushlevel): Set TREE_USE on BLOCK node.
32150 (gnat_install_builtins): Add __builtin_memset.
32151
321522004-07-13 Olivier Hainque <hainque@act-europe.fr>
32153
32154 * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
32155 for a renaming, stabilize the initialization expression if we are at a
32156 local level. At the local level, uses of the renaming may be performed
32157 by a direct dereference of the initializing expression, and we don't
32158 want possible variables there to be evaluated for every use.
32159
32160 * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
32161 Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
32162 them on the way. Account for the fact that we may introduce side
32163 effects in the process.
32164
0976078c
RH
321652004-07-13 Richard Henderson <rth@redhat.com>
32166
32167 * misc.c (default_pass_by_ref): Use pass_by_reference.
32168
9dcf6e73
JM
321692004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
32170
32171 * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
32172 LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
32173
ac45df5d
RH
321742004-07-08 Richard Henderson <rth@redhat.com>
32175
32176 * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
32177 commentary.
32178
15ce9ca2
AC
321792004-07-06 Vincent Celier <celier@gnat.com>
32180
32181 * vms_conv.ads: Minor reformatting.
32182 Alphabetical order for enumerated values of type Command_Type, to have
32183 the command in alphabetical order for the usage.
32184
32185 * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
32186 the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
32187
32188 * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
32189
32190 * makegpr.adb (Global_Archive_Exists): New global Boolean variable
32191 (Add_Archive_Path): Only add the global archive if there is one.
32192 (Build_Global_Archive): Set Global_Archive_Exists depending if there is
32193 or not any object file to put in the global archive, and don't build
32194 a global archive if there is none.
32195 (X_Switches): New table
32196 (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
32197 in the X_Switches table, if any.
32198 (Initialize): Make sure the X_Switches table is empty
32199 (Scan_Arg): Record -X switches in table X_Switches
32200
32201 * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
32202
32203 * make.adb: Minor comment fix
32204
32205 * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
32206 invoked with directory information, add the directory in front of the
32207 path.
32208
32209 * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
32210 invoked with directory information, add the directory in front of the
32211 path.
32212
32213 * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
32214 when Keep_Temporary_Files is False.
32215 (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
32216 directory information, add the directory in front of the path.
32217 When not on VMS, handle new switch -dn before the command to set
32218 Keep_Temporary_Files to True.
32219 (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
32220 everywhere.
32221
32222 * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
32223 invoked with directory information, add the directory in front of the
32224 path.
32225
322262004-07-06 Thomas Quinot <quinot@act-europe.fr>
32227
32228 * snames.ads, snames.adb (Name_Stub): New name for the distributed
32229 systems annex.
32230
32231 * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
32232 New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
32233
32234 * g-socket.adb (To_Timeval): Fix incorrect conversion of
32235 Selector_Duration to Timeval for the case of 0.0.
32236
32237 * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
32238 documentation from Evolve_And_Then.
32239
322402004-07-06 Jose Ruiz <ruiz@act-europe.fr>
32241
32242 * s-taprop-tru64.adb, s-taprop-os2.adb,
32243 s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
32244
322452004-07-06 Robert Dewar <dewar@gnat.com>
32246
32247 * s-osinte-hpux.ads, s-osinte-freebsd.ads,
32248 s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
32249 s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
32250 s-interr-sigaction.adb, s-taprop-irix-athread.adb,
32251 s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
32252 s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
32253 s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
32254 s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
32255 a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
32256 a-tags.ads, bindgen.ads, checks.adb, checks.adb,
32257 csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
32258 exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
32259 g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
32260 i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
32261 sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
32262 sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
32263 sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
32264 s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
32265 s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
32266 s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
32267 vms_data.ads: Minor reformatting,
32268 Fix bad box comment format.
32269
32270 * gnat_rm.texi: Fix minor grammatical error
32271
32272 * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
32273
32274 * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
32275 more cases of discriminated records to be recognized as not needing a
32276 secondary stack.
32277 (Has_Access_Values): New function.
32278
32279 * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
32280
32281 * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
32282 Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
32283 with LRM terminology).
32284 Change terminology in comments primitive type => elementary type.
32285
322862004-07-06 Ed Schonberg <schonberg@gnat.com>
32287
32288 PR ada/15602
32289 * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
32290 parameters do not impose any requirements on the presence of a body.
32291
322922004-07-06 Ed Schonberg <schonberg@gnat.com>
32293
32294 PR ada/15593
32295 * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
32296 compilation unit and is in an open scope at the point of instantiation,
32297 assume that a body may be present later.
32298
322992004-07-06 Ed Schonberg <schonberg@gnat.com>
32300
32301 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
32302 Improve error message when specified size is not supported.
32303
32304 * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
32305 is never a primitive operation.
32306
cb42deba
AS
323072004-07-05 Andreas Schwab <schwab@suse.de>
32308
32309 * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
32310 RECORD_OR_UNION_CHECK.
32311 (TYPE_CONTAINS_TEMPLATE_P): Likewise.
32312
98877933
KC
323132004-07-04 Kelley Cook <kcook@gcc.gnu.org>
32314
32315 * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
32316 dependency on xgnatugn, instead build it via a submake.
32317 (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
32318
8fff4fc1
RH
323192004-07-04 Richard Henderson <rth@redhat.com>
32320
32321 * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
32322
4dfa0342
RH
323232004-07-01 Richard Henderson <rth@redhat.com>
32324
32325 * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
32326 * utils.c (max_size): Likewise.
32327
909f21b3
RK
323282004-06-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32329
32330 * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
32331 and rest_of_type_compilation; add arg to create_*_decl.
15cd18b9 32332 (annotate_decl_with_node): Deleted.
909f21b3
RK
32333 (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
32334 * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
32335 (get_current_block_context, gnat_pushdecl): New declarations.
32336 (gnat_init_stmt_group): Likewise.
32337 (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
32338 * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
32339 (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
32340 (gnat_init): Call gnat_init_stmt_group.
32341 * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
32342 (gnu_pending_elaboration_list): Deleted.
32343 (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
32344 (gigi): Rearrange initialization calls and move some to last above.
32345 (gnat_to_gnu): If statement and not in procedure, go into elab proc.
32346 Delete calls to add_decl_expr; add arg to create_*_decl.
32347 (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
6615c446 32348 (gnat_to_gnu, case N_Subprogram_Body): Move some code to
909f21b3
RK
32349 begin_subprog_body and call it.
32350 Don't push and pop ggc context.
32351 (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
32352 (add_stmt): Remove handling of DECL_EXPR from here.
32353 If not in function, mark visited.
32354 (add_decl_expr): Put global at top level.
32355 Check for cases of DECL_INITIAL we have to handle here.
32356 (process_type): Add extra arg to create_type_decl.
32357 (build_unit_elab): Rework to just gimplify.
32358 * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
32359 (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
32360 (get_pending_elaborations, pending_elaborations_p): Likewise.
32361 (push_pending_elaborations, pop_pending_elaborations): Likewise.
32362 (get_elaboration_location, insert_elaboration_list): Likewise.
32363 (gnat_binding_level): Renamed from ada_binding_level.
32364 (init_gnat_to_gnu): Don't clear pending_elaborations.
32365 (global_bindings_p): Treat as global if no current_binding_level.
32366 (set_current_block_context): New function.
32367 (gnat_pushdecl): Renamed from pushdecl; major rework.
32368 All callers changed.
32369 (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
32370 (finish_record_type): Call call pushdecl for stub decl.
32371 (function_nesting_depth): Deleted.
32372 (begin_subprog_body): Delete obsolete code.
32373 * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
6615c446 32374
246d2ceb
AC
323752004-06-28 Robert Dewar <dewar@gnat.com>
32376
32377 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
32378 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
32379 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
32380 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
32381 a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
32382
32383 * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
32384 deal with problem of inefficient slices on machines with strict
32385 alignment, when the slice is a component of a composite.
32386
32387 * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
32388 machines, we need the check there as well.
32389
323902004-06-28 Ed Schonberg <schonberg@gnat.com>
32391
32392 * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
32393 determine safe copying direction for overlapping slice assignments
32394 when component is controlled.
32395
32396 * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
32397 formal derived type in the actual for a formal package are visible in
32398 the enclosing instance.
32399
324002004-06-28 Ed Schonberg <schonberg@gnat.com>
32401
32402 PR ada/15600
32403 * sem_util.adb (Trace_Components): Diagnose properly an illegal
32404 circularity involving a private type whose completion includes a
32405 self-referential component.
32406 (Enter_Name): Use Is_Inherited_Operation to distinguish a source
32407 renaming or an instantiation from an implicit derived operation.
32408
324092004-06-28 Pascal Obry <obry@gnat.com>
32410
32411 * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
32412 DLL.
32413 (Library_File_Name_For): Idem.
32414
324152004-06-28 Matthew Gingell <gingell@gnat.com>
32416
32417 * g-traceb.ads: Add explanatory note on the format of addresses
32418 expected by addr2line.
32419
324202004-06-28 Jerome Guitton <guitton@act-europe.fr>
32421
32422 * Makefile.in: Force debugging information on s-tasdeb.adb,
32423 a-except.adb and s-assert.adb needed by the debugger.
32424
324252004-06-28 Vincent Celier <celier@gnat.com>
32426
32427 * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
32428 Need_To_Build_Lib.
32429 (Gnatmake): Ditto.
32430
32431 * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
32432
32433 * prj.adb: Minor reformatting
32434 (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
32435
32436 * prj.ads: Comment updates
32437 Minor reformatting
32438 (Project_Data): Change Flag1 to Need_To_Build_Lib.
32439 Remove Flag2: not used.
32440
32441 * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
32442 declaration.
32443
32444 * gnat_ugn.texi: Put a "null;" declaration in one project file example
32445
32446 * gnat_rm.texi: Document Empty declarations "null;".
32447
32448 * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
32449 front of the linker options.
32450 (Link_Foreign): Put the global archives and the libraries in front of
32451 the linker options.
32452
324532004-06-28 Javier Miranda <miranda@gnat.com>
32454
32455 * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
32456 (RTU_Loaded): Code cleanup
32457 (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
32458 withed predefined units.
32459
32460 * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
32461 explicitly withed predefined units.
32462 Fix typo in comment
32463
32464 * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
32465 explicitly withed predefined units.
32466
bce3da32
RK
324672004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32468
32469 * ada-tree.def (DECL_STMT): Deleted.
32470 * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
32471 (DECL_STMT_VAR): Deleted.
32472 * decl.c: add_decl_stmt now add_decl_expr.
32473 * gigi.h: Likewise.
32474 * trans.c: Likewise.
15cd18b9 32475 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
bce3da32
RK
32476 (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
32477 (add_stmt): Only handle padded type here.
32478 (add_stmt_with_node): Allow gnat_node to not be present.
32479 (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
32480 (gnat_gimplify_stmt, case DECL_STMT): Deleted.
32481 (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
32482 make a SAVE_EXPR for the entire fat pointer.
32483 * utils.c (pushdecl): Walk a DECL_EXPR in global case.
32484 (create_index_type): Make a DECL_EXPR.
32485 (end_subprog_body): Don't call allocate_struct_function here but
32486 do clear cfun.
32487
0da2c8ac
AC
324882004-06-25 Pascal Obry <obry@gnat.com>
32489
32490 * makegpr.adb (Build_Library): Remove parameter Lib_Address and
32491 Relocatable from Build_Dynamic_Library call.
32492
32493 * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
32494 Relocatable are now synonym.
32495
32496 * Makefile.in: Use s-parame-mingw.adb on MingW platform.
32497
32498 * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
32499 Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
32500 call.
32501
32502 * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
32503 Lib_Address and Relocatable.
32504 (Default_DLL_Address): Removed.
32505
6615c446
JO
32506 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
32507 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
0da2c8ac
AC
32508 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
32509 (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
32510 (Default_DLL_Address): Removed.
32511
32512 * mlib-tgt-mingw.adb: Ditto.
32513 (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
32514
32515 * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
32516 the initial thread stack size.
32517
32518 * a-strmap.ads: Move package L to private part as it is not used in
32519 the spec. Found while reading code.
32520
325212004-06-25 Olivier Hainque <hainque@act-europe.fr>
32522
32523 * tracebak.c: Introduce support for a GCC infrastructure based
32524 implementation of __gnat_backtrace.
32525
32526 * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
32527 any more. Use accessors instead. This eases maintenance and relaxes
32528 some alignment constraints.
32529 (_GNAT_Exception structure): Remove the Ada specific fields
32530 (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
32531 a-exexpr.adb.
32532 (is_handled_by, __gnat_eh_personality): Replace component references to
32533 exception structure by use of the new accessors.
32534
32535 * init.c (__gnat_initialize): Adjust comments to match the just
32536 reverted meaning of the -static link-time option.
32537
32538 * adaint.c (convert_addresses): Arrange not to define a stub for
32539 mips-irix any more, as we now want to rely on a real version from a
32540 recent libaddr2line.
32541
32542 * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
32543 the personality routine can use them and not have to rely on a C
32544 counterpart of the record anymore. This simplifies maintenance and
32545 relaxes the constraint of having Standard'Maximum_Alignment match
32546 BIGGEST_ALIGNMENT.
32547 Update comments, and add a section on the common header alignment issue.
32548
325492004-06-25 Geert Bosch <bosch@gnat.com>
32550
32551 * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
32552 polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
32553
325542004-06-25 Robert Dewar <dewar@gnat.com>
32555
32556 * gnat_rm.texi: Fix section on component clauses to indicate that the
32557 restriction on byte boundary placement still applies for bit packed
32558 arrays.
32559 Add comment on stack usage from Initialize_Scalars
32560
32561 * gnat_ugn.texi: Add documentation for -gnatyLnnn
32562
32563 * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
32564 limiting nesting level.
32565
32566 * usage.adb: Add line for -gnatyLnnn switch
32567
32568 * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
32569 sem_ch13.adb, exp_aggr.adb: Minor reformatting
32570
32571 * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
32572 type as well as on the subtype. This corrects a problem in freeze in
32573 setting alignments of atomic types.
32574
32575 * sem_eval.ads: Minor comment typo fixed
32576
32577 * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
32578 level. Minor reformatting.
32579
32580 * fname.adb (Is_Predefined_File_Name): Require a letter after the
32581 minus sign. This means that file names like a--b.adb will not be
32582 considered predefined.
32583
32584 * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
32585 record Test new flag and give diagnostic for bad component clause.
32586 (Freeze_Entity): Set alignment of array from component alignment in
32587 cases where this is safe to do.
32588
32589 * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
32590 arrays.
32591
32592 * cstand.adb: (Create_Standard): Set alignment of String to 1
32593
32594 * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
32595
32596 * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
32597 code in the common constrained array cases.
32598
32599 * a-storio.adb: Change implementation to avoid possible alignment
32600 problems on machines requiring strict alignment (data should be moved
32601 as type Buffer, not type Elmt).
32602
32603 * checks.adb (Apply_Array_Size_Check): Improve these checks by
32604 killing the overflow checks which we really do not need (64-bits is
32605 enough).
32606
326072004-06-25 Vincent Celier <celier@gnat.com>
32608
32609 * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
32610 (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
32611 inconditionally for the main project.
32612 (Recursive_Add_Archives.Add_Archive_Path): New procedure
32613 (Link_Executables.Check_Time_Stamps): New procedure
32614 (Link_Executables.Link_Foreign): New procedure
32615 Changes made to reduce nesting level of this package
32616 (Check): New procedure
32617 (Add_Switches): When not in quiet output, check that a switch is not
32618 the concatenation of several valid switches. If it is, issue a warning.
32619 (Build_Global_Archive): If the global archive is rebuilt, linking need
32620 to be done.
32621 (Compile_Sources): Rebuilding a library archive does not imply
32622 rebuilding the global archive.
32623 (Build_Global_Archive): New procedure
32624 (Build_Library): New name for Build_Archive, now only for library
32625 project
32626 (Check_Archive_Builder): New procedure
32627 (Create_Global_Archive_Dependency_File): New procedure
32628 (Gprmake): Call Build_Global_Archive before linking
32629 * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
32630 throughout.
32631 (Scan_Arg): Display the Copyright notice when -v is used
32632
32633 * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
32634 for gnatls.
32635
32636 * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
32637 COMPILE.
32638 Add new GNAT LIST qualifier /FILES=
32639 Added qualifier /DIRECTORY= to GNAT METRIC
32640 Added qualifier /FILES= to GNAT METRIC
32641 Added qualifier /FILES to GNAT PRETTY
32642
32643 * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
32644 to take into account both versions of the switch.
32645
32646 * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
32647 always be the last switch to the gcc driver. Disable switch storing so
32648 that switches automatically added by the gcc driver are not put in the
32649 ALI file.
32650
32651 * prj.adb (Project_Empty): Take into account changes in components of
32652 Project_Data.
32653
32654 * prj.ads (Languages_Processed): New enumaration value All_Languages.
32655
32656 * prj.ads (Project_Data): Remove component Lib_Elaboration: never
32657 used. Split Boolean component Ada_Sources_Present in two Boolean
32658 components Ada_Sources_Present and Other_Sources_Present.
32659 Minor reformatting
32660
32661 * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
32662 instead of Sources_Present.
32663 (Set_Ada_Paths.Add.Recursive_Add): Ditto
32664
32665 * prj-nmsc.adb: Minor reformatting
32666 (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
32667 (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
32668 Check_Ada_Naming_Scheme.
32669 Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
32670 throughout.
32671
32672 * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
32673 In_Limited.
32674 Make sure that all cycles where there is at least one "limited with"
32675 are detected.
32676 (Parse_Single_Project): New Boolean parameter In_Limited
32677
32678 * prj-proc.adb (Recursive_Check): When Process_Languages is
32679 All_Languages, call first Prj.Nmsc.Ada_Check, then
32680 Prj.Nmsc.Other_Languages_Check.
32681
32682 * prj-proc.adb (Process): Use Ada_Sources_Present or
32683 Other_Sources_Present (instead of Sources_Present) depending on
32684 Process_Languages.
32685
32686 * lang-specs.h: Keep -g and -m switches in the same order, and as the
32687 last switches.
32688
32689 * lib.adb (Switch_Storing_Enabled): New global Boolean flag
32690 (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
32691 False.
32692 (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
32693 False.
32694
32695 * lib.ads (Disable_Switch_Storing): New procedure.
32696
32697 * make.adb: Modifications to reduce nesting level of this package.
32698 (Check_Standard_Library): New procedure
32699 (Gnatmake.Check_Mains): New procedure
32700 (Gnatmake.Create_Binder_Mapping_File): New procedure
32701 (Compile_Sources.Compile): Add switch -gnatez as the last option
32702 (Display): Never display -gnatez
32703
6615c446 32704 * Makefile.generic:
0da2c8ac
AC
32705 When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
32706
32707 * gnatcmd.adb (Check_Project): New function
32708 (Process_Link): New procedure to reduce nesting depth
32709 (Check_Files): New procedure to reduce the nesting depth.
32710 For GNAT METRIC, include the inherited sources in extending projects.
32711 (GNATCmd): When GNAT LS is invoked with a project file and no files,
32712 add the list of files from the sources of the project file. If this list
32713 is too long, put it in a temp text files and use switch -files=
32714 (Delete_Temp_Config_Files): Delete the temp text file that contains
32715 a list of source for gnatpp or gnatmetric, if one has been created.
32716 (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
32717 in the project file is too large, create a temporary text file that
32718 list them and pass it to the tool with "-files=<temp text file>".
32719 (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
32720
32721 * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
32722 generated file is in not in Ada.
32723
32724 * gnatls.adb: Remove all parameters And_Save that are no longer used.
32725 (Scan_Ls_Arg): Add processing for -files=
32726 (Usage): Add line for -files=
32727
32728 * g-os_lib.adb (On_Windows): New global constant Boolean flag
32729 (Normalize_Pathname): When on Windows and the path starts with a
32730 directory separator, make sure that the resulting path will start with
32731 a drive letter.
32732
32733 * clean.adb (Clean_Archive): New procedure
32734 (Clean_Project): When there is non-Ada code, delete the global archive,
32735 the archive dependency files, the object files and their dependency
32736 files, if they exist.
32737 (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
32738
327392004-06-25 Thomas Quinot <quinot@act-europe.fr>
32740
32741 * sinfo.ads: Fix typo in comment.
32742
32743 * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
32744 the TSS for remote access-to-subprogram types, since these TSS are
32745 always present once the type has been analyzed.
32746 (RAS_E_Dereference): Same.
32747
32748 * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
32749 reference raises Bad_Attribute, mark the reference as analyzed so the
32750 node (and any children resulting from rewrites that could have occurred
32751 during the analysis that ultimately failed) is not analyzed again.
32752
32753 * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
32754
32755 * exp_dist.adb: Minor comment fix.
32756
32757 * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
32758 type is an anonymous access type, no unchecked deallocation of the
32759 allocated object can occur. If the object is controlled, attach it with
32760 a count of 1. This allows attachment to the Global_Final_List, if
32761 no other relevant list is available.
32762 (Get_Allocator_Final_List): For an anonymous access type that is
32763 the type of a discriminant or record component, the corresponding
32764 finalisation list is the one of the scope of the type.
32765
327662004-06-25 Ed Schonberg <schonberg@gnat.com>
32767
32768 * sem_ch3.adb (Replace_Type): When computing the signature of an
32769 inherited subprogram, use the first subtype if the derived type
32770 declaration has no constraint.
32771
32772 * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
32773 before applying previous optimization. Minor code cleanup.
32774
32775 * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
32776 placed at the beginning of an unpacked record without explicit
32777 alignment, a slice of it will be aligned and does not need a copy when
32778 used as an actual.
32779
327802004-06-25 Ed Schonberg <schonberg@gnat.com>
32781
32782 PR ada/15591
32783 PR ada/15592
32784 * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
32785 reference is written with expressions mimicking parameters.
32786
327872004-06-25 Hristian Kirtchev <kirtchev@gnat.com>
32788
32789 PR ada/15589
32790 * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
32791 STEP 2a. The constraints of a full type declaration of a derived record
32792 type are checked for conformance with those declared in the
32793 corresponding private extension declaration. The message
32794 "not conformant with previous declaration" is emitted if an error is
32795 detected.
32796
327972004-06-25 Vasiliy Fofanov <fofanov@act-europe.fr>
32798
32799 * g-traceb.ads: Document the need for -E binder switch in the spec.
32800
32801 * g-trasym.ads: Document the need for -E binder switch in the spec.
32802
328032004-06-25 Jose Ruiz <ruiz@act-europe.fr>
32804
32805 * sem_prag.adb: Add handling of pragma Detect_Blocking.
32806
32807 * snames.h, snames.ads, snames.adb: Add entry for pragma
32808 Detect_Blocking.
32809
32810 * s-rident.ads: Change reference to pragma Detect_Blocking.
32811
32812 * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
32813 system.ads.
32814
32815 * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
32816 to indicate whether pragma Detect_Blocking is active.
32817
32818 * par-prag.adb: Add entry for pragma Detect_Blocking.
32819
32820 * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
32821 of not handling WITH.
32822 Note that this replaces the previous update which was incorrect.
32823
328242004-06-25 Javier Miranda <miranda@gnat.com>
32825
32826 * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
32827 use-clauses to have a clean environment.
32828
32829 * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
32830 the installation of the use-clauses to stablish a clean environment in
32831 case of compilation of a separate unit; otherwise the call to
32832 use_one_package is protected by the barrier Applicable_Use.
32833
32834 * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
32835 the installation of the use-clauses to stablish a clean environment in
32836 case of compilation of a separate unit.
32837 (End_Use_Clauses): Minor comment cleanup.
32838
328392004-06-25 Sergey Rybin <rybin@act-europe.fr>
32840
32841 * gnat_ugn.texi: Add description of the gnatpp 'files' switch
32842
65355d53
RH
328432004-06-23 Richard Henderson <rth@redhat.com>
32844
32845 * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
32846
c0e3aa48
RK
328472004-06-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32848
32849 * decl.c (elaborate_expression, elaborate_expression_1): Arguments
32850 now bool instead of int.
32851 (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
32852 * trans.c (gnu_switch_label_stack): New function.
32853 (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
32854 elaboration of renamed entity returns.
32855 (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
32856 (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
32857 (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
32858 (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
32859 DECL_SIZE_UNIT and simplify variable-sized case.
32860 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
32861 Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
32862 (gnat_stabilize_reference): Add arg to COMPONENT_REF.
32863 (build_unit_elab): Disable for now.
32864 * utils.c (mark_visited): New function.
32865 (pushdecl): Walk tree to call it for global decl.
32866 (update_pointer_to): Update all variants of pointer and ref types.
32867 Add arg to COMPONENT_REF.
32868 (convert): Likewise.
32869 Move check for converting between variants lower down.
32870 * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
32871 (build_allocator): Don't force type of MODIFY_EXPR.
32872 (gnat_mark_addressable, case VAR_DECL): Unconditionally call
32873 put_var_into_stack.
32874
966389ee
RK
328752004-06-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32876
32877 * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
32878 * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
32879 * decl.c (gnat_to_gnu_entity): Also set force_global for imported
32880 subprograms.
32881 * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
32882 all callers changed.
32883 (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
32884 the way that EXIT_STMT finds the loop label.
32885 (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
32886 (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
32887 (add_stmt): Use annotate_with_locus insted of setting directly.
32888 (pos_to_construct): Set TREE_PURPOSE of each entry to index.
32889 (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
32890 * utils.c (gnat_install_builtins): Install __builtin_memcmp.
32891 (build_vms_descriptor): Add extra args to ARRAY_REF.
32892 (convert): Use VIEW_CONVERT_EXPR between aggregate types.
32893 * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
32894 New cases.
32895 (build_binary_op): Don't make explicit CONVERT_EXPR.
32896 Add extra rgs to ARRAY_REF.
32897
cc335f43
AC
328982004-06-14 Pascal Obry <obry@gnat.com>
32899
32900 * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
32901 Windows. Fix minor typo.
32902
32903 * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
32904 which is now supported on Windows. With this implementation using the
32905 Library Project feature is no different on Windows than on UNIX.
32906
329072004-06-14 Vincent Celier <celier@gnat.com>
32908
32909 * makegpr.adb (Compile_Sources): Nothing to do when there are no
32910 non-Ada sources.
32911
32912 * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
32913
32914 * prj-part.adb (Parse_Single_Project): When a duplicate project name is
32915 found, show the project name and the path of the previously parsed
32916 project file.
32917
329182004-06-14 Ed Schonberg <schonberg@gnat.com>
32919
32920 * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
32921 array, avoid copying the actual before the call.
32922
329232004-06-14 Thomas Quinot <quinot@act-europe.fr>
32924
32925 * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
32926 Instead, allocate memory on worst-case alignment assumptions, and then
32927 return an aligned address within the allocated zone.
32928
329292004-06-14 Robert Dewar <dewar@gnat.com>
32930
32931 * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
32932 elab entities in predefined units in No_Run_Time_Mode.
32933 (Gen_Adainit_C): Same fix
32934 (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
32935 units in No_Run_Time_Mode
32936 (Gen_Elab_Calls_C): Same fix
32937
32938 * symbols-vms-alpha.adb: Minor reformatting
32939
32940 * g-debpoo.ads: Minor reformatting
32941
32942 * lib.adb (In_Same_Extended_Unit): Version working on node id's
32943
32944 * lib.ads (In_Same_Extended_Unit): Version working on node id's
32945
32946 * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
32947 working on nodes.
32948
32949 * make.adb: Minor reformatting
32950
32951 * par-ch12.adb: Minor reformatting
32952
32953 * par-prag.adb: Add dummy entry for pragma Profile_Warnings
32954
32955 * prj-strt.adb: Minor reformatting
32956
32957 * restrict.ads, restrict.adb: Redo handling of profile restrictions to
32958 be more general.
32959
32960 * sem_attr.adb: Minor reformatting
32961
32962 * sem_ch7.adb: Minor reformatting
32963
32964 * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
32965 for type in the same unit as the object declaration.
32966
32967 * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
32968 static string expressions and not just string literals.
32969 Minor reformatting
32970 (Set_Warning): Reset restriction warning flag for restriction pragma
32971 Implement pragma Profile_Warnings
32972 Implement pragma Profile (Restricted)
32973 Give obolescent messages for old restrictions and pragmas
32974
32975 * snames.h, snames.ads, snames.adb: Add new entry for pragma
32976 Profile_Warnings.
32977
32978 * s-rident.ads: Add declarations for restrictions required by profile
32979 Restricted and profile Ravenscar.
32980
32981 * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
32982
32983 * gnat_ugn.texi: Correct some missing entries in the list of GNAT
32984 configuration pragmas.
32985
5453d5bd
AC
329862004-06-11 Vincent Celier <celier@gnat.com>
32987
32988 * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
32989 gnatsym, when symbol policy is Restricted.
32990
32991 * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
32992 gnatsym, when symbol policy is Restricted.
32993
32994 * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
32995 read the symbol file.
32996 (Finalize): Fail in symbol policy Restricted if a symbol in the original
32997 symbol file is not in the object files. Do not create a new symbol file
32998 when symbol policy is Restricted.
32999
33000 * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
33001 in Scng.
33002
33003 * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
33004 Restricted.
33005 (Usage): Line for new switch -R
33006
33007 * make.adb (Initialize): When the platform is not VMS, add the
33008 directory where gnatmake is invoked in the front of the path, if
33009 gnatmake is invoked with directory information. Change the Scan_Args
33010 while loop to a for loop.
33011 (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
33012 if Depth is equal or greater than the proposed depth, there is nothing
33013 to do.
33014 (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
33015 instead of 0.
33016
33017 * prj.ads: Add new symbol policy Restricted.
33018
33019 * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
33020 with the new parameters Check_All_Labels and Case_Location.
33021
33022 * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
33023 (Library_Symbol_File needs to be defined).
33024
33025 * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
33026 and Case_Location If Check_All_Labels is True, check that all values of
33027 the string type are used, and output warning(s) if they are not.
33028
33029 * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
33030 and Case_Location.
33031
33032 * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
33033
33034 * gnat_ugn.texi: Update documentation about the library directory in
33035 Library Projects.
33036
33037 * makegpr.adb (Display_Command): In verbose mode, also display the
33038 value of the CPATH env var, when the compiler is gcc.
33039 (Initialize): Change the Scan_Args while loop to a for loop
33040 (Compile_Individual_Sources): Change directory to object directory
33041 before compilations.
33042
33043 * symbols.ads: New symbol policy Restricted.
33044
330452004-06-11 Olivier Hainque <hainque@act-europe.fr>
33046
33047 * a-except.adb (Raise_After_Setup family): Remove. The responsibility
33048 is now taken care of internally in the Exception_Propagation package
33049 and does not require clients assistance any more.
33050
33051 * a-exexpr.adb (Is_Setup_And_Not_Propagated,
33052 Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
33053 functions. Helpers to maintain a predicate required in the handling of
33054 occurrence transfer between tasks.
33055 This is now handled internally and does not require clients assistance
33056 for the setup/propagate separation anymore.
33057 (Setup_Exception, Propagate_Exception): Simplify the Private_Data
33058 allocation strategy, handle the Setup_And_Not_Propagated predicate and
33059 document.
33060
33061 * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
33062 raise_after_setup, now that everything is handled internally within the
33063 setup/propagation engine.
33064
330652004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
33066
33067 * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
33068 Add additional conditions for the case of an actual being a simple
33069 name or literal. Improve inlining by preventing the generation
33070 of temporaries with a short lifetime (one use).
33071
330722004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
33073
33074 PR ada/15587
5453d5bd
AC
33075 * einfo.ads: Minor comment updates for Has_Completion and
33076 E_Constant list of flags.
33077
33078 * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
33079 and constant redeclarations now set the Has_Completion flag of their
33080 defining identifiers.
33081
33082 * sem_ch7.adb (Analyze_Package_Spec): Add procedure
33083 Inspect_Deferred_Constant_Completion.
33084 Used to detect private deferred constants that have not been completed
33085 either by a constant redeclaration or pragma Import. Emits error message
33086 "constant declaration requires initialization expression".
33087
33088 * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
33089 completes a deferred constant.
33090
330912004-06-11 Geert Bosch <bosch@gnat.com>
33092
33093 * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
33094
33095 * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
33096 calculating exponent for scaling denormal numbers.
33097 (Leading_Part): Properly raise Constraint_Error for zero or negative
33098 Adjustment.
33099 (Remainder): Properly raise Constraint_Error for zero divisor.
33100
331012004-06-11 Thomas Quinot <quinot@act-europe.fr>
33102
33103 * sem_util.adb: Minor reformatting.
33104
33105 * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
33106 dereference when accessing the entry parameter record.
33107 (Check_Array_Type): Always check for possible implicit dereference.
33108 (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
33109 Abort if a pointer is still present (denoting that an implicit
33110 dereference was left in the tree by the front-end).
33111
33112 * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
33113 dereference when accessing the entry parameter record.
33114 (Check_Array_Type): Always check for possible implicit dereference.
33115 (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
33116 Abort if a pointer is still present (denoting that an implicit
33117 dereference was left in the tree by the front-end).
33118
331192004-06-11 Emmanuel Briot <briot@act-europe.fr>
33120
33121 * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
33122 message, like the compiler itself does. Easier to parse the output.
33123
33124 * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
33125
33126 * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
33127 be base names, and not includes directories.
33128
331292004-06-11 Arnaud Charlet <charlet@act-europe.fr>
33130
33131 * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
33132 so that dependencies are properly taken into account by make.
33133
331342004-06-11 Arnaud Charlet <charlet@act-europe.fr>
33135
33136 PR ada/15622
33137 * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
33138 exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
33139
331402004-06-11 Jerome Guitton <guitton@act-europe.fr>
33141
33142 * Makefile.in (install-gnatlib): install target-specific run-time files.
33143
33144 * Make-lang.in: Remove obsolete targets.
33145
331462004-06-11 Ed Schonberg <schonberg@gnat.com>
33147
33148 * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
33149 specification, to catch misuses of program unit names.
33150
33151 * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
33152 superfluous conversions in an instance.
33153
331542004-06-11 Ed Schonberg <schonberg@gnat.com>
33155
33156 PR ada/15403
5453d5bd
AC
33157 * sem_ch12.adb (Save_References): If operator node has been folded to
33158 enumeration literal, associated_node must be discarded.
33159
331602004-06-11 Jose Ruiz <ruiz@act-europe.fr>
33161
33162 * s-stchop-vxworks.adb: Add required pragma Convention to
33163 Task_Descriptor because it is updated by a C function.
33164
a98f59be
AC
331652004-06-08 Arnaud Charlet <charlet@act-europe.fr>
33166
33167 PR ada/15568
a98f59be
AC
33168 * Makefile.in: Remove target specific SO_OPT on IRIX
33169
821e1ea1
RK
331702004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33171
33172 * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
33173 (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
33174 (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
33175 (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
33176 (STMT_STMT, USE_STMT): New statement codes.
33177 (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
33178 * ada-tree.h: Reflect above changes.
15cd18b9 33179 (struct tree_loop_id): Deleted.
821e1ea1
RK
33180 (union lang_tree_node, struct lang_decl, struct lang_type):
33181 Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
33182 and DECL_LANGUAGE_SPECIFIC to reflect these changes.
33183 (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
33184 (IS_ADA_STMT): New macro.
33185 * decl.c (annotate_decl_with_node): New function.
33186 (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
33187 (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
33188 Call add_stmt_with_node to do needed assignments.
33189 Add call to update setjmp buffer directly, not via EXPR_STMT.
33190 (maybe_variable): Argment GNAT_NODE deleted.
33191 * gigi.h (maybe_variable): Likewise.
33192 (make_transform, add_stmt_with_node, set_block_for_group): New.
33193 (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
33194 (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
33195 (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
33196 (set_lineno, set_lineno_from_sloc): Likewise.
33197 (record_code_position, insert_code_for): Likewise.
33198 (gnat_poplevel): Now returns void.
33199 (end_subprog_body): Now takes argument.
33200 * misc.c (cgraph.h, tree-inline.h): New includes.
33201 (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
33202 (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
33203 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
33204 (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
33205 (gnat_parse_file): Don't set immediate_size_expand.
33206 Call cgraph functions.
33207 (gnat_expand_expr): Remove most cases.
33208 (record_code_position, insert_code_for): Remove from here.
33209 * trans.c (toplev.h, tree-gimple.h): Now included.
33210 (discard_file_names): Deleted.
33211 (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
33212 (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
33213 (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
33214 (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
33215 (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
33216 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
33217 (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
33218 (set_block_for_group, add_stmt_list): Likewise.
33219 (start_stmt_group): Renamed from start_block_stmt.
33220 (end_stmt_group): Likewise, from end_block_stmt.
33221 (build_stmt_group): Likewise, from build_block_stmt, also add arg.
33222 (gigi): Don't set discard_file_names or call set_lineno.
33223 Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
33224 (tree_transform): Deleted, now renamed to be gnat_to_gnu.
33225 Numerous changes throughout to reflect new names and complete
33226 function-at-a-time implementation.
33227 (gnat_expand_stmt): Delete or comment out all cases.
33228 (process_inlined_subprograms): Use add_stmt.
33229 (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
33230 call set_lineno; also remove unneeded block handling.
33231 (process_type): Remove unneeded block handling.
33232 (build_unit_elab): Remove calls to deleted functions.
33233 * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
33234 (tree-dump.h): Likewise.
33235 (struct ada_binding_level): Add field jmpbuf_decl.
33236 (gnat_define_builtin, gnat_install_builtins): New.
33237 (gnat_gimplify_function, gnat_finalize): Likewise.
33238 (gnat_poplevel): No longer return BLOCK, set it instead.
33239 Remove code dealing with nested functions.
33240 (gnat_init_decl_processing): Also set size_type_node.
33241 Call gnat_install_builtins.
33242 (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
33243 (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
33244 Remove special-case for "main".
33245 (end_subprog_body): Add arg and rework for tree-ssa.
33246 (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
33247 Add case for BOOLEAN_TYPE.
33248 * utils2.c (rtl.h): Now include.
33249 (build_call_raise): Test Debug_Flag_NN directly.
33250 (build_call_alloc_dealloc): Don't use local stack allocation for now.
33251 (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
33252 (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
33253
0ab80019
AC
332542004-06-07 Robert Dewar <dewar@gnat.com>
33255
33256 * a-direct.ads, einfo.ads: Minor comment updates
33257
33258 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
33259 s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
33260 s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
33261 s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
33262 s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
33263
33264 * s-interr-sigaction.adb: Remove unreferenced variable
33265 (Attached_Interrupts). Minor reformatting.
33266 Avoid use of variable I (replace by J).
33267
33268 * par-ch10.adb: Fix text of one error message
33269
33270 * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
33271 exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
33272 exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
33273 opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
33274 par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
33275 par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
6615c446 33276 sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
0ab80019
AC
33277 sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
33278 sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
33279 sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
33280 snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
33281 2005 support.
33282
332832004-06-07 Doug Rupp <rupp@gnat.com>
33284
33285 * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
33286
33287 * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
33288
33289 * mlib-tgt-vms-ia64.adb: New file.
33290
33291 * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
33292 Add mlib-tgt-vms-ia64.adb
33293 Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
33294 Move to alpha specific ifeq section.
33295 Add VMS specific versions of symbols.adb
33296 Renaming of 5q vms files.
33297
33298 * 5qsystem.ads renamed to system-vms_64.ads.
33299
333002004-06-07 Vincent Celier <celier@gnat.com>
33301
33302 * a-calend.ads: Add a GNAT Note comment after function Time_Of to
33303 explain that when a time of day corresponding to the non existing hour
33304 on the day switching to DST is specified, Split may return a different
33305 value for Seconds.
33306
33307 * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
33308 to GNAT PRETTY.
33309
33310 * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
33311 (Normalize_Pathname): Only resolve VMS logical names when on VMS.
33312
33313 * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
33314 to False.
33315 If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
33316 the linking options.
33317 (Build_Library.Check_Libs): On VMS, if there is a dependency on
33318 g-trasym.ads, set Gtrasymobj_Needed to True.
33319
33320 * prj-attr.adb: Add new package Metrics for gnatmetric
33321
33322 * prj-nmsc.adb (Record_Other_Sources): Put source file names in
33323 canonical case to take into account files with upper case characters on
33324 Windows.
33325 (Ada_Check): Load the reference symbol file name in the name buffer to
33326 check it, not the symbol file name.
33327
33328 * snames.ads, snames.adb: Add standard name Metrics (name of project
33329 file package for gnatmetric).
33330
33331 * vms_conv.ads: Add Metric to Comment_Type
33332
33333 * vms_conv.adb (Initialize): Add component dor Metric in Command_List
33334
33335 * vms_data.ads: Add qualifiers for GNAT METRIC
33336
33337 * makegpr.adb (Link_Executables): Take into account the switches
33338 specified in package Linker of the main project.
33339
333402004-06-07 Thomas Quinot <quinot@act-europe.fr>
33341
33342 * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
33343 the index of the last element is Units.Last, not Units.Table'Last
33344 (which is usually not a valid index within the actually allocated
33345 storage for the table).
33346
33347 * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
33348 determines whether to generate a call to a checked storage pool
33349 Dereference action.
33350 Generate such a call only for a dereference that either comes from
33351 source, or is the result of rewriting a dereference that comes from
33352 source.
33353
333542004-06-07 Romain Berrendonner <berrendo@act-europe.fr>
33355
33356 * bindgen.adb (Gen_Output_File): Add support for GAP builds.
33357
333582004-06-07 Eric Botcazou <ebotcazou@act-europe.fr>
33359
33360 (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
33361 file level, elaborate the stride for inner dimensions in alignment
33362 units, not bytes.
33363
33364 * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
33365 in a comment.
33366
333672004-06-07 Javier Miranda <miranda@gnat.com>
33368
33369 * exp_ch6.adb: Correct wrong modification in previous patch
33370
333712004-06-07 Vasiliy Fofanov <fofanov@act-europe.fr>
33372
33373 * g-trasym.ads: Corrected comment to properly reflect level of support
33374 on VMS.
33375
333762004-06-07 Hristian Kirtchev <kirtchev@gnat.com>
33377
33378 * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
33379 includes case of a variable referenced on the left hand side of an
33380 assignment, therefore remove redundant code. Variables and prefixes of
33381 indexed or selected components are now marked as referenced on left
33382 hand side. Warnings are now properly emitted when variables or prefixes
33383 are assigned but not read.
33384
33385 * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
33386 left hand side referenced variables. Private access types do not
33387 produce the warning "variable ... is assigned but never read".
33388 Add also additional checks to left hand side referenced variables.
33389 Aliased, renamed objects and access types do not produce the warning
33390 "variable ... is assigned but never read" since other entities may read
33391 the memory location.
33392
333932004-06-07 Jerome Guitton <guitton@act-europe.fr>
33394
33395 * Makefile.in: In the powerpc/vxworks-specific section, restore
33396 EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
33397 by mistake).
33398
333992004-06-07 Ed Schonberg <schonberg@gnat.com>
33400
33401 * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
33402 predefined operators.
33403 Removes spurious type errors from g-trasym-vms.adb.
33404
33405 * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
33406 distinct from the operator appearing in the source, call appropriate
33407 routine to insert conversions when needed, and complete resolution of
33408 node.
33409 (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
33410 interpretations for rewritten right operand.
33411 (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
33412 the other operand is overloaded and the context is a type conversion.
33413
334142004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33415
33416 * ada-tree.def (BLOCK_STMT): Now has two operands.
33417 (BREAK_STMT): New.
33418
33419 * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
33420
33421 * gigi.h: (gnat_poplevel): Now returns a tree.
33422
33423 * trans.c (end_block_stmt): Add arg; all callers changed.
33424 (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
33425 (start_block_stmt): Clear BLOCK_STMT_BLOCK.
33426 (add_stmt): Set TREE_TYPE.
33427 (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
33428 (gnat_expand_stmt, case BREAK_STMT): New case.
33429
33430 * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
33431
334322004-06-07 Jose Ruiz <ruiz@act-europe.fr>
33433
33434 * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
33435 procedure Set_Stack_Size that is not needed.
33436
334372004-06-07 Sergey Rybin <rybin@act-europe.fr>
33438
33439 * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
33440 used for gnatpp input file and for the files upon which it depends
33441
334422004-06-07 Ben Brosgol <brosgol@gnat.com>
33443
33444 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
33445
334462004-06-07 Arnaud Charlet <charlet@act-europe.fr>
33447
33448 * gnatvsn.ads: Bump version numbers appropriately.
33449 Add new build type.
33450
334512004-06-07 Pascal Obry <obry@gnat.com>
33452
33453 * gnat_ugn.texi: Improve comments about imported names and link names
33454 on Windows. Add a note about the requirement to use -k gnatdll's option
33455 when working with a DLL which has stripped stdcall symbols (no @nn
33456 suffix).
33457
8a36a0cc
AC
334582004-05-27 Vincent Celier <celier@gnat.com>
33459
33460 * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
33461 COMMENTS_LAYOUT=UNTOUCHED
33462
33463 * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
33464 symbols-vms-alpha.adb
33465
334662004-05-27 Thomas Quinot <quinot@act-europe.fr>
33467
33468 * sem.ads: Clarify documentation on checks suppression.
33469
33470 * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
33471
334722004-05-27 Ed Schonberg <schonberg@gnat.com>
33473
33474 * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
33475 the case of multiple derivations.
33476 (Is_Object_Reference): For a selected component, verify that the prefix
33477 is itself an object and not a value.
33478
33479 * sem_ch12.adb (Same_Instantiated_Constant): New name for
33480 Same_Instantiated_Entity.
33481 (Same_Instantiated_Variable): Subsidiary to
33482 Check_Formal_Package_Instance, to recognize actuals for in-out generic
33483 formals that are obtained from a previous formal package.
33484 (Instantiate_Subprogram_Body): Emit proper error when
33485 generating code and the proper body of a stub is missing.
33486
33487 * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
33488 has a universal interpretation, do the disambiguation here.
33489
33490 * exp_ch4.adb (Expand_N_Type_Conversion,
33491 Expand_N_Unchecked_Type_Conversion): Special handling when target type
33492 is Address, to avoid typing anomalies when Address is a visible integer
33493 type.
33494
33495 * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
33496 to determine whether a subprogram should not be marked Pure, even when
33497 declared in a pure package.
33498
334992004-05-27 Jose Ruiz <ruiz@act-europe.fr>
33500
33501 * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
33502
33503 * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
33504 Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
33505 Update the documentation about the Ravenscar profile, following the
33506 definition found in AI-249.
33507
33508 * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
33509 setting the Profile (Ravenscar). This must be done in addition to
33510 setting the required restrictions.
33511
33512 * rtsfind.ads: Add the set of operations defined in package
33513 Ada.Interrupts.
33514
33515 * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
33516 restriction.
33517
335182004-05-27 Eric Botcazou <ebotcazou@act-europe.fr>
33519
33520 lang-specs.h: Always require -c or -S and always redirect to /dev/null
33521 if -gnatc or -gnats is passed.
33522
335232004-05-27 Hristian Kirtchev <kirtchev@gnat.com>
33524
33525 * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
33526 a significant reference. Warnings are now properly emitted when a
33527 discriminated type is not referenced.
33528
33529 * lib-xref.adb (Generate_Reference): A deferred constant completion,
33530 record representation clause or record type discriminant does not
33531 produce a reference to its corresponding entity. Warnings are now
33532 properly emitted when deferred constants and record types are not
33533 referenced.
33534
335352004-05-27 Geert Bosch <bosch@gnat.com>
33536
33537 * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
33538 Fixes ACATS Annex G tests.
33539
335402004-05-27 Robert Dewar <dewar@gnat.com>
33541
33542 * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
33543 handling WITH
33544
335452004-05-27 Arnaud Charlet <charlet@act-europe.fr>
33546
33547 * s-interr.adb (Server_Task): Take into account case of early return
33548 from sigwait under e.g. linux.
33549
335502004-05-27 Sergey Rybin <rybin@act-europe.fr>
33551
33552 * gnat_ugn.texi: Add description for the new gnatpp options:
33553 -rnb - replace the original source without creating its backup copy
33554 -c0 - do not format comments
33555
0fb2ea01
AC
335562004-05-24 Geert Bosch <bosch@gnat.com>
33557
33558 * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
33559 with 192 bits of precision, sufficient to reduce a double-extended
33560 arguments X with a maximum relative error of T'Machine_Epsilon, for X
33561 in -2.0**32 .. 2.0**32.
33562 (Cos, Sin): Always reduce arguments of 1/4 Pi or larger, to prevent
33563 reduction by the processor, which only uses a 68-bit approximation of
33564 Pi.
33565 (Tan): Always reduce arguments and compute function either using
33566 the processor's fptan instruction, or by dividing sin and cos as needed.
33567
335682004-05-24 Doug Rupp <rupp@gnat.com>
33569
33570 * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
33571 gcc error on 32/64 bit VMS.
33572
335732004-05-24 Olivier Hainque <hainque@act-europe.fr>
33574
33575 * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
33576 since this is what we get for stack overflows although not documented
33577 as such.
33578 Document the issues which may require adjustments to our signal
33579 handlers.
33580
335812004-05-24 Ed Schonberg <schonberg@gnat.com>
33582
33583 * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
33584 enclosing dynamic scope if the instantiation is within a generic unit.
33585
335862004-05-24 Arnaud Charlet <charlet@act-europe.fr>
33587
33588 * exp_dbug.ads: Fix typo.
33589
33590 * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
33591 Rename it to its proper name: system-linux-ia64.ads
33592 (stamp-gnatlib1): Remove extra target specific run time files when
33593 setting up the rts directory.
33594
335952004-05-24 Javier Miranda <miranda@gnat.com>
33596
33597 * einfo.ads, einfo.adb (Limited_Views): Removed.
33598 (Limited_View): New attribute that replaces the previous one. It is
33599 now a bona fide package with the limited-view list through the
33600 first_entity and first_private attributes.
33601
33602 * sem_ch10.adb (Install_Private_With_Clauses): Give support to
33603 limited-private-with clause.
33604 (Install_Limited_Withed_Unit): Install the private declarations of a
33605 limited-private-withed package. Update the installation of the shadow
33606 entities according to the new structure (see Build_Limited_Views)
33607 (Build_Limited_Views): Replace the previous implementation of the
33608 limited view by a package entity that references the first shadow
33609 entity plus the first shadow private entity (required for limited-
33610 private-with clause)
33611 (New_Internal_Shadow_Entity): Code cleanup.
33612 (Remove_Limited_With_Clause): Update the implementation to undo the
33613 new work carried out by Build_Limited_Views.
33614 (Build_Chain): Complete documentation.
33615 Replace Ada0Y by Ada 0Y in comments
33616 Minor reformating
33617
33618 * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
33619 types the level of accessibility depends on the enclosing type
33620 declaration.
33621
33622 * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
33623 entities. Complete documentation of previous change.
33624
336252004-05-24 Robert Dewar <dewar@gnat.com>
33626
33627 * namet.adb: Minor reformatting
33628 Avoid use of name I (replace by J)
33629 Minor code restructuring
33630
33631 * sem_ch6.adb: Minor reformatting
33632
33633 * lib-writ.adb: Do not set restriction as active if this is a
33634 Restriction_Warning case.
33635
33636 * sem_prag.adb: Reset restriction warning flag if real pragma
33637 restriction encountered.
33638
33639 * s-htable.adb: Minor reformatting
33640 Change rotate count to 3 in Hash (improves hash for small strings)
33641
33642 * 5qsystem.ads: Add comments for type Address (no literals allowed).
33643
33644 * gnat_ugn.texi: Add new section of documentation "Code Generation
33645 Control", which describes the use of -m switches.
33646
336472004-05-24 Eric Botcazou <ebotcazou@act-europe.fr>
33648
a1db9d9c
AC
33649 trans.c (tree_transform) <N_Identifier>: Do the dereference directly
33650 through the DECL_INITIAL for renamed variables.
0fb2ea01 33651
7599f1b0
AC
336522004-05-24 Arnaud Charlet <charlet@act-europe.fr>
33653
33654 * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
33655
c37bb106
AC
336562004-05-19 Joel Brobecker <brobecker@gnat.com>
33657
33658 * exp_dbug.ads: Correct comments concerning handling of overloading,
33659 since we no longer use $ anymore.
33660
336612004-05-19 Sergey Rybin <rybin@act-europe.fr>
33662
33663 * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
33664 ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
33665 with illegal subunits.
33666
336672004-05-19 Ed Schonberg <schonberg@gnat.com>
33668
33669 * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
33670 body with front-end inlining enabled, check whether an inline pragma
33671 appears immediately after the body and applies to it.
33672
33673 * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
33674 enabled and the pragma appears after the body of the subprogram.
33675
b5e792e2
AC
336762004-05-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33677
33678 Part of function-at-a-time conversion
33679
33680 * misc.c (adjust_decl_rtl): Deleted.
33681 (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
33682 Define.
33683
33684 * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
33685 (add_decl_stmt, add_stmt, block_has_vars): New functions.
33686 (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
33687
33688 * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
33689 when making a decl.
33690 (gnat_to_gnu_entity): Likewise.
33691 Use add_stmt to update setjmp buffer.
33692 Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
33693 flush_addressof.
33694 No longer call adjust_decl_rtl.
33695 (DECL_INIT_BY_ASSIGN_P): New macro.
33696 (DECL_STMT_VAR): Likewise.
33697
33698 * trans.c (gigi): Call start_block_stmt to make the outermost
33699 BLOCK_STMT.
33700 (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
33701 Call start_block_stmt and end_block_stmt temporarily.
33702 Use gnat_expand_stmt instead of expand_expr_stmt.
33703 (add_decl_stmt): New function.
33704 (tree_transform): Call it.
33705 (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
33706 (end_block_stmt): Set type and NULL_STMT.
33707 (gnat_expand_stmt): Make recursize call instead of calling
33708 expand_expr_stmt.
33709 (gnat_expand_stmt, case DECL_STMT): New case.
33710 (set_lineno_from_sloc): Do nothing if global.
33711 (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
33712 (start_block_stmt, add_stmt, end_block_stmt): New functions.
33713 (build_block_stmt): Call them.
33714 (gnat_to_code): Don't expand NULL_STMT.
33715 (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
33716 args.
33717 (tree_transform): Likewise.
33718 (tree_transform, case N_Null_Statement): Return NULL_STMT.
33719 (gnat_expand_stmt, case NULL_STMT): New case.
33720 (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
33721 IF_STMT_TRUE.
33722
33723 * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
33724 TREE_ADDRESSABLE.
33725
33726 * utils.c (create_var_decl): Do not call expand_decl or
33727 expand_decl_init.
33728 Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
33729 Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
33730 here.
33731 (struct e_stack): Add chain_next to GTY.
33732 (struct binding_level): Deleted.
33733 (struct ada_binding_level): New struct.
33734 (free_block_chain): New.
33735 (global_binding_level, clear_binding_level): Deleted.
33736 (global_bindings_p): Rework to see if no chain.
33737 (kept_level_p, set_block): Deleted.
33738 (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
33739 new data structure and work directly on BLOCK node.
33740 (gnat_poplevel): Similarly.
33741 (get_decls): Look at BLOCK_VARS.
33742 (insert_block): Work directly on BLOCK node.
33743 (block_has_var): New function.
33744 (pushdecl): Rework for new binding structures.
33745 (gnat_init_decl_processing): Rename and rework calls to pushlevel and
33746 poplevel.
33747 (build_subprog_body): Likewise.
33748 (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
33749
33750 * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
33751
33752 * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
33753 (DECL_STMT_VAR): Likewise.
33754
337552004-05-17 Robert Dewar <dewar@gnat.com>
33756
33757 * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
33758 procedure
33759
33760 * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
33761 of restriction synonyums by using
33762 Restrict.Process_Restriction_Synonyms.
33763
33764 * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
33765
33766 * s-restri.ads (Tasking_Allowed): Correct missing comment
33767
33768 * s-rident.ads: Add entries for restriction synonyms
33769
33770 * ali.adb: Fix some problems with badly formatted ALI files that can
33771 result in infinite loops.
33772
33773 * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
33774 s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
33775 s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
33776 s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
33777 s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
33778 s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
33779 s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
33780 s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
33781 s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
33782 a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
33783 exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
33784 s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
33785 s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
33786 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
33787 s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
33788 s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
33789 s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
33790 s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
33791 s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
33792 s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
33793 to Task_Id (minor cleanup).
33794
337952004-05-17 Vincent Celier <celier@gnat.com>
33796
33797 * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
33798 directory separator.
33799
33800 * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
33801 project being extended, if Languages is not declared in extending
33802 project.
33803
338042004-05-17 Javier Miranda <miranda@gnat.com>
33805
33806 * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
33807 limited view of a visible sibling.
33808
9bc856dd
AC
338092004-05-14 Robert Dewar <dewar@gnat.com>
33810
33811 * gnat_ugn.texi: Minor change to -gnatS documentation
33812
33813 * sprint.adb: Remove some instances of Assert (False) and for this
33814 purpose replace them by output of a ??? string.
33815
33816 * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
33817 Assert (False).
33818
33819 * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
33820 flag processing. This was suppressing required dependencies in
33821 No_Run_Time mode and is not needed since the binder does not generate
33822 references for things in libgnat anyway.
33823
33824 * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
33825 warning.
33826
338272004-05-14 Thomas Quinot <quinot@act-europe.fr>
33828
33829 * gnat_ugn.texi: Document AIX-specific issue with initialization of
33830 resolver library.
33831
33832 * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
33833 action for the case of an actual parameter in an init proc call.
33834
338352004-05-14 Ed Schonberg <schonberg@gnat.com>
33836
33837 * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
33838 subtype, check visible entities in base type.
33839
33840 * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
33841 actions if the object is a renaming.
33842
33843 * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
33844 Check_Formal_Package_Instance, to determine more precisely when the
33845 formal and the actual denote the same entity.
33846
338472004-05-14 Javier Miranda <miranda@gnat.com>
33848
33849 * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
33850
33851 * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
33852 corresponding to a private_with must be removed from visibility; it
33853 will be made visible later, just before we analyze the private part of
33854 the package.
33855 (Check_Private_Child_Unit): Allow private_with clauses in public
33856 siblings.
33857 (Install_Siblings): Make visible the private entities of private-withed
33858 siblings.
33859 (Install_Withed_Unit): Do not install the private withed unit if we
33860 are compiling a package declaration and the Private_With_OK flag was
33861 not set by the caller. These declarations will be installed later,
33862 just before we analyze the private part of the package.
33863
33864 * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
33865 during the evaluation of the expression that initializes the object,
33866 decorate it with the expected type to avoid cascade errors.
33867 Code cleanup.
33868
33869 * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
33870 subprogram we have to install the private_with clauses after its
33871 specification has been analyzed (as documented in AI-262.TXT).
33872
33873 * sem_ch8.adb (Has_Private_With): New function. Determines if the
33874 current compilation unit has a private with on a given entity.
33875 (Find_Direct_Name): Detect the Beaujolais problem described in
33876 AI-262.TXT
33877
33878 * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
33879 provides the functionality of the function Is_Ancestor that was
33880 previously available in sem_ch10. It has been renamed to avoid
33881 overloading.
33882
33883 * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
33884
338852004-05-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33886
33887 * utils.c (build_vms_descriptor): Use SImode pointers.
33888
338892004-05-14 Vasiliy Fofanov <fofanov@act-europe.fr>
33890
33891 * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
33892
338932004-05-14 GNAT Script <nobody@gnat.com>
33894
33895 * Make-lang.in: Makefile automatically updated
33896
084c663c
AC
338972004-05-14 Arnaud Charlet <charlet@act-europe.fr>
33898
33899 Renaming of target specific files for clarity
33900
6615c446 33901 * Makefile.in: Rename GNAT target specific files.
084c663c
AC
33902
33903 * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
33904 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
33905 3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
33906 3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
33907 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
33908 3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
33909 42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
33910 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
33911 4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
33912 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
33913 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
33914 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
33915 51osinte.adb, 51osinte.ads, 51system.ads,
33916 52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
33917 55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
33918 56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
33919 56tpopsp.adb, 57system.ads, 58system.ads,
33920 5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
33921 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
33922 5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
33923 5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
33924 5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
33925 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
33926 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
33927 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
33928 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
33929 5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
33930 5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
33931 5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
33932 5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
33933 5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
33934 5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
33935 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
33936 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
33937 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
33938 5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
33939 5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
33940 5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
33941 5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
33942 5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
33943 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
33944 5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
33945 5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
33946 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
33947 5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
33948 5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
33949 5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
33950 5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
33951 5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
33952 5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
33953 5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
33954 5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
33955 5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
33956 7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
33957 7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
33958 7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
33959 7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
33960
33961 * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
33962 a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
33963 a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
33964 a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
33965 a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
33966 a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
33967 a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
33968 a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
33969 a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
33970 a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
33971 g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
33972 g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
33973 g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
33974 g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
33975 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
33976 g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
33977 g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
33978 g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
33979 interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
33980 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
33981 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
33982 mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
33983 s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
33984 s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
33985 s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
33986 s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
33987 s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
33988 s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
33989 s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
33990 s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
33991 s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
33992 s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
33993 s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
33994 s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
33995 s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
33996 s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
33997 s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
33998 s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
33999 s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
34000 s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
34001 s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
34002 s-osinte-vms.ads, s-osinte-vxworks.adb,
34003 s-osinte-vxworks.ads, s-osprim-mingw.adb,
34004 s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
34005 s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
34006 s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
34007 s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
34008 s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
34009 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
34010 s-stchop-vxworks.adb, s-taprop-dummy.adb,
34011 s-taprop-hpux-dce.adb, s-taprop-irix.adb,
34012 s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
34013 s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
34014 s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
34015 s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
34016 s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
34017 s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
34018 s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
34019 s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
34020 s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
34021 s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
34022 s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
34023 s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
34024 s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
34025 s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
34026 s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
34027 s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
34028 s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
34029 symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
34030 system-hpux.ads, system-interix.ads, system-irix-n32.ads,
34031 system-irix-o32.ads, system-linux-x86_64.ads,
34032 system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
34033 system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
34034 system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
34035 system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
34036 system-vxworks-alpha.ads, system-vxworks-m68k.ads,
34037 system-vxworks-mips.ads, system-vxworks-ppc.ads,
34038 system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
34039 above.
34040
90afe2c9
ZW
340412004-05-13 Zack Weinberg <zack@codesourcery.com>
34042
34043 * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
34044
6de9cd9a
DN
340452004-05-13 Diego Novillo <dnovillo@redhat.com>
34046
34047 Merge from tree-ssa-20020619-branch.
34048
34049 * config-lang.in (boot_language, build_by_default): Set
34050 to no.
34051 * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
34052 (max_size): Add static chain op for call_expr.
34053
f5657d67
RS
340542004-05-12 Richard Sandiford <rsandifo@redhat.com>
34055
34056 PR target/15331
34057 * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
34058
4413b636
RS
340592004-05-11 Roger Sayle <roger@eyesopen.com>
34060
34061 * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
34062 COND_EXPR.
34063
5950a3ac
AC
340642004-05-10 Doug Rupp <rupp@gnat.com>
34065
34066 * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
34067 system.aux_dec.
34068
34069 * s-auxdec.ads: Add Short_Address subtype (moved here from System).
34070
34071 * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
34072
34073 * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
34074 Fixes undefined symbols in IA64 gnatlib.
34075
34076 * 5vinmaop.adb: Reference s-auxdec for Short_Address.
34077
34078 * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
34079 Short_Address). This will be moved to system.auxdec.
34080
340812004-05-10 Thomas Quinot <quinot@act-europe.fr>
34082
34083 * sem_util.adb: Replace test for presence of a node that is always
34084 present with a call to Discard_Node.
34085
34086 * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
34087 Analyze on the library unit node after generation of distribution stub
34088 constructs. The call was a no-op because Unit_Node has already been
34089 Analyzed, and the tree fragments for the distribution stubs are
34090 analyzed as they are inserted in Exp_Dist.
34091 Update comment regarding to distribution stubs to reflect that we
34092 do not generate stub in separate files anymore.
34093
34094 * einfo.ads: Clarify the fact that a tagged private type has the
34095 E_Record_Type_With_Private Ekind.
34096
34097 * erroutc.adb: Minor reformatting
34098
34099 * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
34100 values if line length is increased using -gnatyM (noticed during code
34101 reading).
34102
34103 * eval_fat.adb: Minor reformatting
34104 Put spaces around exponentiation operator
34105
341062004-05-10 Ed Schonberg <schonberg@gnat.com>
34107
34108 PR ada/15005
34109 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
34110 has been rewritten as an explicit dereference, retrieve type of
34111 original node to check for possibly unconstrained record type.
34112
341132004-05-10 Ed Schonberg <schonberg@gnat.com>
34114
34115 * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
34116 overriding, use the operation of the parent unconditionally.
34117
34118 * sem_ch4.adb (Remove_Address_Interpretations): Remove address
34119 operation when either operand is a literal, to avoid further
34120 ambiguities.
34121
34122 * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
34123 overridden by a previous explicit declaration, mark the previous entity
34124 as overriding.
34125
34126 * sem_disp.adb (Check_Dispatching_Operation): New predicate
34127 Is_Visibly_Controlled, to determine whether a declaration of a
34128 primitive control operation for a derived type overrides an inherited
34129 one. Add warning if the explicit declaration does not override.
34130
341312004-05-10 Vincent Celier <celier@gnat.com>
34132
34133 * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
34134 some cases when the sources are no longer present.
34135
34136 * make.adb (Collect_Arguments): Fail if an external source, not part
34137 of any project need to be compiled, when switch -x has not been
34138 specified.
34139
34140 * makeusg.adb: Document new switch -x
34141
34142 * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
34143 defaulted to False.
34144
34145 * switch-m.adb (Scan_Make_Switches): New switch -x
34146
34147 * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
34148 gnatmake switch -x.
34149
34150 * gnat_ugn.texi: Document new gnatmake switch -x
34151
341522004-05-10 Eric Botcazou <ebotcazou@act-europe.fr>
34153
34154 * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
34155
34156 * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
34157 (process_attributes): Likewise.
34158
341592004-05-10 Joel Brobecker <brobecker@gnat.com>
34160
34161 * s-inmaop.ads: Fix spelling mistake in one of the comments.
34162
341632004-05-10 Robert Dewar <dewar@gnat.com>
34164
34165 * gnat_ugn.texi: Document that for config pragma files, the maximum
34166 line length is always 32767.
34167
34168 * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
34169 literals is now allowed.
34170
34171 * gnat-style.texi: Remove statement about splitting long lines before
34172 an operator rather than after, since we do not follow this rule at all.
34173 Clarify rule (really lack of rule) for spaces around exponentiation
34174
34175 * sem_elim.adb: Allow concatenation of string literals as well as a
34176 single string literal for pragma arguments.
34177
34178 * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
34179
34180 * a-textio.adb (Terminate_Line): Do not add line feed if nothing
34181 written for append case.
34182
34183 * frontend.adb: Changes to avoid checking max line length in config
34184 pragma files.
34185
34186 * g-os_lib.ads: Minor reformatting
34187
34188 * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
34189 wrong in any case. Instead use standard value. Noticed during code
34190 reading.
34191
34192 * opt.ads (Max_Line_Length): New field, used to implement removal of
34193 limitation on length of lines when scanning config pragma files.
34194
34195 * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
34196 makeutl.ads, makeutl.adb: Minor reformatting
34197
34198 * scn.adb: Do not check line length while scanning config pragma files
34199 Do not check line length while scanning out license information
34200
34201 * scng.adb: Changes to avoid line length checks while parsing config
34202 pragma files.
34203
342042004-05-10 GNAT Script <nobody@gnat.com>
34205
34206 * Make-lang.in: Makefile automatically updated
34207
48664302
AC
342082004-05-05 Arnaud Charlet <charlet@act-europe.fr>
34209
34210 * osint.adb (Find_Program_Name): Fix handling of VMS version
34211 number.
34212
aa720a54
AC
342132004-05-05 Emmanuel Briot <briot@act-europe.fr>
34214
34215 * g-os_lib.ads (Invalid_Time): New constant
34216
34217 * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
34218 return OS_Time instead of time_t to match what is imported by Ada.
34219 Now return -1 if the file doesn't exist, instead of a random value
34220
342212004-05-05 Robert Dewar <dewar@gnat.com>
34222
34223 * usage.adb: Add line for -gnatR?s switch
34224
34225 * sem_ch13.adb, exp_ch2.adb: Minor reformatting
34226
34227 * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
34228 and for Match (Data_First, Data_last)
34229
34230 * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
34231 written when we are dealing with multi-unit files.
34232
342332004-05-05 Jerome Guitton <guitton@act-europe.fr>
34234
34235 * Makefile.in: Remove unused targets and variables.
34236
342372004-05-05 Vincent Celier <celier@gnat.com>
34238
34239 * switch-m.adb: New gnatmake switch -eI
34240
34241 * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
34242 of new gnatmake switch -eInnn.
34243
34244 * makegpr.adb: Take into account new parameters Index and Src_Index in
34245 Prj.Util.
34246
34247 * clean.adb: Implement support for multi-unit sources, including new
34248 switch -i.
34249
34250 * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
34251 Src_Index.
34252
34253 * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
34254 (Extract_From_Q): New out parameter Index
34255 (Mark, Is_Marked): Subprograms moved to Makeutl
34256 (Switches_Of): New parameter Source_Index
34257 (Add_Switch): New parameter Index
34258 (Check): New parameter Source_Index
34259 (Collect_Arguments): New parameter Source_Index
34260 (Collect_Arguments_And_Compile): New parameter Source_Index
34261 (Compile): New parameter Source_Index
34262 Put subprograms in alphabetical order
34263 Add support for multi-source sources, including in project files.
34264
34265 * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
34266 (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
34267 Make.
34268
34269 * makeusg.adb: New gnatmake switch -eInnn
34270
34271 * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
34272 Prj.Util.Value_Of.
34273
34274 * opt.ads (Main_Index): New variable, defaulted to 0.
34275
34276 * osint.ads, osinte.adb (Add_File): New parameter Index
34277 (Current_Source_Index): New function
34278
34279 * prj.adb: Take into account new components Index and Src_Index
34280
34281 * prj.ads (String_Element): New component Index
34282 (Variable_Value): New component Index
34283 (Array_Element): New component Src_Index
34284
34285 * prj-attr.adb: Indicate that optional index may be specified for
34286 attributes Main, Executable, Spec, Body and some of Switches.
34287
34288 * prj-attr.ads (Attribute_Kind): New values for optional indexes
34289 (Attribute_Record): New component Optional_Index
34290
34291 * prj-com.ads (File_Name_Data): New component Index
34292
34293 * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
34294
34295 * prj-env.adb (Put): Output optional index
34296
34297 * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
34298 attributes Spec and Body.
34299
34300 * prj-nmsc.adb: Process optional indexes
34301
34302 * prj-pp.adb: Ouput "at" for optional indexes
34303
34304 * prj-proc.adb: Take into account optional indexes
34305
34306 * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
34307 Optional_Index. For string literal,
34308 process optional index when Optional_Index is True.
34309 (Parse_Expresion): New Boolean parameter Optional_Index
34310
34311 * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
34312 (Set_Source_Index_Of): New procedure
34313
34314 * prj-util.adb (Executable_Of, Value_Of): Take into account optional
34315 index.
34316
34317 * prj-util.ads (Executable_Of): New parameter Index
34318 (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
34319 New parameter Src_Index, defaulted to 0.
34320
343212004-05-05 Ed Schonberg <schonberg@gnat.com>
34322
34323 PR ada/15257
34324 * sem_ch3.adb (Access_Definition): If this is an access parameter
34325 whose designated type is imported through a limited_with clause, do
34326 not add the enclosing subprogram to the list of private dependents of
34327 the type.
34328
343292004-05-05 Ed Schonberg <schonberg@gnat.com>
34330
34331 PR ada/15258
34332 * sem_ch6.adb (Base_Types_Match): True if one type is imported through
34333 a limited_with clause, and the other is its non-limited view.
34334
343352004-05-05 Thomas Quinot <quinot@act-europe.fr>
34336
34337 * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
34338
90afe2c9 34339 * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
aa720a54
AC
34340 exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
34341 Stand.Boolean_Literals to produce references to entities
34342 Standard_False and Standard_True from compile-time computed boolean
34343 values.
34344
34345 * stand.ads (Boolean_Literals): New variable, provides the entity
34346 values for False and True, for use by the expander.
34347
343482004-05-05 Doug Rupp <rupp@gnat.com>
34349
34350 * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
34351 5vinmaop.adb: Unchecked convert Short_Address vice Address
34352
34353 * adaint.c, raise.c: Caste CRTL function return value
34354 to avoid gcc error on 32/64 bit IVMS.
34355
34356 * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
34357 target = IA64/VMS.
34358
34359 * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
34360
34361 * 5qsystem.ads (Address): Declare as Long_Integer
34362 (Short_Address): Declare as 32 bit subtype of Address
34363 Declare abstract address operations to avoid gratuitous ambiguities.
34364
343652004-05-05 Jose Ruiz <ruiz@act-europe.fr>
34366
34367 * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
34368 instead of the old Boolean_Entry_Barriers.
34369 Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
34370
343712004-05-05 GNAT Script <nobody@gnat.com>
34372
34373 * Make-lang.in: Makefile automatically updated
34374
1ab2888d
AC
343752004-05-03 Arnaud Charlet <charlet@act-europe.fr>
34376
34377 * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
34378
9f4fd324
AC
343792004-05-03 Olivier Hainque <hainque@act-europe.fr>
34380
34381 PR ada/15152
9f4fd324
AC
34382 * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
34383 alone. Replacing object references by literals is inappropriate in a
34384 so low level context.
34385
343862004-05-03 Arnaud Charlet <charlet@act-europe.fr>
34387
34388 * a-exexpr.adb: Add comments
34389
343902004-05-03 Joel Brobecker <brobecker@gnat.com>
34391
34392 * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
34393 declare the Ancestor_Tags array in Type_Specific_Data with a small size
34394 without risking a bounds check error when accessing one of its
34395 components.
34396 (Type_Specific_Data): Define Ancestor_Tags as a small array.
34397 This prevents us from hitting a limitation during the debug info
34398 generation when using stabs.
34399
34400 * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
34401 small array.
34402 This prevents us from hitting a limitation during the debug info
34403 generation when using stabs.
34404
344052004-05-03 Eric Botcazou <ebotcazou@act-europe.fr>
34406
34407 lang-specs.h: Remove -gnatz* from specs.
34408
344092004-05-03 Vincent Celier <celier@gnat.com>
34410
34411 * gprmake.adb, makegpr.ads, makegpr.adb: New files.
34412
34413 * Make-lang.in, Makefile.in: Add gprmake
34414
344152004-05-03 Thomas Quinot <quinot@act-europe.fr>
34416
34417 * sem_aggr.adb: Fix typo in comment.
34418
344192004-05-03 Robert Dewar <dewar@gnat.com>
34420
34421 * make.adb: Minor reformatting
34422
34423 * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
34424
34425 * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
34426 so that it works when address is not a private type.
34427
34428 * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
34429 properly with rewritten unchecked conversions. This prevents
34430 order-of-elaboration issues that can otherwise arise.
34431 (Minimum_Size): Don't check size of access types under VMS
34432
34433 * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
34434 interpretations of integer literals as type System.Address.
34435
34436 * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
34437 (Is_Descendent_Of): New function
34438
344392004-05-03 Jose Ruiz <ruiz@act-europe.fr>
34440
34441 * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
34442 Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
34443 No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
34444
34445 * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
34446 of the old Max_Entry_Queue_Depth.
34447
34448 * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
34449 Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
34450 No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
34451
34452 * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
34453 New entry for proper handling of Max_Entry_Queue_Depth.
34454 New entry for proper handling of No_Dynamic_Interrupts.
34455
34456 * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
34457 supersedes the GNAT specific restriction Boolean_Entry_Barriers.
34458 Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
34459 the GNAT specific restriction Max_Entry_Queue_Depth.
34460 Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
34461 the GNAT specific restriction No_Dynamic_Interrupts.
34462
34463 * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
34464 instead of the old Boolean_Entry_Barriers.
34465 Use the new restriction No_Dynamic_Attachment instead of the old
34466 No_Dynamic_Interrupts.
34467
34468 * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
34469 supersedes the GNAT specific restriction Boolean_Entry_Barriers.
34470
34471 * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
34472 of the old Max_Entry_Queue_Depth.
34473
344742004-05-03 GNAT Script <nobody@gnat.com>
34475
34476 * Make-lang.in: Makefile automatically updated
34477
d935a36e
AC
344782004-04-29 Ed Schonberg <schonberg@gnat.com>
34479
34480 * checks.adb (Enable_Range_Check): If the prefix of an index component
34481 is an access to an unconstrained array, perform check unconditionally.
34482
344832004-04-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34484
34485 * decl.c (gnat_to_gnu_field): Also call make_packable_type if
34486 Component_Clause.
34487
344882004-04-29 Olivier Hainque <hainque@act-europe.fr>
34489
34490 * init.c (__gnat_install_handler, __gnat_error_handler): Remove
34491 alternate stack setting. There was no support for the tasking cases
34492 and the changes eventually caused a number of side-effect failures in
34493 the non-tasking case too.
34494
344952004-04-29 Eric Botcazou <ebotcazou@act-europe.fr>
34496
34497 lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
34498 -gnats is passed.
34499
345002004-04-29 Vincent Celier <celier@gnat.com>
34501
34502 * make.adb (Gnatmake): Increase max size of argument array for
34503 gnatbind for the potential addition of -F.
34504 If there are Stand-Alone Library projects, invoke gnatbind with -F to
34505 be sure that elaboration flags will be checked.
34506
34507 * switch-c.adb: Correct call to Scan_Pos for -gnateI
34508
345092004-04-29 Thomas Quinot <quinot@act-europe.fr>
34510
34511 * sem_warn.adb (Check_References): Move '<access-variable> may be
34512 null' warning out of under Warn_On_No_Value_Assigned.
34513
345142004-04-29 Ed Falis <falis@gnat.com>
34515
34516 * gnat_ugn.texi: Fixed texi error
34517
345182004-04-29 Robert Dewar <dewar@gnat.com>
34519
34520 * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
34521 abstract operations if they come from predefined files.
34522
34523 * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
34524 Dynamic, not RM).
34525
34526 * s-addope.adb: Correct obvious error in mod function
34527
345282004-04-28 Andrew W. Reynolds <awreynolds@mac.com>
34529
34530 * Makefile.in: Add target pairs for powerpc darwin*
34531 tasking support.
34532
34533 * a-intnam-darwin.ads, s-osinte-darwin.adb,
34534 s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
34535
ea16c81b
UW
345362004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
34537
34538 * Makefile.in: Add target macro definitions for s390*-linux*.
34539 * system-linux-s390.ads: New file.
34540 * system-linux-s390x.ads: New file.
34541
f0e6f845
JM
345422004-04-28 Joseph S. Myers <jsm@polyomino.org.uk>
34543
34544 * gnat_ugn.texi: Correct argument to @setfilename.
34545
e8c2eedc
UW
345462004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
34547
34548 * a-exexpr.adb (Unwind_Word): New data type.
34549 (Unwind_Exception): Use it as type of Private1 and Private2.
34550
34551 * raise.c (db_action_for): Fix debug printf.
34552
f2c9e65a
AC
345532004-04-27 Ed Schonberg <schonberg@gnat.com>
34554
34555 * a-wtmoio.ads: Formal type must be a modular type, not a signed
34556 integer type.
34557
345582004-04-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34559
34560 * decl.c (gnat_to_gnu_entity, case object): Call
34561 __builtin_update_setjmp_buf.
34562
34563 * gigi.h (update_setjmp_buf): Deleted.
34564 (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
34565
34566 * misc.c: (update_setjmp_buf): Deleted.
34567
34568 * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
34569 around block of RTL.
34570
34571 * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
34572
35b7fa6a
AC
345732004-04-26 Thomas Quinot <quinot@act-europe.fr>
34574
34575 * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
34576 subprogram for which no pragma All_Calls_Remote applies, store the
34577 address of the real subprogram in the underlying record type, so local
34578 dereferences do not go through the PCS.
34579
345802004-04-26 Robert Dewar <dewar@gnat.com>
34581
34582 * i-c.ads: Add some type qualifications to avoid ambiguities when
34583 compiling with s-auxdec.ads and a non-private address type.
34584
345852004-04-26 Arnaud Charlet <charlet@act-europe.fr>
34586
34587 * Makefile.rtl: Fix error in previous check-in:
34588 Add s-addope.o to non tasking object list (rather than tasking object
34589 list).
34590
345912004-04-26 Javier Miranda <miranda@gnat.com>
34592
34593 * sem_aggr.adb: Fix typo in comments
34594 (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
34595 Required to check the null-exclusion attribute.
34596
34597 * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
34598 case of anonymous access types in record and array components. For a
34599 component definition the level is the same of the enclosing composite
34600 type.
34601
34602 * sem_ch3.adb (Analyze_Component_Declaration): In case of components
34603 that are anonymous access types the level of accessibility depends on
34604 the enclosing type declaration. In order to have this information, set
34605 the scope of the anonymous access type to the enclosing record type
34606 declaration.
34607 (Array_Type_Declaration): In case of components that are anonymous
34608 access types the level of accessibility depends on the enclosing type
34609 declaration. In order to have this information, set the scope of the
34610 anonymous access type to the enclosing array type declaration.
34611
34612 * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
34613 access type.
34614
34615 * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
34616 renaming of anonymous access-to-constant types allowed if and only if
34617 the renamed object is access-to-constant.
34618
34619 * sem_util.adb (Type_Access_Level): In case of anonymous access types
34620 that are component_definition or discriminants of a nonlimited type,
34621 the level is the same as that of the enclosing component type.
34622
346232004-04-26 Sergey Rybin <rybin@act-europe.fr>
34624
34625 * sem_elim.adb: Some minor code reorganization from code reading. Fix
34626 misprint in the function name (File_Name_Match).
34627
9e94c78f 346282004-04-23 Laurent Guerby <laurent@guerby.net>
5a944040 34629
90afe2c9 34630 * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
5a944040 34631 install.
90afe2c9 34632
d0fd1344
RO
346332004-04-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
34634
34635 * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
34636
cc4f0de1
AC
346372004-04-23 Emmanuel Briot <briot@act-europe.fr>
34638
34639 * adaint.c (__gnat_try_lock): No longer requires that the parent
34640 directory be writable, the directory itself is enough.
34641 (gnat_is_absolute_path): Change profile, so that the call from
34642 GNAT.OS_Lib can be made more efficient.
34643
34644 * adaint.h (gnat_is_absolute_path): Change profile, so that the call
34645 from GNAT.OS_Lib can be made more efficient.
34646
34647 * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
34648 one copy of the file name. Found by code reading.
34649
346502004-04-23 Vincent Celier <celier@gnat.com>
34651
34652 * gnat_ugn.texi: Add documentation for gnatmake switch -eL
34653 Correct documentation on gnatmake switches transmitted to the compiler
34654
34655 * ali.ads: Minor comment fix
34656
346572004-04-23 Javier Miranda <miranda@gnat.com>
34658
34659 * sem_ch6.adb: (Confirming Types): Code cleanup
34660
34661 * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
34662 subprogram types: E_Anonymous_Access_Subprogram_Type and
34663 E_Anonymous_Access_Protected_Subprogram_Type.
34664
346652004-04-23 Thomas Quinot <quinot@act-europe.fr>
34666
34667 * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
34668 whether a pragma All_Calls_Remote applies to the subprogram on which
34669 'Access is taken.
34670 No functional change is introduced by this revision; the new parameter
34671 will be used to allow calls to local RCI subprograms to be optimized
34672 to not use the PCS in the case where no pragma All_Calls_Remote applies,
34673 as is already done in the PolyORB implementation of the DSA.
34674
34675 * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
34676 whether a pragma All_Calls_Remote applies to the subprogram on which
34677 'Access is taken.
34678 No functional change is introduced by this revision; the new parameter
34679 will be used to allow calls to local RCI subprograms to be optimized
34680 to not use the PCS in the case where no pragma All_Calls_Remote applies,
34681 as is already done in the PolyORB implementation of the DSA.
34682
346832004-04-23 Robert Dewar <dewar@gnat.com>
34684
34685 * Makefile.rtl: Add entry for s-addope.o in run time library list
34686 * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
34687 * s-addope.ads, s-addope.adb: New files.
34688
90afe2c9
ZW
34689 * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
34690 s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
cc4f0de1
AC
34691 s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
34692 System.Address to be non-private and signed.
34693
34694 * sem_elim.adb: Minor reformatting (fairly extensive)
34695 Some minor code reorganization from code reading
34696 Add a couple of ??? comments
34697
346982004-04-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34699
34700 * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
90afe2c9 34701 (tree_transform, case N_If_Statement): Remove non-determinism.
cc4f0de1
AC
34702
34703 * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
34704
347052004-04-23 Sergey Rybin <rybin@act-europe.fr>
34706
34707 * gnat_rm.texi: Small fixes in the changes made in the 'pragma
34708 Eliminate' section.
34709
34710 * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
34711 no longer used as a parameter name for Eliminate pragma).
34712
9e94c78f 347132004-04-22 Laurent Guerby <laurent@guerby.net>
78bad775
LG
34714
34715 PR optimization/14984
34716 PR optimization/14985
34717 * trans.c (gigi): Fix non determinism leading to bootstrap
34718 comparison failures.
34719
af4b9434
AC
347202004-04-21 Pascal Obry <obry@gnat.com>
34721
34722 * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
34723 passed to spawnvp() to properly handle program pathname with spaces on
34724 Win32.
34725
347262004-04-21 Emmanuel Briot <briot@act-europe.fr>
34727
34728 * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
34729 (Allocate, Deallocate, Free_Physically): Make sure the tasks are
34730 unlocked in case of exceptions.
34731
347322004-04-21 Joel Brobecker <brobecker@gnat.com>
34733
34734 * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
34735 This function does not exist anymore.
34736
347372004-04-21 Thomas Quinot <quinot@act-europe.fr>
34738
34739 * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
34740
34741 * link.c: Move variables to the __gnat name space.
34742
34743 * Makefile.in: list link.o explicitly when needed.
34744
34745 * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
34746
347472004-04-21 Javier Miranda <miranda@gnat.com>
34748
34749 * einfo.adb (Original_Access_Type): New subprogram
34750 (Set_Original_Access_Type): New subprogram
34751 (Write_Field21_Name): Write the name of the new field
34752
34753 * einfo.ads (Original_Access_Type): New field present in access to
34754 subprogram types.
34755 Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
34756 E_Anonymous_Access_Protected_Subprogram_Type.
34757
34758 * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
34759 subprogram types.
34760
34761 * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
34762 to anonymous access to subprogram types.
34763
34764 * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
34765 to subprogram types.
34766
34767 * sem_ch3.adb (Access_Definition): Complete decoration of entities
34768 corresponding to anonymous access to subprogram types.
34769 (Analyze_Component_Declaration): Add new actual to the call to
34770 subprogram replace_anonymous_access_to_protected_subprogram.
34771 (Array_Type_Declaration): Add new actual to the call to subprogram
34772 replace_anonymous_access_to_protected_subprogram.
34773 (Process_Discriminants): Add new actual to the call to subprogram
34774 replace_anonymous_access_to_protected_subprogram.
34775 (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
34776
34777 * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
34778 formal.
34779
34780 * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
34781 access to subprogram types.
34782
34783 * sem_util.adb (Has_Declarations): Addition of package_specification
34784 nodes.
34785
347862004-04-21 Ed Schonberg <schonberg@gnat.com>
34787
34788 * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
34789 inlined flags to renamed entity only if in current unit.
34790
347912004-04-21 Thomas Quinot <quinot@act-europe.fr>
34792
34793 * s-parint.ads: Add DSA implementation marker.
34794
34795 * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
34796 value of System.Partition_Interface.DSA_Implementation to determine
34797 what version of the distributed systems annex is available (no
34798 implementation, GLADE, or PolyORB).
34799
348002004-04-21 Joel Brobecker <brobecker@gnat.com>
34801
34802 * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
34803
348042004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34805
34806 * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
34807 with new type if alias sets differ.
34808 Fixes ACATS c41103b.
34809
348102004-04-21 Vincent Celier <celier@gnat.com>
34811
34812 * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
34813 Add array Lang_Args for the language specific compiling argument
34814 switches.
34815
34816 * gnat_ugn.texi: Explain in more details when a library is rebuilt.
34817
348182004-04-21 Sergey Rybin <rybin@act-europe.fr>
34819
34820 * gnat_rm.texi: Update the descripton of the Eliminate pragma
34821 according to the recent changes in the format of the parameters of the
34822 pragma (replacing Homonym_Number with Source_Location).
34823
7324bf49
AC
348242004-04-19 Arnaud Charlet <charlet@act-europe.fr>
34825
34826 * 5isystem.ads: Removed, unused.
34827
34828 * gnat_rm.texi: Redo 1.13 change.
34829
348302004-04-19 Robert Dewar <dewar@gnat.com>
34831
34832 * s-stoele.ads: Clean up definition of Storage_Offset (the new
34833 definition is cleaner, avoids the kludge of explicit Standard operator
34834 references, and also is consistent with a visible System.Address with
34835 no visible operations.
34836
34837 * s-geveop.adb: Add declarations to avoid assumption of visible
34838 operations on type System.Address (since these might not be available
34839 if Address is a non-private type for which the operations
34840 are made abstract).
34841
34842 * sem_eval.adb: Minor reformatting
34843
34844 * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
34845 s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
34846 reformatting (new function spec format).
34847
34848 * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
34849 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
34850 s-caun64.adb: Add declarations to avoid assumption of visible
34851 operations on type System.Address (since these might not be available
34852 if Address is a non-private type for which the operations are made
34853 abstract).
34854
34855 * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
34856
34857 * exp_intr.adb: Minor comment update
34858
34859 * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
34860
34861 * 5omastop.adb: Add declarations to avoid assumption of visible
34862 operations on type System.Address (since these might not be available
34863 if Address is a non-private type for which the operations
34864 are made abstract).
34865
348662004-04-19 Vincent Celier <celier@gnat.com>
34867
34868 * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
34869
34870 * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
34871 defaulted to Ada.
34872
34873 * prj-proc.adb (Process): New Boolean parameter Process_Languages,
34874 defaulted to Ada.
34875 Call Check with Process_Languages.
34876 (Check): New Boolean parameter Process_Languages. Call Recursive_Check
34877 with Process_Languages.
34878 (Recursive_Check): New Boolean parameter Process_Languages. Call
34879 Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
34880 Process_Languages.
34881
34882 * prj-proc.ads (Process): New Boolean parameter Process_Languages,
34883
34884 * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
34885 parameter Ada_Main, defaulted to True.
34886 Check for Ada specific characteristics only when Ada_Main is True.
34887
34888 * opt.ads: (Follow_Links): New Boolean flag for gnatmake
34889
34890 * prj.adb: (Project_Empty): Add new Project_Data components.
34891
34892 * prj.ads: New types and tables for non Ada languages.
34893 (Project_Data): New components Languages, Impl_Suffixes,
34894 First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
34895 Include_Path, Include_Data_Set.
34896
34897 * prj-env.ads, prj-env.adb: Minor reformatting
34898
34899 * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
34900 Put subprograms in alphabetical order
34901
34902 * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
34903 defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
34904 Opt.Follow_Links.
34905
34906 * mlib-prj.adb: Back out modification in last version, as they are
34907 incorrect.
34908 (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
34909
34910 * make.adb: (Mains): Moved to package Makeutl
34911 (Linker_Opts): Moved to package Makeutl
34912 (Is_External_Assignment): Moved to package Makeutl
34913 (Test_If_Relative_Path): Moved to package Makeutl
34914 (Gnatmake): Move sorting of linker options to function
34915 Makeutl.Linker_Options_Switches.
34916
8f9df7d8
VC
34917 * makeutl.ads, makeutl.adb: New files.
34918
7324bf49
AC
34919 * Makefile.in: Add makeutl.o to the object files for gnatmake
34920
34921 * makeusg.adb: Add line for new switch -eL.
34922
34923 * gnatls.adb (Image): New function.
34924 (Output_Unit): If in verbose mode, output the list of restrictions
34925 specified by pragmas Restrictions.
34926
34927 * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
34928 Text_IO.
34929
34930 * a-calend.adb (Split): Shift the date by multiple of 56 years, if
34931 needed, to put it in the range 1970 (included) - 2026 (excluded).
34932 (Time_Of): Do not shift Unix_Min_Year (1970).
34933 Shift the date by multiple of 56 years, if needed, to put it in the
34934 range 1970 (included) - 2026 (excluded).
34935
34936 * adaint.h, adaint.c (__gnat_set_executable): New function.
34937
349382004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34939
34940 * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
34941 and pop GC context.
34942 (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
34943 (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
34944 (tree_transform, case N_Procedure_Call_Statement): Build a tree.
34945 (tree_transform, case N_Code_Statement): Likewise.
34946 (gnat_expand_stmt, case LABEL_STMT): Don't look at
34947 LABEL_STMT_FIRST_IN_EH.
34948 (gnat_expand_stmt, case ASM_STMT): New case.
34949
34950 * utils2.c (build_unary_op): Properly set TREE_READONLY of
34951 UNCONSTRAINED_ARRAY_REF.
34952
34953 * utils.c (poplevel): Temporarily push/pop GC context around inline
34954 function expansion.
34955
34956 * decl.c (maybe_variable): Properly set TREE_READONLY of
34957 UNCONSTRAINED_ARRAY_REF.
34958 (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
34959
34960 * ada-tree.def: (ASM_STMT): New.
34961
34962 * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
34963 (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
34964 ASM_STMT_INPUT): New.
34965 (ASM_STMT_CLOBBER): Likewise.
34966
349672004-04-19 Thomas Quinot <quinot@act-europe.fr>
34968
34969 * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
34970 general rcheck mechanism to raise Program_Error for E.4(18), instead
34971 of a custom raiser in System.Partition_Interface.
34972 Part of general cleanup work before PolyORB integration.
34973
34974 * snames.ads, snames.adb: Add new runtime library entities and names
34975 for PolyORB DSA.
34976
34977 * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
34978 exp_dist.
34979 (Build_Subprogram_Id): New subprogram provided by exp_dist
34980 Code reorganisation in preparation for PolyORB integration.
34981
34982 * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
34983 exp_dist.
34984 (Build_Subprogram_Id): New subprogram provided by exp_dist
34985
34986 * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
34987 actual parameter types for call to dereference of an
34988 access-to-subprogram type.
34989
34990 * rtsfind.ads: Add new runtime library entities and names for PolyORB
34991 DSA.
34992
34993 * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
34994 instead, which has the same behaviour here since we never pass it a
34995 NULL pointer.
34996
34997 * link.c (run_path_option, Solaris case): Use -Wl, as for other
34998 platforms.
34999
35000 * Makefile.in: adjust object file lists for gnatlink and gnatmake
35001 to account for new dependency upon Interfaces.C.Strings + link.o
35002 For x86 FreeBSD, use 86numaux.
35003
35004 * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
35005 from Mlib.Tgt to Mlib.
35006
35007 * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
35008 target-independent.
35009
35010 * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
35011 target-specific versions of this subprogram, now implemented as a
35012 target-independent function in Mlib.
35013
35014 * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
35015 5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
35016 (Linker_Library_Path_Option): Remove target-specific versions of this
35017 subprogram, now implemented as a target-independent function in Mlib.
35018
35019 * atree.adb: (Allocate_Initialize_Node): New subprogram.
35020 Factors out node table slots allocation.
35021 (Fix_Parents): New subprogram.
35022 Encapsulate the pattern of fixing up parent pointers for syntactic
35023 children of a rewritten node.
35024 (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
35025 (Rewrite): Use New_Copy when creating saved copy of original node.
35026 (Replace): Use Copy_Node to copy nodes.
35027
350282004-04-19 Javier Miranda <miranda@gnat.com>
35029
35030 * sprint.adb (Sprint_Node_Actual): Give support to the new
35031 Access_To_Subprogram node available in Access_Definition nodes. In
35032 addition, give support to the AI-231 node fields: null-exclusion,
35033 all-present, constant-present.
35034
35035 * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
35036
90afe2c9 35037 * sinfo.ads, sinfo.adb:
7324bf49
AC
35038 New field Access_To_Subprogram_Definition in Access_Definition nodes
35039
35040 * sem_ch6.adb (Process_Formals): Move here the code that creates and
35041 decorates internal subtype declaration corresponding to the
35042 null-excluding formal. This code was previously in Set_Actual_Subtypes.
35043 In addition, carry out some code cleanup on this code. In case of
35044 access to protected subprogram call
35045 Replace_Anonymous_Access_To_Protected_Subprogram.
35046 (Set_Actual_Subtypes): Code cleanup.
35047
35048 * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
35049 Find_Type in case of anonymous access renamings. Add warning in case of
35050 null-excluding attribute used in anonymous access renaming.
35051
35052 * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
35053 subprogram
35054
35055 * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
35056 subprogram.
35057 (Access_Definition): In case of anonymous access to subprograms call
35058 the corresponding semantic routine to decorate the node.
35059 (Access_Subprogram_Declaration): Addition of some comments indicating
35060 some code that probably should be added here. Detected by comparison
35061 with the access_definition subprogram.
35062 (Analyze_Component_Declaration): In case of access to protected
35063 subprogram call Replace_Anonymous_Access_To_Protected.
35064 (Array_Type_Declaration): In case of access to protected subprogram call
35065 Replace_Anonymous_Access_To_Protected_Subprogram.
35066 (Process_Discriminants): In case of access to protected subprogram call
35067 Replace_Anonymous_Access_To_Protected_Subprogram.
35068
35069 * par.adb (P_Access_Definition): New formal that indicates if the
35070 null-exclusion part was present.
35071 (P_Access_Type_Definition): New formal that indicates if the caller has
35072 already parsed the null-excluding part.
35073
35074 * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
35075 (P_Identifier_Declarations): Code cleanup and give support to renamings
35076 of anonymous access to subprogram types.
35077 (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
35078 (P_Array_Type_Definition): Give support to AI-254.
35079 (P_Component_Items): Give support to AI-254.
35080 (P_Access_Definition): New formal that indicates if the header was
35081 already parsed by the caller.
35082 (P_Access_Type_Definition): New formal that indicates if the caller has
35083 already parsed the null-excluding part.
35084
35085 * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
35086 call to P_Access_Definition.
35087
350882004-04-19 Geert Bosch <bosch@gnat.com>
35089
35090 * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
35091 the delicate semantics of floating-point to integer conversion.
35092 (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
35093
35094 * eval_fat.adb (Machine_Mantissa): Moved to spec.
35095 (Machine_Radix): New function.
35096
35097 * eval_fat.ads (Machine_Mantissa): Moved from body for use in
35098 conversion checks.
35099 (Machine_Radix): New function also for use in conversion checks.
35100
351012004-04-19 Ed Schonberg <schonberg@gnat.com>
35102
35103 * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
35104
35105 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
35106 to decorate the access-to-protected subprogram and the equivalent type.
35107
35108 * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
35109 to anonymous access to subprogram types.
35110
35111 * exp_ch4.adb (Expand_N_In): Preserve Static flag before
35112 constant-folding, for legality checks in contexts that require an RM
35113 static expression.
35114
35115 * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
35116 temporary but stack checking is not enabled, increment serial number
35117 to so that symbol generation is consistent with and without stack
35118 checking.
35119
35120 * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
35121 independent on whether stack checking is enabled, caller must check
35122 the corresponding flag.
35123
35124 * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
35125 range checks.
35126 (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
35127 parent if it has discriminants.
35128 (Build_Derived_Private_Type): Constructed full view does
35129 not come from source.
35130 (Process_Discriminants): Default discriminants on a tagged type are
35131 legal if this is the internal completion of a private untagged
35132 derivation.
35133
35134 * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
35135 no constraint checks, because it corresponds to an existing object.
35136
35137 * sem_prag.adb (Process_Convention): Pragma applies
35138 only to subprograms in the same declarative part, i.e. the same unit,
35139 not the same scope.
35140
35141 * sem_res.adb (Valid_Conversion): In an instance or inlined body,
35142 ignore type mismatch on a numeric conversion if expression comes from
35143 expansion.
35144
351452004-04-19 Sergey Rybin <rybin@act-europe.fr>
35146
35147 * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
35148 Homonym_Number parameter, add processing for Source_Location parameter
35149 corresponding.
35150 (Check_Eliminated): Remove the check for homonym numbers, add the check
35151 for source location traces.
35152
35153 * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
35154 with Arg_Source_Location corresponding to the changes in the format of
35155 the pragma.
35156
35157 * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
35158 Eliminate pragma corresponding to the changes in the format of the
35159 pragma: Homonym_Number is replaced with Source_Location, two ways of
35160 distinguishing homonyms are mutially-exclusive.
35161
351622004-04-19 Joel Brobecker <brobecker@gnat.com>
35163
35164 * get_targ.ads (Get_No_Dollar_In_Label): Remove.
35165
35166 * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
35167 No_Dollar_In_Label, no longer necessary, as it is always True.
35168 (Strip_Suffixes): Likewise.
35169
351702004-04-19 Gary Dismukes <dismukes@gnat.com>
35171
35172 * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
35173 modulus for compatibility with size clause on targets with 16-bit
35174 Integer.
35175
35176 * layout.adb (Discrimify): In the case of private types, set Vtyp to
35177 full type to fix type mismatches on calls to size functions for
35178 discriminant-dependent array components.
35179
351802004-04-19 Jerome Guitton <guitton@act-europe.fr>
35181
35182 * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
35183 lib.
35184
351852004-04-19 Pascal Obry <obry@gnat.com>
35186
35187 * mdll-utl.adb (Locate): New version is idempotent.
35188
9e94c78f 351892004-04-17 Laurent Guerby <laurent@guerby.net>
fa795c69
LG
35190
35191 PR ada/14988 (partial)
35192 * impunit.adb: Fix typo.
90afe2c9 35193
cce0244b
NN
351942004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
35195
35196 * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
35197 and install-rts-cert targets. Remove all gnatlib and gnattools
35198 targets and all other rts-* targets (moved to libada). Remove (now)
35199 unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
35200 TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
35201
af152989
AC
352022004-04-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35203
35204 * trans.c (tree_transform): Shortcut returning error_mark_node for
35205 statements in annotate_only_mode.
35206 (tree_transform, case N_Label, case N_Return_Statement,
35207 N_Goto_Statement): Make statement tree instead of generating code.
35208 (tree_transform, case N_Assignment_Statement): No longer check
35209 type_annotate_only.
35210 (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
35211 RETURN_STMT): New.
35212 (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
35213 New fcns.
35214 (gnat_to_gnu): Collect any RTL generated and deal with it.
35215 (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
35216 (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
35217 (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
35218
35219 * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
35220
35221 * ada-tree.def (EXPR_STMT): Fix typo in name.
35222 (BLOCK_STMT, IF_STMT): New nodes.
35223
35224 * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
35225 LABEL_STMT_FIRST_IN_EH): New macros.
35226 (RETURN_STMT_EXPR): Likewise.
35227
35228 * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
35229 IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
35230
352312004-04-08 Thomas Quinot <quinot@act-europe.fr>
35232
35233 * atree.ads: Correct documentation on extended nodes.
35234
35235 * link.c: Set run_path_option for FreeBSD.
35236
352372004-04-08 Vincent Celier <celier@gnat.com>
35238
35239 * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
35240 one of the ALI file, do not link with DEC lib.
35241
35242 * par.adb Remove the last two characters ("%s" or "%b") when checking
35243 if a language defined unit may be recompiled.
35244
352452004-04-08 Ed Schonberg <schonberg@gnat.com>
35246
35247 * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
35248 removal of abstract operation leaves no possible interpretation for
35249 expression.
35250
35251 * sem_eval.adb (Eval_Qualified_Expression): Use
35252 Set_Raises_Constraint_Error on node when needed, so that it does not
35253 get optimized away by subsequent optimizations.
35254
35255 * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
35256 operands even when they are not wrapped in a type conversion.
35257
352582004-04-08 Olivier Hainque <hainque@act-europe.fr>
35259
35260 * sem_prag.adb (Set_Exported): Warn about making static as result of
35261 export only when the export is coming from source. This may be not
35262 be true e.g. on VMS where we expand export pragmas for exception codes
35263 together with imported or exported exceptions, and we don't want the
35264 user to be warned about something he didn't write.
35265
352662004-04-08 Thomas Quinot <quinot@act-europe.fr>
35267
35268 * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
35269 duplication between normal entities and those declared as renamings.
35270 No functional change.
35271
90afe2c9 35272 * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
af152989
AC
35273 inline functions returning an unconstrained result.
35274
352752004-04-08 Eric Botcazou <ebotcazou@act-europe.fr>
35276
35277 * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
35278 conform to what other front-ends do.
35279
352802004-04-08 Doug Rupp <rupp@gnat.com>
35281
35282 * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
35283 libraries.
35284
3984e89a
AC
352852004-04-06 Pascal Obry <obry@gnat.com>
35286
35287 * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
35288
35289 * osint.adb (Program_Name): Do not look past a directory separator.
35290
352912004-04-06 Thomas Quinot <quinot@act-europe.fr>
35292
35293 * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
35294
35295 * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
35296 requirement for preserving a copy of the original assignment node.
35297
35298 * sinfo.ads: Update comment (Original_Tree -> Original_Node).
35299
353002004-04-06 Olivier Hainque <hainque@act-europe.fr>
35301
35302 (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
35303 when supported.
35304
353052004-04-06 Ed Schonberg <schonberg@gnat.com>
35306
35307 * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
35308 operator calls in functional notation, and apply
35309 Universal_Interpretation to operands, not to their type.
35310
353112004-04-06 Robert Dewar <dewar@gnat.com>
35312
35313 * 5wdirval.adb: Minor reformatting
35314
353152004-04-06 Ed Falis <falis@gnat.com>
35316
35317 * gnat_rm.texi: Improve a reference to the GCC manual
35318
30c20106
AC
353192004-04-05 Vincent Celier <celier@gnat.com>
35320
35321 * adaint.h, adaint.c: Add function __gnat_named_file_length
35322
35323 * impunit.adb: Add Ada.Directories to the list
35324
35325 * Makefile.in: Add VMS and Windows versions of
35326 Ada.Directories.Validity package body.
35327
35328 * Makefile.rtl: Add a-direct and a-dirval
35329
35330 * mlib-tgt.ads: Minor comment update.
35331
35332 * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
35333 a-direct.ads, a-direct.adb: New files.
35334
353352004-04-05 Vincent Celier <celier@gnat.com>
35336
35337 PR ada/13620
35338 * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
35339 just to the compiler.
35340
353412004-04-05 Robert Dewar <dewar@gnat.com>
35342
35343 * a-except.adb (Exception_Name_Simple): Make sure lower bound of
35344 returned string is 1.
35345
35346 * ali-util.adb: Use proper specific form for Warnings (Off, entity)
35347
35348 * eval_fat.ads: Minor reformatting
35349
35350 * g-curexc.ads: Document that lower bound of returned string values
35351 is always one.
35352
35353 * gnatlink.adb: Add ??? comment for previous change
35354 (need to document why this is VMS specific)
35355
35356 * s-stoele.ads: Minor reformatting
35357
35358 * tbuild.ads: Minor reformatting throughout (new function specs)
35359
35360 * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
35361 after WITH.
35362
35363 * scng.adb: Minor reformatting
35364
353652004-04-05 Geert Bosch <bosch@gnat.com>
35366
35367 * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
35368 (Leading_Part): Still perform truncation to machine number if the
35369 specified radix_digits is greater or equal to machine_mantissa.
35370
353712004-04-05 Javier Miranda <miranda@gnat.com>
35372
35373 * par-ch3.adb: Complete documentation of previous change
35374 Correct wrong syntax documentation of the OBJECT_DECLARATION rule
35375 (aliased must appear before constant).
35376
35377 * par-ch4.adb: Complete documentation of previous change.
35378
35379 * par-ch6.adb: Complete documentation of previous change.
35380
35381 * sinfo.ads: Fix typo in commment.
35382
353832004-04-05 Ed Schonberg <schonberg@gnat.com>
35384
35385 * sem_ch3.adb (Inherit_Components): If derived type is private and has
35386 stored discriminants, use its discriminants to constrain parent type,
35387 as is done for non-private derived record types.
35388
35389 * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
35390 Ada 2005 AI-310: an abstract non-dispatching operation is not a
35391 candidate interpretation in an overloaded call.
35392
35393 * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
35394 expression is Null and target type is not an access type (e.g. a
35395 non-private address type).
35396
353972004-04-05 Thomas Quinot <quinot@act-europe.fr>
35398
35399 * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
35400 statement whose right-hand side is an inlined call, save a copy of the
35401 original assignment subtree to preserve enough consistency for
35402 Analyze_Assignment to proceed.
35403
35404 * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
35405 complete assignment subtree which is now unnecessary, as the expansion
35406 of inlined call has been improved to preserve a consistent assignment
35407 tree. Note_Possible_Modification must be called only
35408 after checks have been applied, or else unnecessary checks will
35409 be generated.
35410
35411 * sem_util.adb (Note_Possible_Modification): Reorganise the handling
35412 of explicit dereferences that do not Come_From_Source:
35413 - be selective on cases where we must go back to the dereferenced
35414 pointer (an assignment to an implicit dereference must not be
35415 recorded as modifying the pointer);
35416 - do not rely on Original_Node being present (Analyze_Assignment
35417 calls Note_Possible_Modification on a copied tree).
35418
35419 * sem_warn.adb (Check_References): When an unset reference to a pointer
35420 that is never assigned is encountered, prefer '<pointer> may be null'
35421 warning over '<pointer> is never assigned a value'.
35422
354232004-04-05 Ramon Fernandez <fernandez@gnat.com>
35424
35425 * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
35426 the ABI.
35427
354282004-04-05 Olivier Hainque <hainque@act-europe.fr>
35429
35430 * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
35431 libexc. We currently don't reference anything in this library and
35432 linking it in triggers linker warnings we don't want to see.
35433
35434 * init.c: Update comments.
35435
4f976745
RK
354362004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35437
35438 * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
35439 * utils.c (create_field_decl): Likewise.
35440 * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
35441
6da7d579
AC
354422004-04-02 Arnaud Charlet <charlet@act-europe.fr>
35443
35444 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
35445 Replace ifinfo by ifnottex, to make makeinfo --html happy again.
35446 Add info directory entry and category.
35447
18c6ada9
JH
354482004-04-02 Jan Hubicka <jh@suse.cz>
35449
35450 * utils.c: Include function.h
35451 (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
35452
7cd4527e
AC
354532004-04-01 Arnaud Charlet <charlet@act-europe.fr>
35454
35455 PR ada/14150
35456 * Make-lang.in: Clean up generation of documentation
35457
35458 * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
35459
35460 * xgnatug.adb: Removed, replaced by xgnatugn.adb
35461
35462 * xgnatugn.adb: Replaces xgnatug.adb
35463
35464 * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
35465
35466 * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
35467
35468 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35469 gnat_ug_wnt.texi: Removed.
35470
0c250f07
AC
354712004-04-01 Arnaud Charlet <charlet@act-europe.fr>
35472
35473 * utils2.c: Update copyright notice.
35474
6b6fcd3e
AC
354752004-04-01 Robert Dewar <dewar@gnat.com>
35476
35477 * checks.adb: Minor reformatting throughout
35478 Note that prev checkin added RM reference to alignment warning
35479
354802004-04-01 Ed Schonberg <schonberg@gnat.com>
35481
35482 * exp_aggr.adb (Get_Component_Val): Treat a string literal as
35483 non-static when building aggregate for bit-packed array.
35484
35485 * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
35486 function call that is itself the actual in a procedure call, build
35487 temporary for it.
35488
35489 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
35490 a string literal, create a temporary for it, constant folding only
35491 handles scalars here.
35492
354932004-04-01 Vincent Celier <celier@gnat.com>
35494
35495 * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
35496 Error_Msg_SP): New empty procedures to instantiate the Scanner.
35497 (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
35498 tokens.
35499 (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
35500 (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
35501 and get the checksum.
35502
35503 * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
35504 already in the Q.
35505 Increase the Marking_Label at the end of the Multiple_Main_Loop,
35506 instead of at the beginning.
35507
35508 * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
35509 directly.
35510 (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
35511 on VMS.
35512
35513 * osint.ads (Multi_Unit_Index_Character): New Character global variable
35514
35515 * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
35516 not '~' directly.
35517
35518 * par.adb: Remove test on file name to detect language defined units.
35519 Add test on unit name, after parsing, to detect language defined units
35520 that are not compiled with -gnatg (except System.RPC and its children)
35521
35522 * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
35523 following units without style checking.
35524
35525 * switch-c.adb: Change -gnatC to -gnateI
35526
35527 * usage.adb: Document new switch -gnateInnn
35528
35529 * scng.adb (Accumulate_Token_Checksum): New procedure
35530 (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
35531 word or literal number.
35532 (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
35533 numbers.
35534
355352004-04-01 Thomas Quinot <quinot@act-europe.fr>
35536
35537 * a-tasatt.adb,
35538 g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
35539 switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
35540 5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
35541 5vtpopde.adb: Add missing 'constant' keywords.
35542
355432004-04-01 Javier Miranda <miranda@gnat.com>
35544
35545 * par-ch4.adb: (P_Allocator): Code cleanup
35546
35547 * sem_ch3.adb (Access_Definition): Properly set the null-excluding
35548 attribute.
35549
35550 * sinfo.ads: Complete documentation of previous change
35551
355522004-04-01 Pascal Obry <obry@gnat.com>
35553
35554 * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
35555 only on VMS. This special handling was done because an old GNU/ld bug
35556 on Windows which has been fixed.
35557
355582004-04-01 GNAT Script <nobody@gnat.com>
35559
35560 * Make-lang.in: Makefile automatically updated
35561
8df83eae
RK
355622004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35563
35564 * decl.c (gnat_to_gnu_entity, make_type_from_size):
35565 Use TYPE_UNSIGNED, not TREE_UNSIGNED.
35566 * trans.c (tree_transform, convert_with_check): Likewise.
35567 * utils.c (gnat_signed_or_unsigned_type): Likewise.
35568 (build_vms_descriptor, unchecked_convert): Likewise.
35569 * utils2.c (nonbinary_modular_operation): Likewise.
35570
2820d220
AC
355712004-03-29 Javier Miranda <miranda@gnat.com>
35572
35573 * checks.adb (Null_Exclusion_Static_Checks): New subprogram
35574 (Install_Null_Excluding_Check): Local subprogram that determines whether
35575 an access node requires a runtime access check and if so inserts the
35576 appropriate run-time check.
35577 (Apply_Access_Check): Call Install_Null_Excluding check if required
35578 (Apply_Constraint_Check): Call Install_Null_Excluding check if required
35579
35580 * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
35581
35582 * einfo.ads: Fix typo in comment
35583
35584 * exp_ch3.adb (Build_Assignment): Generate conversion to the
35585 null-excluding type to force the corresponding run-time check.
35586 (Expand_N_Object_Declaration): Generate conversion to the null-excluding
35587 type to force the corresponding run-time check.
35588
35589 * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
35590 the null-excluding type to force the corresponding run-time check.
35591
35592 * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
35593 case of access types unless they have the null-excluding attribute.
35594
35595 * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
35596 part.
35597
35598 * exp_util.ads: Fix typo in comment
35599
35600 * par.adb (P_Null_Exclusion): New subprogram
35601 (P_Subtype_Indication): New formal that indicates if the null-excluding
35602 part has been scanned-out and it was present
35603
35604 * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
35605
35606 * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
35607 (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
35608 type to force the corresponding run-time check
35609 (Resolve_Aggregate): Propagate the null-excluding attribute to the array
35610 components
35611 (Resolve_Array_Aggregate): Carry out some static checks
35612 (Resolve_Record_Aggregate.Get_Value): Carry out some static check
35613
35614 * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
35615 attribute must be set only if specified by means of the null-excluding
35616 part. In addition, we must also propagate the access-constant attribute
35617 if present.
35618 (Access_Subprogram_Declaration, Access_Type_Declaration,
35619 Analyze_Component_Declaration, Analyze_Object_Declaration,
35620 Array_Type_Declaration, Process_Discriminants,
35621 Analyze_Subtype_Declaration): Propagate the null-excluding attribute
35622 and carry out some static checks.
35623 (Build_Derived_Access_Type): Set the null-excluding attribute
35624 (Derived_Type_Declaration, Process_Subtype): Carry out some static
35625 checks.
35626
35627 * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
35628
35629 * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
35630
35631 * sem_ch6.adb (Process_Formals): Carry out some static checks.
35632 (Set_Actual_Subtypes): Generate null-excluding subtype if the
35633 null-excluding part was present; it is not required to be done here in
35634 case of anonymous access types.
35635 (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
35636 value.
35637
35638 * sem_res.adb (Resolve_Actuals): Carry out some static check
35639 (Resolve_Null): Allow null in anonymous access
35640
35641 * sinfo.adb: New subprogram Null_Exclusion_Present
35642 All_Present and Constant_Present available on access_definition nodes
35643
35644 * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
35645 object_declaration, derived_type_definition, component_definition,
35646 discriminant_specification, access_to_object_definition,
35647 access_function_definition, allocator, access_procedure_definition,
35648 access_definition, parameter_specification, All_Present and
35649 Constant_Present flags available on access_definition nodes.
35650
356512004-03-29 Robert Dewar <dewar@gnat.com>
35652
35653 * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
35654 gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
35655 opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
35656 par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
35657 sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
35658 sem_prag.adb: Updates to handle multiple units/file
35659
35660 * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
35661
35662 * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
35663 sem_util.adb: Minor reformatting
35664
35665 * sem_ch12.adb: Add comment for previous change
35666
356672004-03-29 Laurent Pautet <pautet@act-europe.fr>
35668
35669 * osint.adb (Executable_Prefix): Set Exec_Name to the current
35670 executable name when not initialized. Otherwise, use its current value.
35671
35672 * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
35673 initialize it to another executable name than the current one. This
35674 allows to configure paths for an executable name (gnatmake) different
35675 from the current one (gnatdist).
35676
356772004-03-29 Ed Schonberg <schonberg@gnat.com>
35678
35679 * exp_ch6.adb (Expand_Call): A call to a function declared in the
35680 current unit cannot be inlined if it appears in the body of a withed
35681 unit, to avoid order of elaboration problems in gigi.
35682
35683 * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
35684 information for protected (wrapper) operation as well, to simplify gdb
35685 use.
35686
35687 * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
35688 protected body, indicate that the entity for the generated spec comes
35689 from source, to ensure that references are properly generated for it.
35690 (Build_Body_To_Inline): Do not inline a function that returns a
35691 controlled type.
35692
35693 * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
35694 apply convention to homonyms that are declared explicitly.
35695
35696 * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
35697 that renames an equality operator and the operands are overloaded,
35698 resolve them with the declared formal types, before rewriting as an
35699 operator.
35700
357012004-03-29 GNAT Script <nobody@gnat.com>
35702
35703 * Make-lang.in: Makefile automatically updated
35704
6d11af89
AC
357052004-03-25 Vasiliy Fofanov <fofanov@act-europe.fr>
35706
35707 * memtrack.adb: Log realloc calls, which are treated as free followed
35708 by alloc.
35709
357102004-03-25 Vincent Celier <celier@gnat.com>
35711
35712 * prj-makr.adb (Process_Directories): Detect when a file contains
35713 several units. Do not include such files in the config pragmas or
35714 in the naming scheme.
35715
35716 * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
35717 Resolve links only when not in Trusted_Mode.
35718 (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
35719 Do not resolve links for the display names.
35720
35721 * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
35722 resolve links when computing the display names.
35723
357242004-03-25 Thomas Quinot <quinot@act-europe.fr>
35725
35726 * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
35727 attribute reference does not denote a subtype, it can be any
35728 expression that has a classwide type, potentially after an implicit
35729 dereference. In particular, the prefix can be a view conversion for
35730 a classwide type (for which Is_Object_Reference holds), but it can
35731 also be a value conversion for an access-to-classwide type. In the
35732 latter case, there is an implicit dereference, and the original node
35733 for the prefix does not verify Is_Object_Reference.
35734
35735 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
35736 conversion of a discriminant-dependent component of a mutable object
35737 is one itself.
35738
357392004-03-25 Ed Schonberg <schonberg@gnat.com>
35740
35741 * freeze.adb (Freeze_Entity): When an inherited subprogram is
35742 inherited, has convention C, and has unconstrained array parameters,
35743 place the corresponding warning on the derived type declaration rather
35744 than the original subprogram.
35745
35746 * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
35747 indication on renaming declaration, if formal has a box and actual
35748 is absent.
35749
35750 * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
35751 determine whether to generate an implicit or explicit reference to
35752 the renamed entity.
35753
35754 * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
35755 subprogram renaming comes from a defaulted formal subprogram in an
35756 instance.
35757
357582004-03-25 Gary Dismukes <dismukes@gnat.com>
35759
35760 * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
35761 value expressions to ensure that calls within a component definition
35762 will be checked (since those are evaluated during the record type's
35763 elaboration).
35764
357652004-03-25 Arnaud Charlet <charlet@act-europe.fr>
35766
35767 * s-tpobop.adb: Code clean up:
35768 (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
35769 code.
35770 (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
35771
357722004-03-25 Jose Ruiz <ruiz@act-europe.fr>
35773
35774 * Makefile.in: Clean up in the ravenscar run time.
35775
22421b79
RK
357762004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35777
35778 * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
35779 of No_Strict_Aliasing to build_pointer_type_for_mode.
35780 * utils.c (update_pointer_to): Walk pointer and ref chains.
35781
24105bab
AC
357822004-03-22 Cyrille Comar <comar@act-europe.fr>
35783
35784 * ali.ads: Fix Comment about Dynamic_Elab.
35785
35786 * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
35787 Has_RACW, Is_Generic, etc.)
35788 (Output_Object, Gnatls): Take into account ALI files not attached to
35789 an object.
35790
357912004-03-22 Vincent Celier <celier@gnat.com>
35792
35793 * gprep.adb: Change all String_Access to Name_Id
35794 (Is_ASCII_Letter): new function
35795 (Double_File_Name_Buffer): New procedure
35796 (Preprocess_Infile_Name): New procedure
35797 (Process_Files): New procedure
35798 (Gnatprep): Check if output and input are existing directories.
35799 Call Process_Files to do the real job.
35800
358012004-03-22 Robert Dewar <dewar@gnat.com>
35802
35803 * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
35804 s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
35805
358062004-03-22 Sergey Rybin <rybin@act-europe.fr>
35807
35808 * scn.adb (Contains): Add check for EOF, is needed for a degenerated
35809 case when the source contains only comments.
35810
358112004-03-22 Ed Schonberg <schonberg@gnat.com>
35812
35813 * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
35814 declaration for a child subprogram body that acts as a spec, indicate
35815 that the entity in the declaration needs debugging information.
35816
35817 * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
35818 full view if the subtype is created for a constrained record component;
35819 gigi has enough information to construct the record, and there is no
35820 place in the tree for the declaration.
35821
35822 * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
35823 serial number for the dummy body that is built for analysis, to avoid
35824 inconsistencies in the generation of internal names when compiling
35825 with -gnatN.
35826
358272004-03-22 Thomas Quinot <quinot@act-europe.fr>
35828
35829 * sem_util.adb (Is_Object_Reference): A view conversion denotes an
35830 object.
35831
358322004-03-22 GNAT Script <nobody@gnat.com>
35833
35834 * Make-lang.in: Makefile automatically updated
35835
6fce44af
RK
358362004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35837
35838 * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
35839 * trans.c (tree_transform, emit_index_check): Likewise.
35840 * utils.c (build_template): Likewise.
35841 (max_size, convert): Remove handling of WITH_RECORD_EXPR.
35842 (maybe_unconstrained_array, unchecked_convert): Likewise.
35843 * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
35844 (build_unary_op): Likewise.
35845 (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
35846 (fill_vms_descriptor): Likewise.
35847 (build_call_alloc_dealloc): Likewise.
35848 ALIGN is unsigned.
35849 * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
35850
802f6d4b
JM
358512004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
35852
35853 PR other/14630
35854 * gnat_ug.texi: Add info directory category and entry.
35855 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35856 gnat_ug_wnt.texi: Regenerate.
35857
30f3b32b
AC
358582004-03-19 Arnaud Charlet <charlet@act-europe.fr>
35859
35860 * ada-tree.h: Update copyright notice.
35861 Minor reformatting.
35862
358632004-03-19 Olivier Hainque <hainque@act-europe.fr>
35864
35865 * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
35866 as regular exception objects and not as mere integers representing the
35867 condition code. The latter approach required some dynamics to mask off
35868 severity bits, which did not fit well into the GCC table based model.
35869 (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
35870 exception data objects. We don't it and it would conflict with the other
35871 external symbol we have to generate for such exceptions.
35872
35873 * trans.c (tree_transform, case N_Exception_Handler): Remove part of
35874 the special code for VMS exceptions, since these are now represented
35875 as regular exceptions objects.
35876
7548281d
RK
358772004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35878
35879 * decl.c (debug_no_type_hash): Remove.
35880 (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
35881 * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
35882
9e94c78f 358832004-03-19 Laurent Guerby <laurent@guerby.net>
dbee7ab9 35884
90afe2c9 35885 * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
dbee7ab9 35886 aggregate, allows bootstrap from 3.3 on powerpc-darwin.
90afe2c9 35887
eb34af89
RK
358882004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35889
35890 * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
35891 (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
35892 (TYPE_RM_SIZE_INT): Directly use type.values.
35893 (TREE_LOOP_ID): Clean up check.
35894 * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
35895 TYPE_VALUES, not TYPE_FIELDS.
35896 * trans.c (convert_with_check): Delay access of bounds of basetype
35897 until sure is numeric.
35898
a336eaca
AC
358992004-03-18 Arnaud Charlet <charlet@act-europe.fr>
35900
35901 * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
35902
35903 Code clean up:
35904 * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
35905 5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
35906 Specific.Set instead of direct call to e.g pthread_setspecific.
35907
359082004-03-18 Thomas Quinot <quinot@act-europe.fr>
35909
35910 * adaint.c: Update comments.
35911
35912 * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
35913 GNATLIB_SHARED for FreeBSD.
35914
359152004-03-18 Jose Ruiz <ruiz@act-europe.fr>
35916
35917 * init.c [VxWorks]: Do not fix the stack size for the environment task.
35918 When needed (stack checking) the stack size is retrieved
35919 from the VxWorks kernel.
35920
35921 * Makefile.in: Flag -nostdinc is required when building the run time
35922 for avoiding looking for files in the base compiler.
35923 Add the VxWorks specific version of the package body for
35924 System.Stack_checking.Operations (5zstchop.adb).
35925
35926 * Make-lang.in: Add the object file for
35927 System.Stack_Checking.Operations.
35928
35929 * Makefile.rtl: Add object file for the package
35930 System.Stack_Checking.Operations.
35931
35932 * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
35933
35934 * s-stache.ads, s-stache.adb: Move the operations related to stack
35935 checking from this package to package System.Stack_Checking.Operations.
35936 This way, stack checking operations are only linked in the final
35937 executable when using the -fstack-check flag.
35938
359392004-03-18 Doug Rupp <rupp@gnat.com>
35940
35941 * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
35942 Reorganize ifeq's.
35943
35944 * 5qsystem.ads, 5xcrtl.ads: New files.
35945
359462004-03-18 Vincent Celier <celier@gnat.com>
35947
35948 * prj.adb (Reset): Reset hash table Files_Htable
35949
35950 * prj-env.adb (Source_Paths, Object_Paths): New tables.
35951 (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
35952 the procedures Add_To_Path_File.
35953 (Set_Ada_Paths): Accumulate source and object dirs in the tables,
35954 making sure that each directory is present only once and, for object
35955 dirs, when a directory already present is added, the duplicate is
35956 removed and the directory is always put as the last in the table.
35957 Write the path files at the end of these accumulations.
35958
35959 * prj-nmsc.adb (Record_Source): Add source file name in hash table
35960 Files_Htable for all sources.
35961
35962 * prj-proc.adb (Process): Remove restrictions between not directly
35963 related extending projects.
35964
359652004-03-18 Emmanuel Briot <briot@act-europe.fr>
35966
35967 * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
35968 (Find_Sources): Minor speed optimization.
35969
35970 * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
35971 parameter Trusted_Mode.
35972
359732004-03-18 Sergey Rybin <rybin@act-europe.fr>
35974
35975 * scn.adb (Determine_License): Take into account a degenerated case
35976 when the source contains only comments.
35977
359782004-03-18 Ed Schonberg <schonberg@gnat.com>
35979
35980 * sem_warn.adb (Check_References): For a warning on a selected
35981 component that does not come from source, locate an uninitialized
35982 component of the record type to produce a more precise error message.
35983
e6f69614
AC
359842004-03-15 Jerome Guitton <guitton@act-europe.fr>
35985
35986 * 3zsoccon.ads: Fix multicast options.
35987
35988 * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
35989 in the spec.
35990
359912004-03-15 Robert Dewar <dewar@gnat.com>
35992
35993 * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
35994 pragma used for a private type.
35995
35996 * lib-xref.adb (Generate_Reference): Do not generate warning if
35997 reference is in a different unit from the pragma Unreferenced.
35998
35999 * 5vtpopde.adb: Minor reformatting
36000 Fix casing of To_Task_ID
36001
36002 * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
36003 flag if we have an unchecked conversion to an access type in the same
36004 unit.
36005
360062004-03-15 Geert Bosch <bosch@gnat.com>
36007
36008 * a-ngcoty.adb (Modulus): In alternate formula for large real or
36009 imaginary parts, use Double precision throughout.
36010
36011 * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
36012 we want to be able to compile run-time with -gnata for testing, but
36013 this may also be instantiated in user code that is compiled with -gnata.
36014
360152004-03-15 Olivier Hainque <hainque@act-europe.fr>
36016
36017 * s-stalib.ads (Exception_Code): New type, to represent Import/Export
36018 codes. Having a separate type for this is useful to enforce consistency
36019 throughout the various run-time units.
36020 (Exception_Data): Use Exception_Code for Import_Code.
36021
36022 * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
36023 Natural and Integer in various places.
36024 (Register_VMS_Exception): Use Base_Code_In to compute the exception code
36025 with the severity bits masked off.
36026 (Register_VMS_Exception): Handle the additional exception data pointer
36027 argument.
36028
36029 * raise.c (_GNAT_Exception structure): Remove the handled_by_others
36030 component, now reflected by an exported accessor.
36031 (is_handled_by): New routine to compute whether the propagated
36032 occurrence matches some handler choice specification. Extracted out of
36033 get_action_description_for, and expanded to take care of the VMS
36034 specifities.
36035 (get_action_description_for): Use is_handled_by instead of an explicit
36036 complex condition to decide if the current choice at hand catches the
36037 propagated occurrence.
36038
36039 * raise.h (Exception_Code): New type for C.
36040
36041 * rtsfind.ads (RE_Id, RE_Unit_Table): Add
36042 System.Standard_Library.Exception_Code, to allow references from the
36043 pragma import/export expander.
36044
36045 * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
36046 New accessors to allow easy access to GNAT exception data
36047 characteristics.
36048 (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
36049 redundant Handled_By_Others component, helper for the personality
36050 routine which will now be able to call the appropriate exception data
36051 accessor instead.
36052
36053 * cstand.adb (Create_Standard): Adjust the type of the Import_Code
36054 component of Standard_Exception_Type to be the closest possible to
36055 Exception_Code in System.Standard_Library, that we cannot get at this
36056 point. Expand a ??? comment to notify that this type node should
36057 probably be rewritten later on.
36058
36059 * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
36060 registration call to include a pointer to the exception object in the
36061 arguments.
36062
36063 * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
36064 instead of int and explicit bitmasks.
36065
360662004-03-15 Vincent Celier <celier@gnat.com>
36067
36068 * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
36069 equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
36070
36071 * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
36072 longer needed now that it is in the spec of
36073 System.Tasking.Task_Attributes.
36074
36075 * adaint.h, adaint.c: (__gnat_create_output_file): New function
36076
36077 * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
36078
36079 * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
36080
36081 * make.adb (Gnatmake): Do not check the executable suffix; it is being
36082 taken care of in Scan_Make_Arg.
36083 (Scan_Make_Arg): Add the executable suffix only if the argument
36084 following -o, in canonical case, does not end with the executable
36085 suffix. When in verbose mode and executable file name does not end
36086 with executable suffix, output the executable name, in canonical case.
36087
36088 * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
36089 to avoid warnings when instantiating Ada.Task_Attributes.
36090 Minor reformating.
36091
36092 * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
36093 in the correct order.
36094
36095 * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
36096 redirect standard output and error to a file for the invocation of the
36097 compiler, then read the file.
36098
36099 * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
36100 directory, instead of the Value.
36101 (Find_Source_Dirs): Remove useless code & comments.
36102
361032004-03-15 Ed Schonberg <schonberg@gnat.com>
36104
36105 * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
36106 tagged type is inherited, and the parent operation is not frozen yet,
36107 force generation of a freeze node for the inherited operation, so the
36108 corresponding dispatch entry is properly initialized.
36109 (Make_Predefined_Primitive_Specs): Check that return type is Boolean
36110 when looking for user-defined equality operation.
36111
36112 * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
36113 boolean when locating primitive equality of tagged component.
36114
36115 * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
36116 bit-aligned field and the right-hand side a string literal, introduce
36117 a temporary before expanding assignment into a loop.
36118
36119 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
36120 priority in full, to ensure that any expanded subepxressions of it are
36121 elaborated in the scope of the init_proc.
36122
36123 * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
36124 after object declaration, skipping over code that may have been
36125 generated for validity checks.
36126
36127 * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
36128 discriminants, ignore the known discriminants of its full view, if
36129 any, to check legality.
36130
36131 * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
36132 component if type has unknown discriminants.
36133 (Analyze_Private_Extension_Declaration): Discriminant constraint is
36134 null if type has unknown discriminants.
36135
36136 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
36137 for end label when present.
36138
36139 * s-fileio.adb (Open): When called with a C_Stream, use given name for
36140 temporary file, rather than an empty string.
36141
361422004-03-15 Ed Falis <falis@gnat.com>
36143
36144 * s-thread.adb: Removed, no longer used.
36145
361462004-03-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36147
36148 * decl.c (target.h): Now include.
36149 (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
36150 in new build_pointer_from_mode calls for non-fat/non-thin pointer.
36151 (validate_size): For POINTER_TYPE, get smallest size permitted on
36152 machine.
36153
36154 * fe.h: Sort Einfo decls and add Set_Mechanism.
36155
36156 * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
36157 (ada/decl.o): Depends on target.h.
36158
36159 * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
36160 FUNCTION_BOUNDARY; always use TYPE_ALIGN.
36161
361622004-03-15 Thomas Quinot <quinot@act-europe.fr>
36163
36164 * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
36165
36166 * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
36167 Insert_Dereference_Action when rewriting an implicit dereference into
36168 an explicit one, this will be taken care of during expansion of the
36169 explicit dereference.
36170 (Expand_N_Slice): Same. Always do the rewriting, even for the case
36171 of non-packed slices, since the dereference action generated by
36172 expansion of the explicit dereference is needed in any case.
36173 (Expand_N_Selected_Component): When rewriting an implicit dereference,
36174 analyze and resolve the rewritten explicit dereference so it is seen
36175 by the expander.
36176 (Insert_Dereference_Action): This procedure is now called only for the
36177 expansion of an N_Explcit_Dereference_Node. Do insert a check even for
36178 dereferences that do not come from source (including explicit
36179 dereferences resulting from rewriting implicit ones), but do not
36180 recursively insert a check for the dereference nodes contained within
36181 the check.
36182 (Insert_Dereference_Action): Clarify and correct comment.
36183
e4c9c075
PB
361842004-03-08 Paolo Bonzini <bonzini@gnu.org>
36185
36186 PR ada/14131
36187 Move language detection to the top level.
36188 * config-lang.in: Build by default.
36189
8a6a52dc
AC
361902004-03-05 Robert Dewar <dewar@gnat.com>
36191
36192 * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
36193
36194 * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
36195 i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
90afe2c9 36196 5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
8a6a52dc
AC
36197 5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
36198 unchecked conversion to spec to avoid warnings.
36199
36200 * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
36201 to Task_ID
36202
36203 * 7stpopsp.adb: Correct casing in To_Task_ID call
36204
36205 * a-strsea.ads, a-strsea.adb: Minor reformatting
36206
36207 * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
36208
36209 * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
36210 Adjust Max_Msg_Length to be clearly large enough.
36211
36212 * fe.h: Define In_Same_Source_Unit
36213
36214 * osint.adb: Add pragma Warnings Off to suppress warnings
36215 * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
36216 aliasing warnings.
36217
36218 * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
36219
36220 * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
36221
36222 * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
36223
36224 * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
36225
36226 * sem_prag.adb: Implement pragma No_Strict_Aliasing.
36227
36228 * sinfo.ads: Remove obsolete comment on validate unchecked conversion
36229 node. We now do generate them for gcc back end.
36230
36231 * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
36232 warning.
36233
36234 * sinput-c.adb: Fix bad name in header.
36235 Add pragma Warnings Off to suppress aliasing warning.
36236
36237 * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
36238
36239 * snames.h, snames.ads, snames.adb: Add entry for pragma
36240 No_Strict_Aliasing.
36241
362422004-03-05 Vincent Celier <celier@gnat.com>
36243
36244 * prj-com.ads: Add hash table Files_Htable to check when a file name
36245 is already a source of another project.
36246
36247 * prj-nmsc.adb (Record_Source): Before recording a new source, check
36248 if its file name is not already a source of another project. Report an
36249 error if it is.
36250
36251 * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
36252 source file name, call gnatpp with all the sources of the main project.
36253
36254 * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
36255 of file names.
36256
36257 * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
36258 NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
36259 /RUNTIME_SYSTEM=, converted to --RTS=
36260 /NOTABS, converted to -notabs
36261
362622004-03-05 Pascal Obry <obry@gnat.com>
36263
36264 * make.adb: Minor reformatting.
36265
362662004-03-05 Ed Schonberg <schonberg@gnat.com>
36267
36268 Part of implemention of AI-262.
36269 * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
36270
36271 * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
36272 procedure.
36273
36274 * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
36275 when component type is a partially constrained class-wide subtype.
36276 (Constrain_Discriminated_Type): If parent type has unknown
36277 discriminants, a constraint is illegal, even if full view has
36278 discriminants.
36279 (Build_Derived_Record_Type): Inherit discriminants when deriving a type
36280 with unknown discriminants whose full view is a discriminated record.
36281
36282 * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
36283 flag, to handle properly derivations of tagged types with unknown
36284 discriminants.
36285 (Analyze_Package_Spec, Analyze_Package_Body): Install
36286 Private_With_Clauses before analyzing private part or body.
36287
36288 * einfo.ads: Indicate that both Has_Unknown_Discriminants and
36289 Has_Discriminants can be true for a given type (documentation).
36290
362912004-03-05 Arnaud Charlet <charlet@act-europe.fr>
36292
36293 * s-restri.ads: Fix license (GPL->GMGPL).
36294
36295 * s-tassta.adb: Minor reformatting.
36296
36297 * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
36298 by calls to Exit_One_ATC_Level, since additional clean up is performed
36299 by this function.
36300
36301 * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
36302 by calls to Exit_One_ATC_Level, since additional clean up is performed
36303 by this function.
36304
363052004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36306
36307 * trans.c: Reflect GCC changes to fix bootstrap problem.
36308 Add warning for suspicious aliasing unchecked conversion.
36309
363102004-03-05 GNAT Script <nobody@gnat.com>
36311
36312 * Make-lang.in: Makefile automatically updated
36313
555360a5
AC
363142004-03-02 Emmanuel Briot <briot@act-europe.fr>
36315
36316 * ali.adb (Read_Instantiation_Instance): Do not modify the
36317 current_file_num when reading information about instantiations, since
36318 this corrupts files in later references.
36319
363202004-03-02 Vincent Celier <celier@gnat.com>
36321
36322 * bcheck.adb (Check_Consistency): Get the full path of an ALI file
36323 before checking if it is read-only.
36324
36325 * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
36326 of SRC_DIRS and eliminate duplicates.
36327
36328 * gprcmd.adb: Replace command "path" with command "path_sep" to return
36329 the path separator.
36330 (Usage): Document path_sep
36331
36332 * Makefile.generic: For Ada and GNU C++ cases, link directly with the
36333 C++ compiler. No need for a script.
36334 Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
36335 Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
36336 subst.
36337
36338 * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
36339 where there are Ada sources.
36340 (Set_Ada_Paths): Only add to the include path the source dirs of project
36341 with Ada sources.
36342 (Add_To_Path): Add the Display_Values of the directories, not their
36343 Values.
36344
36345 * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
36346 data.
36347
36348 * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
36349 is not No_Name.
36350 (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
36351 Value is canonicalized.
36352 (Language_Independent_Check): Do not copy Value to Display_Value when
36353 canonicalizing Value.
36354
36355 * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
36356 path to find limited with cycles.
36357 (Parse_Single_Project): Use canonical cased path to find the end of a
36358 with cycle.
36359
363602004-03-02 Ed Schonberg <schonberg@gnat.com>
36361
36362 * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
36363 and not a child unit.
36364
36365 * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
36366 appear in a with_clause.
36367
36368 * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
36369 only happen in type_annotate mode, do not try to elaborate it.
36370
36371 * exp_util.adb (Force_Evaluation): If expression is a selected
36372 component on the left of an assignment, use a renaming rather than a
36373 temporary to remove side effects.
36374
36375 * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
36376 inlined instance body, which is analyzed before the end of the
36377 enclosing scope.
36378
363792004-03-02 Robert Dewar <dewar@gnat.com>
36380
36381 * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
36382 sem_ch4.adb: Use new feature for substitution of keywords in VMS
36383
36384 * errout.ads, errout.adb: Implement new circuit for substitution of
36385 keywords in VMS.
36386
36387 * sem_case.adb (Analyze_Choices): Place message properly when case is
36388 a subtype reference rather than an explicit range.
36389
36390 * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
36391
363922004-03-02 Doug Rupp <rupp@gnat.com>
36393
36394 * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
36395
363962004-03-02 Thomas Quinot <quinot@act-europe.fr>
36397
36398 * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
36399
364002004-03-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36401
36402 * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
36403 BLKmode bitfield.
36404
8a7988f5
AC
364052004-02-25 Robert Dewar <dewar@gnat.com>
36406
36407 * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
36408 55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
36409 5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
36410 5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
36411 5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
36412 5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
36413 the defining instance of the type to avoid aliasing problems.
36414 Fix copyright header. Fix bad comments in package header.
36415
36416 * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
36417
364182004-02-25 Ed Schonberg <schonberg@gnat.com>
36419
36420 * exp_ch2.adb (Param_Entity): Handle properly formals that have been
36421 rewritten as references when aliased through an address clause.
36422
36423 * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
36424 whether call can be interpreted as an indirect call to the result of a
36425 parameterless function call returning an access subprogram.
36426
364272004-02-25 Arnaud Charlet <charlet@act-europe.fr>
36428
36429 Code clean up:
36430 * exp_ch7.adb (Make_Clean): Remove generation of calls to
36431 Unlock[_Entries], since this is now done by Service_Entries directly.
36432
36433 * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
36434
36435 * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
36436 Requeue_Call for better code readability. Change spec and update calls:
36437 PO_Service_Entries now unlock the PO on exit.
36438 (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
36439 PO_Service_Entries.
36440
36441 * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
36442
36443 * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
36444
364452004-02-25 Sergey Rybin <rybin@act-europe.fr>
36446
36447 * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
36448 protected subprogram call and analyzing the result of such expanding
36449 in case when the called protected subprogram is eliminated.
36450
36451 * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
36452 names.
36453
364542004-02-25 Jerome Guitton <guitton@act-europe.fr>
36455
36456 * Makefile.in: Clean ups.
36457
6871ba5f
AC
364582004-02-23 Ed Schonberg <schonberg@gnat.com>
36459
36460 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
36461 protected operations if original subprogram is flagged as eliminated.
36462 (Expand_N_Subprogram_Body): For a protected operation, create
36463 discriminals for next operation before checking whether the operation
36464 is eliminated.
36465
36466 * exp_ch9.adb (Expand_N_Protected_Body,
36467 Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
36468 for internal protected operations if the original subprogram is
36469 eliminated.
36470
36471 * sem_elim.adb (Check_Eliminated): Handle properly protected operations
36472 declared in a single protected object.
36473
364742004-02-23 Vincent Celier <celier@gnat.com>
36475
36476 * prj-attr.adb: Make attribute Builder'Executable an associative array,
36477 case insensitive if file names are case insensitive, instead of a
36478 standard associative array.
36479
36480 * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
36481 them as case insensitive on platforms where the file names are case
36482 sensitive.
36483
36484 * prj-part.adb (Parse_Single_Project): Make sure, when checking if
36485 project file has already been parsed that canonical path are compared.
36486
364872004-02-23 Robert Dewar <dewar@gnat.com>
36488
36489 * sinput-c.ads: Correct bad unit title in header
36490
36491 * freeze.adb: Minor reformatting
36492
364932004-02-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36494
36495 * trans.c (tree_transform, case N_Procedure_Call_Statement): For
36496 nonaddressable COMPONENT_REF that is removing padding that we are
36497 taking the address of, take the address of the padded record instead
36498 if item is variable size.
36499
6e059adb
AC
365002004-02-20 Robert Dewar <dewar@gnat.com>
36501
36502 * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
36503
365042004-02-20 Ed Schonberg <schonberg@gnat.com>
36505
36506 * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
36507 itype references for the constrained designated type of a component
36508 whose base type is already frozen.
36509
365102004-02-20 Arnaud Charlet <charlet@act-europe.fr>
36511
36512 * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
36513 avoid GCC warnings.
36514
365152004-02-20 Sergey Rybin <rybin@act-europe.fr>
36516
36517 * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
36518 identifier for a phantom package that rewrites the formal package
36519 declaration with a box. The Add semantic decorations for the defining
36520 identifier from the original node (that represents the formal package).
36521
88e3a2a3
MK
365222004-02-19 Matt Kraai <kraai@alumni.cmu.edu>
36523
36524 * Make-lang.in (ada/stamp-sdefault): Use the top level
36525 move-if-change.
36526
4221057e
RH
365272004-02-19 Richard Henderson <rth@redhat.com>
36528
36529 * misc.c (record_code_position): Add third build arg for RTL_EXPR.
36530
5c1c8a03
AC
365312004-02-18 Emmanuel Briot <briot@act-europe.fr>
36532
36533 * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
36534 Scan_ALI can be used for multiple ALI files without reinitializing
36535 between calls.
36536
365372004-02-18 Robert Dewar <dewar@gnat.com>
36538
36539 * debug.adb: Minor reformatting.
36540
365412004-02-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36542
36543 * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
36544 to zero if there is an address clause.
36545
365462004-02-18 Thomas Quinot <quinot@act-europe.fr>
36547
36548 * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
36549
365502004-02-18 Gary Dismukes <dismukes@gnat.com>
36551
36552 * layout.adb (Layout_Component_List): Revise generation of call to
36553 discriminant-checking function to pass selections of all of the type's
36554 discriminants rather than just the variant-controlling discriminant.
36555
365562004-02-18 Olivier Hainque <hainque@act-europe.fr>
36557
36558 * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
36559 fail in the current setup and triggers spurious system error messages.
36560 Pretend it occurred and failed instead.
36561
365622004-02-18 Vincent Celier <celier@gnat.com>
36563
36564 * bld.adb: Mark FLDFLAGS as saved
36565 (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
36566 it is not the root project. Put each directory to be
36567 extended between double quotes to prevent it to be expanded on Windows.
36568 (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
36569 the project file. Set them back to their initial values if they have not
36570 been set in the project file.
36571
36572 * gprcmd.adb: (Gprdebug, Debug): New global variables
36573 (Display_Command): New procedure
36574 (Usage): Document new command "linkopts"
36575 Call Display_Command when env var GPRDEBUG has the value "TRUE"
36576 Implement new command "linkopts"
36577 Remove quotes that may be around arguments for "extend"
36578 Always call Normalize_Pathname with arguments formatted for the platform
36579
36580 * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
36581 Change @echo to @$(display) in target clean to be able to clean silently
36582
36583 * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
36584
36585 * prj-part.adb (Project_Path_Name_Of): Do not put final result in
36586 canonical case.
36587
36588 * prj-part.adb (Parse_Single_Project): Always call with From_Extended
36589 = Extending_All when current project is an extending all project.
36590
36591 * vms_conv.adb (Output_File_Expected): New Boolean global variable,
36592 set to True only for LINK command, after Unix switch -o.
36593 (Process_Arguments): Set Output_File_Expected to True for LINK command
36594 after Unix switch -o. When Output_File_Expected is True, never add an
36595 extension to a file name.
36596
36597 * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
36598 option file name, only to the --for-linker= switch.
36599 (Option_File_Name): If option file name do not end with ".opt", append
36600 "/OPTIONS".
36601
366022004-02-18 GNAT Script <nobody@gnat.com>
36603
36604 * Make-lang.in: Makefile automatically updated
36605
80bcb4d2
MK
366062004-02-17 Matt Kraai <kraai@alumni.cmu.edu>
36607
36608 * Make-lang.in (stamp-sdefault): Do not depend on
36609 move-if-change.
36610
1daa84b6
ZW
366112004-02-12 Zack Weinberg <zack@codesourcery.com>
36612
36613 * config-lang.in: Disable Ada by default until probe logic for
36614 a bootstrap Ada compiler can be moved to the top level configure
36615 script.
36616
18c0ecbe
AC
366172004-02-12 Olivier Hainque <hainque@act-europe.fr>
36618
36619 * decl.c (components_to_record): Don't claim that the internal fields
36620 we make to hold the variant parts are semantically addressable, because
36621 they are not.
36622
36623 * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
36624 adjust the comment describing the modular type form when we can use it.
36625 (Install_PAT): Account for the Esiz renaming.
36626
36627 * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
36628 sc_onstack context indication before raising the exception to which
36629 the signal is mapped. Allows better handling of later signals possibly
36630 triggered by the resumed user code if the exception is handled.
36631
366322004-02-12 Arnaud Charlet <charlet@act-europe.fr>
36633
36634 * 5zinit.adb: Removed, no longer used.
36635
366362004-02-12 Robert Dewar <dewar@gnat.com>
36637
36638 * ali.adb: Remove separating space between parameters on R line. Makes
36639 format consistent with format used by the binder for Set_Globals call.
36640
36641 * atree.ads, atree.adb: Minor reformatting (new function header format)
36642
36643 * bindgen.adb: Add Run-Time Globals documentation section containing
36644 detailed documentation of the globals passed from the binder file to
36645 the run time.
36646
36647 * gnatls.adb: Minor reformatting
36648
36649 * init.c (__gnat_set_globals): Add note pointing to documentation in
36650 bindgen.
36651
36652 * lib-writ.ads, lib-writ.adb: Remove separating space between
36653 parameters on R line.
36654 Makes format consistent with format used by the binder for Set_Globals
36655 call.
36656
36657 * osint.ads: Add 2004 to copyright notice
36658 Minor reformatting
36659
36660 * snames.ads: Correct capitalization of FIFO_Within_Priorities
36661 Noticed during code reading, documentation issue only
36662
36663 * usage.adb: Remove junk line for obsolete C switch
36664 Noticed during code reading
36665
366662004-02-12 Vincent Celier <celier@gnat.com>
36667
36668 * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
36669 extend for each directory, so that multiple /** directories are
36670 extended individually.
36671 (Recursive_Process): Set the default for LANGUAGES to ada
36672
36673 * gprcmd.adb: Define new command "ignore", to do nothing.
36674 Implement new comment "path".
36675
36676 * Makefile.generic: Suppress output when SILENT is set
36677 Make sure that when compiler for C/C++ is gcc, the correct -x switch is
36678 used, so that the correct compiler is invoked.
36679 When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
36680 CXX_INCLUDE_PATH, to avoid failure with too long command lines.
36681
366822004-02-12 Jerome Guitton <guitton@act-europe.fr>
36683
36684 * Makefile.in: Clean ups and remove obsolete targets.
36685
366862004-02-12 Ed Schonberg <schonberg@gnat.com>
36687
36688 * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
36689 predicate declared in exp_util.
36690
36691 * exp_util.adb: Add comments.
36692
36693 * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
36694 visibility before compiling context of the subunit.
36695
36696 * sem_res.adb (Check_Parameterless_Call): If the context expects a
36697 value but the name is a procedure, do not attempt to analyze as a call,
36698 in order to obtain more telling diagnostics.
36699
36700 * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
36701 'Access on parameterless function calls.
36702 (Normalize_Actuals): For a parameterless function call with missing
36703 actuals, defer diagnostic until resolution of enclosing call.
36704
36705 * sem_util.adb (Wrong_Type): If the context type is an access to
36706 subprogram and the expression is a procedure name, suggest a missing
36707 'attribute.
36708
c1dcfa14
AC
367092004-02-10 Arnaud Charlet <charlet@act-europe.fr>,
36710 Nathanael Nerode <neroden@gcc.gnu.org>
36711
6f7f72f9
EB
36712 PR ada/6637
36713 PR ada/5911
c1dcfa14 36714 Merge with libada-branch:
90afe2c9 36715 * config-lang.in: Build libada only when ada is built.
c1dcfa14 36716
2e071734
AC
367172004-02-09 Ed Schonberg <schonberg@gnat.com>
36718
36719 * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
36720 for a tagged type, verify that both formals have the same type.
36721
36722 * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
36723 temporary when the formal is an in-parameter and the actual a possibly
36724 unaligned slice.
36725
36726 * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
36727 when expansion is disabled, to ensure proper name capture with
36728 overloaded literals. Condition can be of any boolean type, resolve
36729 accordingly.
36730
36731 * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
36732 renaming is for a formal subprogram with a default operator name, and
36733 there is a usable operator that is visible at the point of
36734 instantiation.
36735
367362004-02-09 Robert Dewar <dewar@gnat.com>
36737
36738 * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
36739 rewrite to ignore errors in ali files, intended to allow tools downward
36740 compatibility with new versions of ali files.
36741
36742 * ali.ads: Add new parameter Ignore_Errors
36743
36744 * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
36745 duplicating the error message giving the file with restrictions.
36746
36747 * debug.adb: Add debug flag I for gnatbind
36748
36749 * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
36750 operators for the case where the operator is a defining operator.
36751
36752 * exp_ch3.adb: Minor reformatting (new function spec format).
36753
36754 * exp_ch4.adb: Add comment for previous change, and make minor
36755 adjustment to loop to always check for improper loop termination.
36756 Minor reformatting throughout (new function spec format).
36757
36758 * gnatbind.adb: Implement -di debug flag for gnatbind
36759
36760 * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
36761
36762 * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
36763
36764 * lib-load.adb: Fix bad assertion.
36765 Found by testing and code reading.
36766 Minor reformatting.
36767
36768 * lib-load.ads: Minor reformatting.
36769
36770 * lib-writ.adb: There is only one R line now.
36771
36772 * lib-writ.ads: Add documentation on making downward compatible changes
36773 to ali files so old tools work with new ali files.
36774 There is only one R line now.
36775 Add documentation on format incompatibilities (with special GPS note)
36776
36777 * namet.ads, namet.adb: (Is_Operator_Name): New procedure
36778
36779 * par-load.adb: Minor reformatting
36780
36781 * sem_ch8.adb: Fix to error message from last update
36782 Minor reformatting and restructuring of code from last update
36783
36784 * par-prag.adb, snames.adb, snames.ads, snames.h,
36785 sem_prag.adb: Implement pragma Profile.
36786
36787 * stylesw.adb: Implement -gnatyN switch to turn off all style check
36788 options.
36789
36790 * usage.adb: Add line for -gnatyN switch
36791
36792 * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
36793
a41ea816
AC
367942004-02-09 Albert Lee <lee@gnat.com>
36795
36796 * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
36797
367982004-02-09 Ed Schonberg <schonberg@gnat.com>
36799
36800 * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
36801 slices.
36802
36803 * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
36804 is nested in an instance that is not frozen yet, to avoid
36805 order-of-elaboration problems in gigi.
36806
36807 * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
36808 body the attribute is legal.
36809
368102004-02-09 Robert Dewar <dewar@gnat.com>
36811
36812 * s-rident.ads: Minor comment correction
36813
36814 * targparm.adb: Remove dependence on uintp completely. There was
36815 always a bug in Make in that it called Targparm before initializing
36816 the Uint package. The old code appeared to get away with this, but
36817 the new code did not! This caused an assertion error in gnatmake.
36818
36819 * targparm.ads: Fix bad comment, restriction pragmas with parameters
36820 are indeed fully supported.
36821
725c60f8
AM
368222004-02-06 Alan Modra <amodra@bigpond.net.au>
36823
36824 * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
36825
136e64db
KH
368262004-02-05 Kazu Hirata <kazu@cs.umass.edu>
36827
36828 * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
36829 with targetm.calls.promote_prototypes.
36830
06effe87
AC
368312004-02-04 Robert Dewar <dewar@gnat.com>
36832
36833 * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
36834 ali.ads, gprcmd.adb: Minor reformatting
36835
36836 * bindgen.adb: Output restrictions string for new style restrictions
36837 handling
36838
36839 * impunit.adb: Add s-rident.ads (System.Rident) and
36840 s-restri (System.Restrictions)
36841
36842 * lib-writ.adb: Fix bug in writing restrictions string (last few
36843 entries wrong)
36844
36845 * s-restri.ads, s-restri.adb: Change name Restrictions to
36846 Run_Time_Restrictions to avoid conflict with package name.
36847 Add circuit to read and acquire run time restrictions.
36848
368492004-02-04 Jose Ruiz <ruiz@act-europe.fr>
36850
36851 * restrict.ads, restrict.adb: Use the new restriction
36852 No_Task_Attributes_Package instead of the old No_Task_Attributes.
36853
36854 * sem_prag.adb: No_Task_Attributes is a synonym of
36855 No_Task_Attributes_Package.
36856
36857 * snames.ads, snames.adb: New entry for proper handling of
36858 No_Task_Attributes.
36859
36860 * s-rident.ads: Adding restriction No_Task_Attributes_Package
36861 (AI-00249) that supersedes the GNAT specific restriction
36862 No_Task_Attributes.
36863
368642004-02-04 Ed Schonberg <schonberg@gnat.com>
36865
90afe2c9 36866 * sem_prag.adb:
06effe87
AC
36867 (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
36868 body, an identifier may be wrapped in an unchecked conversion.
36869
368702004-02-04 Vincent Celier <celier@gnat.com>
36871
36872 * lib-writ.ads: Comment update for the W lines
36873
36874 * bld.adb: (Expression): An empty string list is static
36875
36876 * fname-uf.adb: Minor comment update
36877
36878 * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
36879
36880 * gnatbind.adb: Initialize Cumulative_Restrictions with the
36881 restrictions on the target.
36882
2fb00d7f
KH
368832004-02-03 Kazu Hirata <kazu@cs.umass.edu>
36884
36885 * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
36886 gen_rtx.
36887
5ed23e25
AC
368882004-02-02 Arnaud Charlet <charlet@gnat.com>
36889
36890 * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
36891
6e937c1c
AC
368922004-02-02 Vincent Celier <celier@gnat.com>
36893
36894 * gprcmd.adb (Check_Args): If condition is false, print the invoked
36895 comment before the usage.
36896 Gprcmd: Fail when command is not recognized.
36897 (Usage): Document command "prefix"
36898
36899 * g-md5.adb (Digest): Process last block.
36900 (Update): Do not process last block. Store remaining characters and
36901 length in Context.
36902
36903 * g-md5.ads (Update): Document that several call to update are
36904 equivalent to one call with the concatenated string.
36905 (Context): Add fields to allow new Update behaviour.
36906
36907 * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
36908 defaulted to False.
36909 When May_Fail is True and no existing file can be found, return No_File.
36910
36911 * 6vcstrea.adb: Inlined functions are now wrappers to implementation
36912 functions.
36913
36914 * lib-writ.adb (Write_With_Lines): When body file does not exist, use
36915 spec file name instead on the W line.
36916
369172004-02-02 Robert Dewar <dewar@gnat.com>
36918
36919 * ali.adb: Read and acquire info from new format restrictions lines
36920
36921 * bcheck.adb: Add circuits for checking restrictions with parameters
36922
36923 * bindgen.adb: Output dummy restrictions data
36924 To be changed later
36925
36926 * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
36927 exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
36928 freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
36929 sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
36930 sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
36931
36932 * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
36933 the warning message on access to possibly uninitialized variable S)
36934 Minor changes for new restrictions handling.
36935
36936 * gnatbind.adb: Minor reformatting
36937 Minor changes for new restrictions handling
36938 Move circuit for -r processing here from bcheck (cleaner)
36939
36940 * gnatcmd.adb, gnatlink.adb: Minor reformatting
36941
36942 * lib-writ.adb: Output new format restrictions lines
36943
36944 * lib-writ.ads: Document new R format lines for new restrictions
36945 handling.
36946
36947 * s-restri.ads/adb: New files
36948
36949 * Makefile.rtl: Add entry for s-restri.ads/adb
36950
36951 * par-ch3.adb: Fix bad error messages starting with upper case letter
36952 Minor reformatting
36953
36954 * restrict.adb: Major rewrite throughout for new restrictions handling
36955 Major point is to handle restrictions with parameters
36956
36957 * restrict.ads: Major changes in interface to handle restrictions with
36958 parameters. Also generally simplifies setting of restrictions.
36959
36960 * snames.ads/adb: New entry for proper handling of No_Requeue
36961
36962 * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
36963 restriction counting.
36964 Other minor changes for new restrictions handling
36965
36966 * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
36967 Restriction_Warnings now allows full parameter notation
36968 Major rewrite of Restrictions for new restrictions handling
36969
369702004-02-02 Javier Miranda <miranda@gnat.com>
36971
36972 * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
36973 syntax rule for object renaming declarations.
36974 (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
36975 component definitions.
36976
36977 * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
36978 components.
36979 (Array_Type_Declaration): Give support to access components. In addition
36980 it was also modified to reflect the name of the object in anonymous
36981 array types. The old code did not take into account that it is possible
36982 to have an unconstrained anonymous array with an initial value.
36983 (Check_Or_Process_Discriminants): Allow access discriminant in
36984 non-limited types.
36985 (Process_Discriminants): Allow access discriminant in non-limited types
36986 Initialize the new Access_Definition field in N_Object_Renaming_Decl
36987 node. Change Ada0Y to Ada 0Y in comments
36988
36989 * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
36990 equality operators.
36991 Change Ada0Y to Ada 0Y in comments
36992
36993 * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
36994 renamings Change Ada0Y to Ada 0Y in comments
36995
36996 * sem_type.adb (Find_Unique_Type): Give support to the equality
36997 operators for universal access types
36998 Change Ada0Y to Ada 0Y in comments
36999
37000 * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
37001
37002 * sinfo.ads (N_Component_Definition): Addition of Access_Definition
37003 field.
37004 (N_Object_Renaming_Declaration): Addition of Access_Definition field
37005 Change Ada0Y to Ada 0Y in comments
37006
37007 * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
37008 component definition and object renaming nodes
37009 Change Ada0Y to Ada 0Y in comments
37010
370112004-02-02 Jose Ruiz <ruiz@act-europe.fr>
37012
37013 * restrict.adb: Use the new restriction identifier
37014 No_Requeue_Statements instead of the old No_Requeue for defining the
37015 restricted profile.
37016
37017 * sem_ch9.adb (Analyze_Requeue): Check the new restriction
37018 No_Requeue_Statements.
37019
37020 * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
37021 that supersedes the GNAT specific restriction No_Requeue. The later is
37022 kept for backward compatibility.
37023
370242004-02-02 Ed Schonberg <schonberg@gnat.com>
37025
37026 * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
37027 5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
37028 pragma and fix incorrect ones.
37029
37030 * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
37031 warning if the pragma is redundant.
37032
370332004-02-02 Thomas Quinot <quinot@act-europe.fr>
37034
37035 * 5staprop.adb: Add missing 'constant' keywords.
37036
37037 * Makefile.in: use consistent value for SYMLIB on
37038 platforms where libaddr2line is supported.
37039
370402004-02-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37041
37042 * utils.c (end_subprog_body): Do not call rest_of_compilation if just
37043 annotating types.
37044
370452004-02-02 Olivier Hainque <hainque@act-europe.fr>
37046
37047 * init.c (__gnat_install_handler): Setup an alternate stack for signal
37048 handlers in the environment thread. This allows proper propagation of
37049 an exception on stack overflows in this thread even when the builtin
37050 ABI stack-checking scheme is used without support for a stack reserve
37051 region.
37052
37053 * utils.c (create_field_decl): Augment the head comment about bitfield
37054 creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
37055 here, because the former is not accurate enough at this point.
37056 Let finish_record_type decide instead.
37057 Don't make a bitfield if the field is to be addressable.
37058 Always set a size for the field if the record is packed, to ensure the
37059 checks for bitfield creation are triggered.
37060 (finish_record_type): During last pass over the fields, clear
37061 DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
37062 not covered by the calls to layout_decl. Adjust DECL_NONADDRESSABLE_P
37063 from DECL_BIT_FIELD.
37064
71cbe2c1
KC
370652004-01-30 Kelley Cook <kcook@gcc.gnu.org>
37066
90afe2c9 37067 * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
71cbe2c1
KC
37068 (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
37069 (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
37070
7f996f90
RO
370712004-01-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
37072
37073 * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
37074
37075 * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
37076 (ZCX_By_Default): Likewise.
37077 (Front_End_ZCX_Support): Likewise.
37078
37079 * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
37080 (Initialize_Lock): Mark Level unreferenced.
37081 (Sleep): Mark Reason unreferenced.
37082 (Timed_Sleep): Likewise.
37083 (Wakeup): Likewise.
37084 (Exit_Task): Use Result.
37085 (Check_No_Locks): Mark Self_ID unreferenced.
90afe2c9 37086
7f996f90
RO
37087 * 5gtasinf.adb (New_Sproc): Make Attr constant.
37088 (Bound_Thread_Attributes): Make Sproc constant.
37089 (New_Bound_Thread_Attributes): Likewise.
37090
26fd4eae
AC
370912004-01-26 Ed Schonberg <schonberg@gnat.com>
37092
37093 * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
37094 one-dimensional array an slice assignments, when component type is
37095 controlled.
37096
37097 * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
37098 component type is controlled, and control_actions are in effect, use
37099 TSS procedure rather than generating inline code.
37100
37101 * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
37102 arrays with controlled components.
37103
371042004-01-26 Vincent Celier <celier@gnat.com>
37105
37106 * gnatcmd.adb (GNATCmd): Add specification of argument file on the
37107 command line for the non VMS case.
37108
37109 * gnatlink.adb (Process_Binder_File): When building object file, if
37110 GNU linker is used, put all object paths between quotes, to prevent ld
37111 error when there are unusual characters (such as '!') in the paths.
37112
37113 * Makefile.generic: When there are sources in Ada and the main is in
37114 C/C++, invoke gnatmake with -B, instead of -z.
37115
37116 * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
37117 from VMS_Conversion.
37118 (Process_Argument): New procedure, extracted from VMS_Conversion. Add
37119 specification of argument file on the command line.
37120
371212004-01-26 Bernard Banner <banner@gnat.com>
37122
37123 * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
37124
371252004-01-26 Ed Schonberg <schonberg@gnat.com>
37126
37127 * snames.adb: Update copyright notice.
37128 Add info on slice assignment for controlled arrays.
37129
b7e429ab
AC
371302004-01-23 Robert Dewar <dewar@gnat.com>
37131
37132 * exp_aggr.adb: Minor reformatting
37133
37134 * exp_ch9.adb: Minor code clean up
37135 Minor reformatting
37136 Fix bad character in comment
37137
37138 PR ada/13471
37139 * targparm.adb (Get_Target_Parameters): Give clean abort error on
37140 unexpected end of file, along with more detailed message.
37141
371422004-01-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37143
37144 * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
37145 PAT.
37146
37147 * decl.c (copy_alias_set): New function.
37148 (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
37149
371502004-01-23 Doug Rupp <rupp@gnat.com>
37151
37152 * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
37153 lib$${file} in case subsequent character is not a separator.
37154
371552004-01-23 Vincent Celier <celier@gnat.com>
37156
37157 * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
37158 when the GCC version is at least 3.
37159
37160 * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
37161 Remove all "Opt.", to prepare for opt split
37162
37163 * prj-part.adb (Parse_Single_Project): New Boolean out parameter
37164 Extends_All. Set to True when the project parsed is an extending all
37165 project. Fails for importing an extending all project only when the
37166 imported project is an extending all project.
37167 (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
37168 depending on the value of Extends_All returned.
37169
37170 * prj-proc.adb (Process): Check that no project shares its object
37171 directory with a project that extends it, directly or indirectly,
37172 including a virtual project.
37173 Check that no project extended by another project shares its object
37174 directory with another also extended project.
37175
37176 * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
37177 Kind = N_With_Clause
37178
37179 * prj-tree.ads: Minor reformatting
37180 Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
37181
371822004-01-23 Ed Schonberg <schonberg@gnat.com>
37183
37184 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
37185 applies to a type with an incomplete view, use full view in Name of
37186 clause, for consistency with uses of Get_Attribute_Definition_Clause.
37187
371882004-01-23 Arnaud Charlet <charlet@act-europe.fr>
37189
37190 * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
37191 SCHED_RR, since other values are not supported by this policy.
37192 (Initialize): Move initialization of mutex attribute to package
37193 elaboration, to prevent early access to this variable.
37194
37195 * Makefile.in: Remove mention of Makefile.adalib, unused.
37196
b291953f
AC
37197 * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
37198 1ssecsta.ads: Removed, unused.
b7e429ab 37199
adc04486
AC
372002004-01-21 Javier Miranda <miranda@gnat.com>
37201
37202 * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
37203 entity if already built in the current scope.
37204
37205 * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
37206 reminder in internal scopes. Required for nested limited aggregates.
37207
372082004-01-21 Doug Rupp <rupp@gnat.com>
37209
37210 * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
37211 VMS. Replace all occurences of libgnat- and libgnarl- with
37212 libgnat$(hyphen) and libgnarl$(hyphen).
37213 Fixed shared library build problem on VMS.
37214
372152004-01-21 Robert Dewar <dewar@gnat.com>
37216
37217 * mlib-prj.adb: Minor reformatting
37218
372192004-01-21 Thomas Quinot <quinot@act-europe.fr>
37220
37221 * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
37222 'constant' keywords for declaration of pointers that are not modified.
37223
37224 * exp_pakd.adb: Fix English in comment.
37225
372262004-01-21 Ed Schonberg <schonberg@gnat.com>
37227
37228 PR ada/10889
37229 * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
37230 copy all attributes of the parent, including the foreign language
37231 convention.
37232
372332004-01-21 Sergey Rybin <rybin@act-europe.fr>
37234
37235 PR ada/10565
37236 * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
37237 for 'delay until' statement.
37238
a541f69d
KC
372392004-01-20 Kelley Cook <kcook@gcc.gnu.org>
37240
37241 * Make-lang.in: Replace $(docdir) with doc.
37242 (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
37243 doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
37244 to use consistent MAKEINFO rule.
37245 (ada.man, ada.srcman): Dummy entry.
37246 (ADA_INFOFILES): Define.
37247 (ada.info, ada.srcinfo): New rules.
37248
c01a9391
AC
372492004-01-19 Arnaud Charlet <charlet@act-europe.fr>
37250
37251 * utils.c: Update copyright notice, missed in previous change.
37252
372532004-01-19 Vincent Celier <celier@gnat.com>
37254
37255 * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
37256 args if Bind is True. Set First_ALI, if not already done.
37257 (Build_Library): For Stand Alone Libraries, extract from one ALI file
37258 an eventual --RTS switch, for gnatbind, and all backend switches +
37259 --RTS, for linking.
37260
372612004-01-19 Robert Dewar <dewar@gnat.com>
37262
37263 * sem_attr.adb, memtrack.adb: Minor reformatting
37264
372652004-01-19 Ed Schonberg <schonberg@gnat.com>
37266
37267 * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
37268 that rename enumeration literals. This is properly done in sem_eval.
37269
37270 * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
37271 to functions that rename enumeration literals.
37272
37273 * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
37274 functions that rename enumeration literals.
37275
510d1e80
KH
372762004-01-16 Kazu Hirata <kazu@cs.umass.edu>
37277
37278 * Make-lang.in (utils.o): Depend on target.h.
37279 * utils.c: Include target.h.
37280 (process_attributes): Use targetm.have_named_sections instead
37281 of ASM_OUTPUT_SECTION_NAME.
37282
fbf3e0dd
AJ
372832004-01-16 Andreas Jaeger <aj@suse.de>
37284
37285 * Makefile.in: Add $(DESTDIR).
37286
acd47d2a
AC
372872004-01-15 Olivier Hainque <hainque@act-europe.fr>
37288
37289 * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
37290 also when not defining if a Size clause applies. That information is
37291 not to be ignored.
37292
372932004-01-15 Arnaud Charlet <charlet@act-europe.fr>
37294
37295 * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
37296 symbolic links for the shared gnat run time when needed.
37297
372982004-01-15 Vasiliy Fofanov <fofanov@act-europe.fr>
37299
37300 * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
37301 for writing, and terminate with an error message if not.
37302
373032004-01-15 Ed Schonberg <schonberg@gnat.com>
37304
37305 * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
37306 warning on an access to subprogram in an instance, when the target
37307 type is declared in the same generic unit.
37308 (Eval_Attribute): If 'access is known to fail accessibility check,
37309 rewrite as a raise statement.
37310
373112004-01-15 GNAT Script <nobody@gnat.com>
37312
37313 * Make-lang.in: Makefile automatically updated
37314
03787dfd
KC
373152004-01-15 Kelley Cook <kcook@gcc.gnu.org>
37316
37317 * Make-lang.in (ada.srcextra): Dummy entry.
37318
73e232f0
KC
373192004-01-14 Kelley Cook <kcook@gcc.gnu.org>
37320
37321 * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
37322
9bc43c53
AC
373232004-01-13 Ed Schonberg <schonberg@gnat.com>
37324
37325 * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
37326 components that are initialized with aggregates.
37327
373282004-01-13 Vincent Celier <celier@gnat.com>
37329
37330 * gnatlink.adb (Process_Binder_File): To find directory of shared
37331 libgcc, if "gcc-lib" is not a subdirectory, look for the last
37332 subdirectory "lib" in the path of the shared libgnat or libgnarl.
37333
37334 * make.adb (Gnatmake): If GCC version is at least 3, link with
37335 -shared-libgcc, when there is at least one shared library project.
37336
37337 * opt.ads (GCC_Version): New integer constant.
37338
37339 * adaint.c (get_gcc_version): New function.
37340
373412004-01-13 Robert Dewar <dewar@gnat.com>
37342
37343 * sem_dist.adb, sem_res.adb, sem_util.adb,
37344 sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
37345 exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
37346
373472004-01-13 Thomas Quinot <quinot@act-europe.fr>
37348
37349 * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
37350 g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
37351 declarations.
37352
8b52de7b
AC
373532004-01-12 Arnaud Charlet <charlet@act-europe.fr>
37354
f6ea0188
AC
37355 * misc.c: Remove trailing spaces.
37356 Update copyright notice missed in previous change.
37357
8b52de7b
AC
37358 PR ada/13572
37359 * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
37360 prefix/share/make
37361
37362 * Makefile.generic: Update copyright.
37363 Add license notice.
37364
37365 * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
37366 of prefix/share/make.
37367
37368 * Makefile.prolog: Update copyright.
37369 Add license notice.
37370
373712004-01-12 Laurent Pautet <pautet@act-europe.fr>
37372
37373 * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
37374 3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
37375 g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
37376 instead of String.
37377
37378 * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
37379 signature.
37380
373812004-01-12 Javier Miranda <miranda@gnat.com>
37382
37383 * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
37384 exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
37385 sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
37386 sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
37387 Component_Definition node.
37388
373892004-01-12 Ed Falis <falis@gnat.com>
37390
37391 * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
37392
373932004-01-12 Thomas Quinot <quinot@act-europe.fr>
37394
37395 * link.c: Change default libgnat kind to STATIC for FreeBSD.
37396
373972004-01-12 Bernard Banner <banner@gnat.com>
37398
37399 * Makefile.in: map 86numaux to a-numaux for x86_64
37400
374012004-01-12 Ed Schonberg <schonberg@gnat.com>
37402
37403 * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
37404 generated to rename a generic actual, go to the actual itself, the
37405 subtype is not a user-visible entity.
37406
37407 * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
37408 part is a private subtype, reset the visibility of its full view, if
37409 any, to be consistent.
37410
37411 PR ada/13417
37412 * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
37413 to use a generic package G as a formal package for another generic
37414 declared within G.
37415
374162004-01-12 Robert Dewar <dewar@gnat.com>
37417
37418 * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
37419
37420 * usage.adb: Remove mention of obsolete -gnatwb switch
37421 Noticed during code reading
37422
374232004-01-12 Jerome Guitton <guitton@act-europe.fr>
37424
37425 * 1ssecsta.adb: Minor changes for -gnatwa warnings
37426
374272004-01-12 GNAT Script <nobody@gnat.com>
37428
37429 * Make-lang.in: Makefile automatically updated
37430
0fab64a3
MM
374312004-01-09 Mark Mitchell <mark@codesourcery.com>
37432
37433 * misc.c (gnat_expand_expr): Add alt_rtl parameter.
37434
47527624
RO
374352004-01-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
37436
37437 * link.c [sgi] (shared_libgnat_default): Change to STATIC.
37438
dedebde1
KC
374392004-01-05 Kelley Cook <kcook@gcc.gnu.org>
37440
fbf3e0dd 37441 * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
dedebde1
KC
37442 Update comment and copyright date.
37443 * stamp-xgnatug: Delete.
37444
91b1417d
AC
374452004-01-05 Robert Dewar <dewar@gnat.com>
37446
37447 * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
37448 be modified by the binder generated main program if the -D switch is
37449 used.
37450
37451 * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
37452 imported functions (since now we expect this to be done for imported
37453 functions)
37454
37455 * 5vtaprop.adb: Add several ??? for sections requiring more comments
37456 Minor reformatting throughout
37457
37458 * 5zinit.adb: Minor reformatting
37459 Add 2004 to copyright date
37460 Minor changes to avoid -gnatwa warnings
37461 Correct some instances of using OR instead of OR ELSE (noted while
37462 doing reformatting)
37463
37464 * sprint.adb: Minor updates to avoid -gnatwa warnings
37465
fbf3e0dd 37466 * s-secsta.ads, s-secsta.adb:
91b1417d
AC
37467 (SS_Get_Max): New function to obtain high water mark for ss stack
37468 Default_Secondary_Stack is not a constant since it may be modified by
37469 the binder generated main program if the -D switch is used.
37470
37471 * switch-b.adb: New -Dnnn switch for binder
37472
fbf3e0dd 37473 * switch-c.adb:
91b1417d
AC
37474 Make -gnatg imply all warnings currently in -gnatwa
37475
37476 * vms_conv.adb: Minor reformatting
37477 Add 2004 to copyright notice
37478 Add 2004 to printed copyright notice
37479
37480 * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
37481 3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
37482 5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
37483 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
37484 5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
37485 5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
37486 5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
37487 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
37488 5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
37489 5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
37490 6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
37491 vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
37492 xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
37493 sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
37494 checks.adb, clean.adb, cstand.adb, einfo.ads,
37495 einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
37496 exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
37497 prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
37498 sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
37499 g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
37500 lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
37501 Minor reformatting and code clean ups.
37502 Minor changes to prevent -gnatwa warnings
37503
37504 * ali.adb: Minor reformatting and cleanup of code
37505 Acquire new SS indication of secondary stack use from ali files
37506
37507 * a-numaux.ads: Add Pure_Function pragmas for all imported functions
37508 (since now we expect this to be done for imported functions)
37509
37510 * bindgen.adb: Generate call to modify default secondary stack size if
37511 -Dnnn switch given
37512
37513 * bindusg.adb: Add line for new -D switch
37514
37515 * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
37516 replacement name for Type_May_Have_Non_Bit_Aligned_Components!
37517 Add circuitry for both records and arrays to avoid gigi
37518 processing if the type involved has non-bit-aligned components
37519
37520 * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
37521 N_String_Literal node always references an E_String_Literal_Subtype
37522 entity. This may not be true in the future.
37523 (Possible_Bit_Aligned_Component): Move processing of
37524 Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
37525
37526 * exp_ch6.adb (Expand_Thread_Body): Pick up
37527 Default_Secondary_Stack_Size as variable so that we get value modified
37528 by possible -Dnnn binder parameter.
37529
37530 * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
37531 (Type_May_Have_Bit_Aligned_Components): New function.
37532
37533 * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
37534 (Type_May_Have_Bit_Aligned_Components): New function.
37535
37536 * fe.h: (Set_Identifier_Casing): Fix prototype.
37537 Add declaration for Sem_Elim.Eliminate_Error_Msg.
37538 Minor reformatting.
37539
37540 * freeze.adb (Freeze_Entity): Add RM reference to error message about
37541 importing constant atomic/volatile objects.
37542 (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
37543 unless explicit Pure_Function pragma given, to avoid insidious bug of
37544 call to non-pure imported function getting eliminated.
37545
37546 * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
37547 gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
37548 gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
37549 Add 2004 to printed copyright notice
37550
37551 * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
37552 stack used.
37553
37554 * Makefile.rtl: Add entry for g-sestin.o
37555 g-sestin.ads: New file.
37556
37557 * mdll.adb: Minor changes to avoid -gnatwa warnings
37558
37559 * mlib-tgt.adb: Minor reformatting
37560
37561 * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
37562 New switch Sec_Stack_Used (GNAT, GNATBIND)
37563 Make Default_Secondary_Stack_Size a variable instead of a constant,
37564 so that it can be modified by the new -Dnnn bind switch.
37565
37566 * rtsfind.adb (Load_Fail): Give full error message in configurable
37567 run-time mode if all_errors mode is set. This was not done in the case
37568 of a file not found, which was an oversight.
37569 Note if secondary stack unit is used by compiler.
37570
37571 * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
37572 ineffective elaborate all pragmas on non-visible packages (this
37573 happened when a renamed subprogram was called). Now the elaborate all
37574 always goes on the package containing the renaming rather than the one
37575 containing the renamed subprogram.
37576
37577 * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
37578 (Process_Eliminate_Pragma): Add parameter to capture pragma location.
37579
37580 * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
37581 has an Etype that references an E_String_Literal.
37582 (Eval_String_Literal): Avoid assumption that N_String_Literal node
37583 always references an E_String_Literal_Subtype entity. This may not
37584 be true in the future.
37585
37586 * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
37587 pragma location.
37588
37589 * sem_res.adb (Resolve): Specialize msg for function name used in proc
37590 call.
37591
375922004-01-05 Ed Falis <falis@gnat.com>
37593
37594 * g-debuti.adb: Replaced direct boolean operator with short-circuit
37595 form.
37596
375972004-01-05 Vincent Celier <celier@gnat.com>
37598
37599 * bld.adb: Minor comment updates
37600 (Process_Declarative_Items): Correct incorrect name (Index_Name instead
37601 of Item_Name).
37602
37603 * make.adb (Gnatmake): Special process for files to compile/check when
37604 -B is specified. Fail when there are only foreign mains in attribute
37605 Main of the project file and -B is not specified. Do not skip bind/link
37606 steps when -B is specified.
37607
37608 * makeusg.adb: Document new switch -B
37609
37610 * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
37611
37612 * switch-m.adb: (Scan_Make_Switches): Process -B switch
37613
37614 * vms_data.ads: Add new GNAT PRETTY qualifier
37615 /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
37616
376172004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37618
37619 * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
37620 case.
37621
37622 * misc.c (gnat_printable_name): If VERBOSITY is 2, call
37623 Set_Identifier_Casing.
37624
37625 * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
37626 has size that overflows.
37627
376282004-01-05 Gary Dismukes <dismukes@gnat.com>
37629
37630 * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
37631 -gnatwa warning on static condition.
37632
376332004-01-05 Doug Rupp <rupp@gnat.com>
37634
37635 * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
37636
376372004-01-05 Arnaud Charlet <charlet@act-europe.fr>
37638
37639 * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
37640 all attributes, including read-only attribute.
37641
376422004-01-05 Pascal Obry <obry@gnat.com>
37643
37644 * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
37645 library naming scheme.
37646
37647 * mlib-prj.adb (Build_Library): Generate different names for the static
37648 or dynamic version of the GNAT runtime. This is needed to support the
37649 new shared library naming scheme.
37650 (Process_Binder_File): Add detection of shared library in binder file
37651 based on the new naming scheme.
37652
37653 * gnatlink.adb (Process_Binder_File): Properly detect the new naming
37654 scheme for the shared runtime libraries.
37655
37656 * Makefile.in:
37657 (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
37658 scheme.
37659 (install-gnatlib): Do not create symlinks for shared libraries.
37660 (gnatlib-shared-default): Idem.
37661 (gnatlib-shared-dual-win32): New target. Not used for now as the
37662 auto-import feature does not support arrays/records.
37663 (gnatlib-shared-win32): Do not create copy for the shared libraries.
37664 (gnatlib-shared-vms): Fix shared runtime libraries names.
37665
37666 * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
37667 dependent runtime shared library name.
37668
376692004-01-05 Vasiliy Fofanov <fofanov@act-europe.fr>
37670
37671 * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
37672 than the object.
37673
376742004-01-05 Ed Schonberg <schonberg@gnat.com>
37675
37676 * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
37677 protected objects when allocator has a subtype indication, not a
37678 qualified expression. Note that qualified expressions may have to be
37679 checked when limited aggregates are implemented.
37680
37681 * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
37682 pure, emit warning.
37683 (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
37684 subprogram is imported, remove warning.
37685
376862004-01-05 Geert Bosch <bosch@gnat.com>
37687
37688 * s-poosiz.adb: Update copyright notice.
37689 (Allocate): Use Task_Lock to protect against concurrent access.
37690 (Deallocate): Likewise.
37691
376922004-01-05 Joel Brobecker <brobecker@gnat.com>
37693
37694 * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
37695 comment.
37696
2ab127f3
KC
376972003-12-23 Kelley Cook <kcook@gcc.gnu.org>
37698
37699 * gnat_ug.texi: Force a CVS commit by updating copyright.
37700 * gnat_ug_vxw.texi: Regenerate.
37701 * gnat_ug_wnt.texi: Regenerate.
37702 * gnat_ug_vms.texi: Regenerate.
37703 * gnat_ug_unx.texi: Regenerate.
37704
aed8bfdc
KH
377052003-12-20 Kazu Hirata <kazu@cs.umass.edu>
37706
37707 * trans.c: Remove uses of "register" specifier in
37708 declarations of local variables.
37709
90c2f1de
KC
377102003-12-18 Kelley Cook <kcook@gcc.gnu.org>
37711
37712 * stamp-xgnatug: New stamp file.
37713 * Make-lang.in (stamp-xgnatug): New stamp file and comment.
37714 (ada/doctools/xgnatug): Add $(build_exeext).
37715 (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
37716 ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
37717
891a6e79
AC
377182003-12-17 Ed Falis <falis@gnat.com>
37719
37720 * a-elchha.adb (Tailored_Exception_Information): made Info constant to
37721 eliminate warning.
37722
37723 * a-exextr.adb: Add context clause for
37724 Ada.Exceptions.Last_Chance_Handler.
37725
377262003-12-17 Sergey Rybin <rybin@act-europe.fr>
37727
37728 * cstand.adb (Create_Standard): Change the way how the declaration of
37729 the Duration type is created (making it the same way as it is for all
37730 the other standard types).
37731
377322003-12-17 Robert Dewar <dewar@gnat.com>
37733
37734 * s-crtl.ads: Fix header format
37735 Change Pure to Preelaborate
37736
377372003-12-17 Ed Schonberg <schonberg@gnat.com>
37738
37739 * checks.adb (Selected_Length_Checks): Generate an Itype reference for
37740 the expression type only if it is declared in the current unit.
37741
37742 * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
37743 are universal and already analyzed, as can occur in constrained
37744 subcomponents that depend on discriminants, when one constraint is a
37745 subtype mark.
37746
37747 * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
37748 type Any_Fixed is legal as the argument of a conversion, if only one
37749 fixed-point type is in context.
37750
377512003-12-17 GNAT Script <nobody@gnat.com>
37752
37753 * Make-lang.in: Makefile automatically updated
37754
209db2bf
AC
377552003-12-15 Robert Dewar <dewar@gnat.com>
37756
37757 * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
37758 sec stack size.
37759
377602003-12-15 Vincent Celier <celier@gnat.com>
37761
37762 * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
37763 (Gnatchop): Do not set failure status when reporting the number of
37764 warnings.
37765
377662003-12-15 Doug Rupp <rupp@gnat.com>
37767
37768 * s-ctrl.ads: New file.
37769
37770 * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
37771
37772 * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
37773 (GNATBIND_OBJS): Add ada/s-crtl.o.
37774
37775 * Makefile.in [VMS]: Clean up ifeq rules.
37776
37777 * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
37778 a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
37779 g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
37780 s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
37781 s-tasdeb.adb: Update copyright.
37782 Import System.CRTL.
37783 Make minor modifications to use System.CRTL declared functions instead
37784 of importing locally.
37785
377862003-12-15 GNAT Script <nobody@gnat.com>
37787
37788 * Make-lang.in: Makefile automatically updated
37789
a9f4e3d2
AC
377902003-12-11 Ed Falis <falis@gnat.com>
37791
37792 * 5zinit.adb: Clean up.
37793
37794 * 5zintman.adb (Notify_Exception): replaced case statement with a call
37795 to __gnat_map_signal, imported from init.c to support
37796 signal -> exception mappings that depend on the vxWorks version.
37797
fbf3e0dd 37798 * init.c:
a9f4e3d2
AC
37799 Created and exported __gnat_map_signal to support signal -> exception
37800 mapping that is dependent on the VxWorks version.
37801 Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
37802
378032003-12-11 Vasiliy Fofanv <fofanov@act-europe.fr>
37804
37805 * 5wosinte.ads: Link with -mthreads switch.
37806
378072003-12-11 Arnaud Charlet <charlet@act-europe.fr>
37808
37809 * init.c (__gnat_install_handler [NetBSD]): Set
37810 __gnat_handler_installed, as done on all other platforms.
37811 Remove duplicated code.
37812
378132003-12-11 Jerome Guitton <guitton@act-europe.fr>
37814
37815 * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
37816
378172003-12-11 Thomas Quinot <quinot@act-europe.fr>
37818
37819 * sinfo.ads: Fix inconsistent example code in comment.
37820
378212003-12-11 Robert Dewar <dewar@gnat.com>
37822
37823 * a-tiinau.adb: Add a couple of comments
37824
37825 * sem_ch3.adb: Minor reformatting
37826
fbf3e0dd 37827 * sem_prag.adb:
a9f4e3d2
AC
37828 Fix bad prototype of Same_Base_Type in body (code reading cleanup)
37829 Minor reformatting throughout
37830
378312003-12-11 Ed Schonberg <schonberg@gnat.com>
37832
37833 * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
37834 bounds of a loop, create a separate block in order to generate proper
37835 cleanup actions to prevent memory leaks.
37836
37837 * sem_res.adb (Resolve_Call): After a call to
37838 Establish_Transient_Scope, the call may be rewritten and relocated, in
37839 which case no further processing is needed.
37840
37841 * sem_util.adb: (Wrong_Type): Refine previous fix.
37842 Fixes ACATS regressions.
37843
37844 PR ada/13353
a9f4e3d2
AC
37845 * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
37846 be inlined.
37847
c45b6ae0
AC
378482003-12-08 Jerome Guitton <guitton@act-europe.fr>
37849
37850 * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
37851 i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
37852 obsolete files.
37853
37854 * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
37855 (rts-zfp): Ditto.
37856
378572003-12-08 Robert Dewar <dewar@gnat.com>
37858
37859 * 7sintman.adb: Minor reformatting
37860
37861 * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
37862 standard linker options to get standard libraries linked. We now plan
37863 to provide dummy versions of these libraries to match the appropriate
37864 configurable run-time (e.g. if a library is not needed at all, provide
37865 a dummy empty library).
37866
37867 * targparm.ads: Configurable_Run_Time mode no longer affects linker
37868 options (-L parameters and standard libraries). What we plan to do is
37869 to provide dummy libraries where the libraries are not required.
37870
37871 * gnatbind.adb: Minor comment improvement
37872
378732003-12-08 Javier Miranda <miranda@gnat.com>
37874
37875 * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
37876 aggregate in the parent. Otherwise constants with limited aggregates
37877 are not supported. Add new formal to pass the component type (Ctype).
37878 It is required to call the corresponding IP subprogram in case of
37879 default initialized components.
37880 (Gen_Assign): In case of default-initialized component, generate a
37881 call to the IP subprogram associated with the component.
37882 (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
37883 of aggregate with default initialized components.
37884 (Has_Default_Init_Comps): Improve implementation to recursively check
37885 all the present expressions.
37886
37887 * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
37888 to indicate that the initialization call corresponds to a
37889 default-initialized component of an aggregate.
37890 In case of default initialized aggregate with tasks this parameter is
37891 used to generate a null string (this is just a workaround that must be
37892 improved later). In case of discriminants, this parameter is used to
37893 generate a selected component node that gives access to the discriminant
37894 value.
37895
37896 * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
37897 subprogram, based on Build_Task_Allocate_Block, but adapted to expand
37898 allocated aggregates with default-initialized components.
37899
37900 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
37901 the box notation is used in positional aggregates.
37902
379032003-12-08 Samuel Tardieu <tardieu@act-europe.fr>
37904
37905 * lib.ads: Fix typo in comment
37906
379072003-12-08 Vincent Celier <celier@gnat.com>
37908
37909 * prj.adb (Project_Empty): New component Unkept_Comments
37910 (Scan): Remove procedure; moved to Prj.Err.
37911
37912 * prj.ads (Project_Data): New Boolean component Unkept_Comments
37913 (Scan): Remove procedure; moved to Prj.Err.
37914
37915 * prj-dect.adb: Manage comments for the different declarations.
37916
37917 * prj-part.adb (With_Record): New component Node
37918 (Parse): New Boolean parameter Store_Comments, defaulted to False.
37919 Set the scanner to return ends of line and comments as tokens, if
37920 Store_Comments is True.
37921 (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
37922 comments are associated with these nodes. Store the node IDs in the
37923 With_Records.
37924 (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
37925 With_Records.
37926 (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
37927 the N_Project node. Call Tree.Save and Tree.Reset before scanning the
37928 current project. Call Tree.Restore afterwards. Set the various nodes
37929 for comment storage (Next_End, End_Of_Line, Previous_Line,
37930 Previous_End).
37931
37932 * prj-part.ads (Parse): New Boolean parameter Store_Comments,
37933 defaulted to False.
37934
37935 * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
37936 to False. When Truncated is True, truncate the string, never go to the
37937 next line.
37938 (Write_End_Of_Line_Comment): New procedure
37939 (Print): Process comments for nodes N_With_Clause,
37940 N_Package_Declaration, N_String_Type_Declaration,
37941 N_Attribute_Declaration, N_Typed_Variable_Declaration,
37942 N_Variable_Declaration, N_Case_Construction, N_Case_Item.
37943 Process nodes N_Comment.
37944
37945 * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
37946 without comments and there are some comments, set the flag
37947 Unkept_Comments to True.
37948 (Scan): If there are comments, set the flag Unkept_Comments to True and
37949 clear the comments.
37950 (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
37951 (Next_End_Nodes: New table
37952 (Comment_Zones_Of): New function
37953 (Scan): New procedure; moved from Prj. Accumulate comments in the
37954 Comments table and set end of line comments, comments after, after end
37955 and before end.
37956 (Add_Comments): New procedure
37957 (Save, Restore, Seset_State): New procedures
37958 (There_Are_Unkept_Comments): New function
37959 (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
37960 (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
37961 procedures.
37962 (First_Comment_After, First_Comment_After_End): New functions
37963 (First_Comment_Before, First_Comment_Before_End): New functions
37964 (Next_Comment): New function
37965 (End_Of_Line_Comment, Follows_Empty_Line,
37966 Is_Followed_By_Empty_Line): New functions
37967 (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
37968 (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
37969 (Set_Next_Comment): New procedure
37970 (Default_Project_Node): Associate comment before if the node can store
37971 comments.
37972
37973 * scans.ads (Token_Type): New enumeration value Tok_Comment
37974 (Comment_Id): New global variable
37975
37976 * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
37977 defaulted to False.
37978 (Scan): Store position of start of comment. If comments are tokens, set
37979 Comment_Id and set Token to Tok_Comment when scanning a comment.
37980 (Set_Comment_As_Token): New procedure
37981
37982 * sinput-p.adb: Update Copyright notice
37983 (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
37984 that no longer exists.
37985
379862003-12-08 Javier Miranda <miranda@gnat.com>
37987
37988 * sem_aggr.adb: Add dependence on Exp_Tss package
37989 Correct typo in comment
37990 (Resolve_Aggregate): In case of array aggregates set the estimated
37991 type of the aggregate before calling resolve. This is needed to know
37992 the name of the corresponding IP in case of limited array aggregates.
37993 (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
37994 in case of default initialized array components.
37995
37996 * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
37997 types. Required to give support to limited aggregates in generic
37998 formals.
37999
380002003-12-08 Ed Schonberg <schonberg@gnat.com>
38001
38002 * sem_ch3.adb (Check_Initialization): For legality purposes, an
38003 inlined body functions like an instantiation.
38004 (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
38005 until bounds are analyzed, to diagnose premature use of type.
38006
38007 * sem_util.adb (Wrong_Type): Improve error message when the type of
38008 the expression is used prematurely.
38009
380102003-12-08 GNAT Script <nobody@gnat.com>
38011
38012 * Make-lang.in: Makefile automatically updated
38013
0875a894
AC
380142003-12-08 Arnaud Charlet <charlet@act-europe.fr>
38015
7618d510
AC
38016 * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
38017 they are automatically generated by Make-lang.in and cause nothing but
0875a894
AC
38018 maintenance troubles.
38019
5b4994bc
AC
380202003-12-05 Thomas Quinot <quinot@act-europe.fr>
38021
38022 * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
38023 version of this unit).
38024
380252003-12-05 Olivier Hainque <hainque@act-europe.fr>
38026
38027 * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
38028 5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
38029 5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
38030 the body of System.Interrupt_Management common to several targets.
38031 Update copyright notice when appropriate.
38032
38033 * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
38034 constant.
38035
38036 * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
38037 to ensure that the kernel fills in the interrupted context structure
38038 before calling a signal handler, which is necessary to be able to
38039 unwind past it. Update the copyright notice.
38040
380412003-12-05 Jerome Guitton <guitton@act-europe.fr>
38042
38043 * a-elchha.ads: New file.
38044
38045 * a-elchha.adb: New default last chance handler. Contents taken from
38046 Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
38047
38048 * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
38049 is moved to a-elchha.adb to provide a target-independent default last
38050 chance handler.
38051
38052 * Makefile.rtl: Add a-elchha.o
38053
38054 * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
38055
380562003-12-05 Ed Schonberg <schonberg@gnat.com>
38057
38058 * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
38059 declared in an instance, do not inline the call if the instance is not
38060 frozen yet, to prevent order of elaboration problems.
38061
38062 * sem_prag.adb: Add comments for previous fix.
38063
380642003-12-05 Samuel Tardieu <tardieu@act-europe.fr>
38065
38066 * g-table.adb: Use the right variable in Set_Item.
38067 Update copyright notice.
38068
380692003-12-05 Arnaud Charlet <charlet@act-europe.fr>
38070
38071 * Makefile.in: Remove unused rules.
38072
380732003-12-05 Vincent Celier <celier@gnat.com>
38074
38075 * switch-c.adb (Scan_Front_End_Switches): Remove processing of
38076 -nostdlib. Not needed here after all.
38077
efdfd311
AC
380782003-12-03 Thomas Quinot <quinot@act-europe.fr>
38079
38080 PR ada/11724
fbf3e0dd 38081 * adaint.h, adaint.c, g-os_lib.ads:
efdfd311
AC
38082 Do not assume that the offset argument to lseek(2) is a 32 bit integer,
38083 on some platforms (including FreeBSD), it is a 64 bit value.
38084 Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
38085
380862003-12-03 Arnaud Charlet <charlet@act-europe.fr>
38087
38088 * gnatvsn.ads (Library_Version): Now contain only the relevant
38089 version info.
38090 (Verbose_Library_Version): New constant.
38091
38092 * g-spipat.adb, g-awk.adb, g-debpoo.adb,
38093 g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
38094 s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
38095
38096 * gnatlbr.adb: Clean up: replace Library_Version by
38097 Verbose_Library_Version.
38098
fbf3e0dd 38099 * make.adb, lib-writ.adb, exp_attr.adb:
efdfd311
AC
38100 Clean up: replace Library_Version by Verbose_Library_Version.
38101
38102 * 5lintman.adb: Removed.
38103
fbf3e0dd 38104 * Makefile.in:
efdfd311
AC
38105 Update and simplify computation of LIBRARY_VERSION.
38106 Fix computation of GSMATCH_VERSION.
38107 5lintman.adb is no longer used: replaced by 7sintman.adb.
38108
381092003-12-03 Robert Dewar <dewar@gnat.com>
38110
fbf3e0dd 38111 * exp_ch5.adb:
efdfd311
AC
38112 (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
38113 name. Modified to consider small non-bit-packed arrays as troublesome
38114 and in need of component-by-component assigment expansion.
38115
381162003-12-03 Vincent Celier <celier@gnat.com>
38117
38118 * lang-specs.h: Process nostdlib as nostdinc
38119
38120 * back_end.adb: Update Copyright notice
38121 (Scan_Compiler_Arguments): Process -nostdlib directly.
38122
381232003-12-03 Jose Ruiz <ruiz@act-europe.fr>
38124
fbf3e0dd 38125 * Makefile.in:
efdfd311
AC
38126 When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
38127 redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
38128 included in HIE_NONE_TARGET_PAIRS.
38129
381302003-12-03 Ed Schonberg <schonberg@gnat.com>
38131
fbf3e0dd 38132 * sem_attr.adb:
efdfd311
AC
38133 (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
38134 is legal in an instance, because legality is cheched in the template.
38135
fbf3e0dd 38136 * sem_prag.adb:
efdfd311
AC
38137 (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
38138 appplied to an unchecked conversion of a formal parameter.
38139
fbf3e0dd 38140 * sem_warn.adb:
efdfd311
AC
38141 (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
38142 variables.
38143
381442003-12-03 Olivier Hainque <hainque@act-europe.fr>
38145
38146 * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
38147 routines. The second one is new functionality to deal with backtracing
38148 through signal handlers.
38149 (unwind): Split into the two separate subroutines above.
38150 Update the documentation, and deal properly with sizeof (REG) different
38151 from sizeof (void*).
38152
08aa9a4a
AC
381532003-12-01 Nicolas Setton <setton@act-europe.fr>
38154
38155 * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
38156 so that the debugger can reliably access the value of the parameter,
38157 and therefore is able to display the exception name when an exception
38158 breakpoint is reached.
38159
381602003-12-01 Thomas Quinot <quinot@act-europe.fr>
38161
38162 * fmap.adb: Fix typo in warning message.
38163
38164 * g-socket.ads, g-socket.adb: Make Free a visible instance of
38165 Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
38166
381672003-12-01 Vincent Celier <celier@gnat.com>
38168
38169 * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
38170 ther is no Afile.
38171 (Build_Library): Get the switches only if Default_Switches is declared
38172 in package Binder.
38173
381742003-12-01 Ed Schonberg <schonberg@gnat.com>
38175
38176 * exp_ch6.adb (Expand_Actuals): When applying validity checks to
38177 actuals that are indexed components, reanalyze actual to ensure that
38178 packed array references are properly expanded.
38179
38180 * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
38181 attempted assignment to a discriminant.
38182
381832003-12-01 Robert Dewar <dewar@gnat.com>
38184
38185 * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
38186 reformatting.
38187
38188 * switch-c.adb: Minor reformatting of comments
38189
381902003-12-01 Arnaud Charlet <charlet@act-europe.fr>
38191
38192 * Makefile.in: Clean ups.
38193
381942003-12-01 GNAT Script <nobody@gnat.com>
38195
38196 * Make-lang.in: Makefile automatically updated
38197
c6135994
AC
381982003-12-01 Arnaud Charlet <charlet@act-europe.fr>
38199
38200 * 5wsystem.ads: Disable zero cost exception, not ready yet.
38201
51a30506
UW
382022003-11-29 Ulrich Weigand <uweigand@de.ibm.com>
38203
38204 * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
38205 to force serialization.
38206
81a5b587
AC
382072003-11-26 Thomas Quinot <quinot@act-europe.fr>
38208
fbf3e0dd 38209 * g-socket.ads, g-socket.adb:
81a5b587
AC
38210 Clarify documentation of function Stream. Introduce a Free procedure
38211 to release the returned Stream once it becomes unused.
38212
38213 * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
38214
382152003-11-26 Arnaud Charlet <charlet@act-europe.fr>
38216
38217 (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
38218 since NT 4 cannot handle timeout values that are too large,
38219 e.g. DWORD'Last - 1.
38220
382212003-11-26 Ed Schonberg <schonberg@gnat.com>
38222
fbf3e0dd 38223 * exp_ch4.adb:
81a5b587
AC
38224 (Expand_N_Slice): Recognize all cases of slices that appear as actuals
38225 in procedure calls and whose expansion must be deferred.
38226
38227 * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
38228 is in exp_ch4.
38229
fbf3e0dd 38230 * sem_ch3.adb:
81a5b587
AC
38231 (Build_Derived_Array_Type): Create operator for unconstrained type
38232 if ancestor is unconstrained.
38233
382342003-11-26 Vincent Celier <celier@gnat.com>
38235
38236 * make.adb (Project_Object_Directory): New global variable
38237 (Change_To_Object_Directory): New procedure
38238 (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
38239 of Change_Dir directly. Do not change working directory to object
38240 directory of main project after each compilation.
38241 (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
38242 directly.
38243 Change to object directory of main project before binding step.
38244 (Initialize): Initialize Project_Object_Directory to No_Project
38245
fbf3e0dd 38246 * mlib-prj.adb:
81a5b587
AC
38247 (Build_Library): Take into account Builder'Default_Switches ("Ada") when
38248 binding a Stand-Alone Library.
38249
38250 * output.adb: Update Copyright notice
38251 (Write_Char): Output buffer when full
38252
382532003-11-26 Robert Dewar <dewar@gnat.com>
38254
38255 * sem_ch13.adb: (Check_Size): Reset size if size is too small
38256
fbf3e0dd 38257 * sem_ch13.ads:
81a5b587
AC
38258 (Check_Size): Fix documentation to include bit-packed array case
38259
38260 * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
38261
38262 * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
38263
38264 * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
38265
9e94c78f 382662003-11-24 Arnaud Charlet <charlet@act-europe.fr>
d4c47b51
AC
38267
38268 PR ada/13142
38269 * utils.c (init_gigi_decls): Change name of built-in setjmp to
38270 __builtin_setjmp, since this is apparently needed by recent
38271 non Ada changes.
38272
7677e9e0
RO
382732003-11-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
38274
d4c47b51 38275 * adadecode.c: Only include ctype.h if not IN_GCC.
7677e9e0
RO
38276 (__gnat_decode): Use ISDIGIT from safe-ctype.h.
38277
6c1e24d3
AC
382782003-11-24 Jose Ruiz <ruiz@act-europe.fr>
38279
fbf3e0dd 38280 * Makefile.in:
6c1e24d3
AC
38281 Use 5zintman.ads for VxWorks targets. This file avoid confusion between
38282 signals and interrupts.
38283
38284 * 5zintman.ads: New File.
38285
38286 * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
38287 add exception signals to the set of unmasked signals.
38288
fbf3e0dd 38289 * 5ztaprop.adb:
6c1e24d3
AC
38290 Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
38291 between signals and interrupts.
38292 Add to Unblocked_Signal_Mask the set of signals that are in
38293 Keep_Unmasked.
38294
fbf3e0dd 38295 * 7sinmaop.adb:
6c1e24d3
AC
38296 Adding a check to see whether the Interrupt_ID we want to unmask is in
38297 the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
38298 reason is that the index type of the Keep_Unmasked array is not always
38299 Interrupt_ID; it may be a subtype of Interrupt_ID.
38300
383012003-11-24 Gary Dismukes <dismukes@gnat.com>
38302
fbf3e0dd 38303 * exp_util.adb:
6c1e24d3
AC
38304 (Remove_Side_Effects): Condition constantness of object created for a
38305 an unchecked type conversion on the constantness of the expression
38306 to ensure the correct value for 'Constrained when passing components
38307 of view-converted class-wide objects.
38308
383092003-11-24 Robert Dewar <dewar@gnat.com>
38310
38311 * par-load.adb (Load): Improve handling of misspelled and missing units
38312 Removes several cases of compilation abandoned messages
38313
38314 * lib.adb: (Remove_Unit): New procedure
38315
38316 * lib.ads: (Remove_Unit): New procedure
38317
38318 * lib-load.adb: Minor reformatting
38319
383202003-11-24 Vincent Celier <celier@gnat.com>
38321
fbf3e0dd 38322 * make.adb:
6c1e24d3
AC
38323 (Gnatmake, Initialize): Call Usage instead of Makeusg directly
38324 (Marking_Label): Label to mark processed source files. Incremented for
38325 each executable.
38326 (Gnatmake): Increase Marking_Labet for each executable
38327 (Is_Marked): Compare against marking label
38328 (Mark): Mark with marking label
38329
383302003-11-24 Jerome Guitton <guitton@act-europe.fr>
38331
fbf3e0dd 38332 * s-thread.ads:
6c1e24d3
AC
38333 Move the declaration of the TSD for System.Threads to System.Soft_Links.
38334 Add some comments.
38335
38336 * Makefile.in: Added target pair for s-thread.adb for cert runtime.
38337 (rts-cert): build a single relocatable object for the run-time lib.
38338 Fix perms.
38339
383402003-11-24 Vasiliy Fofanov <fofanov@act-europe.fr>
38341
fbf3e0dd 38342 * Make-lang.in:
6c1e24d3
AC
38343 Use gnatls rather than gcc to obtain the location of GNAT RTL for
38344 crosstools build.
38345
383462003-11-24 Sergey Rybin <rybin@act-europe.fr>
38347
38348 * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
38349 can not use it as before (that is, as a variable) when dumping it into
38350 the tree file. Add a local variable to store the result of this
38351 function and to be used as the string to be written into the tree.
38352
38353 * scn.adb (Initialize_Scanner): Add comments explaining the recent
38354 changes.
38355
38356 * sinput.adb (Source_First, Source_Last): In case of
38357 Internal_Source_File, replace returning attributes of
38358 Internal_Source_Ptr (which is wrong) with returning attributes of
38359 Internal_Source.
38360
383612003-11-24 Ed Schonberg <schonberg@gnat.com>
38362
fbf3e0dd 38363 * sem_ch3.adb:
6c1e24d3
AC
38364 (New_Concatenation_Op): Proper name for New_Binary_Operator, only
38365 used for implicit concatenation operators.
38366 Code cleanup.
38367
fbf3e0dd 38368 * sem_elab.adb:
6c1e24d3
AC
38369 (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
38370 task bodies that are in the scope of a Suppress pragma.
38371 (Check_A Call): Use the flag to prevent spurious elaboration checks.
38372
fbf3e0dd 38373 * sinfo.ads, sinfo.adb:
6c1e24d3
AC
38374 New flag No_Elaboration_Check on function/procedure calls, to properly
38375 suppress checks on calls in task bodies that are within a local suppress
38376 pragma.
38377
fbf3e0dd 38378 * exp_ch4.adb:
6c1e24d3
AC
38379 (Expand_Concatenate_Other): Use the proper integer type for the
38380 expression for the upper bound, to avoid universal_integer computations
38381 when possible.
38382
6f2aeb72
KC
383832003-11-21 Kelley Cook <kcook@gcc.gnu.org>
38384
38385 * .cvsignore: Delete.
38386
e9f85cd6
AS
383872003-11-21 Andreas Schwab <schwab@suse.de>
38388
38389 * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
38390
4e074baf
VF
383912003-11-21 Vasiliy Fofanov <fofanov@act-europe.fr>
38392
38393 * 5wsystem.ads: Enable zero cost exception.
38394
f1f9fe30
AC
383952003-11-21 Jerome Guitton <guitton@act-europe.fr>
38396
38397 * 5ztiitho.adb: Remove an unreferenced variable.
38398
383992003-11-21 Thomas Quinot <quinot@act-europe.fr>
38400
38401 * adaint.c: For FreeBSD, use mkstemp.
38402
384032003-11-21 Arnaud Charlet <charlet@act-europe.fr>
38404
38405 * gnatlbr.adb: Now reference Gnat_Static_Version_String.
38406
384072003-11-21 Robert Dewar <dewar@gnat.com>
38408
38409 * bld.adb: Remove useless USE of gnatvsn
38410
38411 * gnatchop.adb: Minor reformatting
38412 Clean up version handling to be more consistent
38413
38414 * gnatxref.adb: Minor reformatting
38415
38416 * gprcmd.adb: Minor reformatting
38417 Fix output of copyright to be more consistent with other tools
38418
384192003-11-21 Vincent Celier <celier@gnat.com>
38420
38421 * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
38422
384232003-11-21 Sergey Rybin <rybin@act-europe.fr>
38424
38425 * atree.adb (Initialize): Add initializations for global variables
38426 used in New_Copy_Tree.
38427
38428 * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
38429 Internal_Source_File as the actual).
38430 Put the set of statements creating Any_Character before the set of
38431 statements creating Any_Array to have Any_Character fully initialized
38432 when it is used in creating Any_Array.
38433
38434 * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
38435 not call Scan in case if the actual is Internal_Source_File
38436 Add 2003 to copyright note.
38437
38438 * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
38439 processing Internal_Source_File.
38440
38441 * types.ads: Add the constant Internal_Source_File representing the
38442 source buffer for artificial source-code-like strings created within
38443 the compiler (the definition of Source_File_Index is changed).
38444
c5b2a8ae
AC
384452003-11-20 Arnaud Charlet <charlet@act-europe.fr>
38446
38447 * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
38448 56system.ads: New file, FreeBSD version.
38449
a03ad584
JM
384502003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
38451
38452 * Make-lang.in (ada.extraclean): Delete.
38453
19f0526a
AC
384542003-11-19 Arnaud Charlet <charlet@act-europe.fr>
38455
38456 * gnatmem.adb: Clean up verbose output.
38457
38458 * gprcmd.adb: Change copyright to FSF.
38459
384602003-11-19 Vincent Celier <celier@gnat.com>
38461
38462 * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
38463 and Version (ignored).
38464
38465 * symbols.ads: (Policy): New type
38466 (Initialize): New parameter Reference, Symbol_Policy and
38467 Library_Version.
38468 Remove parameter Force.
38469 Minor reformatting.
38470
38471 * snames.ads, snames.adbadb: New standard names
38472 Library_Reference_Symbol_File and Library_Symbol_Policy
38473
fbf3e0dd 38474 * mlib-prj.adb:
19f0526a
AC
38475 (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
38476 project.
38477
fbf3e0dd 38478 * mlib-tgt.adb:
19f0526a
AC
38479 (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
38480
38481 * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
38482
38483 * prj.adb: (Project_Empty): New component Symbol_Data
38484
38485 * prj.ads: (Policy, Symbol_Record): New types
38486 (Project_Data): New component Symbol_Data
38487
fbf3e0dd 38488 * prj-attr.adb:
19f0526a
AC
38489 New attributes Library_Symbol_File, Library_Symbol_Policy and
38490 Library_Reference_Symbol_File.
38491
fbf3e0dd 38492 * prj-nmsc.adb:
19f0526a
AC
38493 (Ada_Check): When project is a Stand-Alone library project, process
38494 attribute Library_Symbol_File, Library_Symbol_Policy and
38495 Library_Reference_Symbol_File.
38496
38497 * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
38498 5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
38499 5sml-tgt.adb (Build_Dynamic_Library): New parameter
38500 Symbol_Data (ignored).
38501
38502 * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
38503 (Build_Dynamic_Library): New parameter Symbol_Data. New internal
38504 functions Option_File_Name and Version_String. Set new options of
38505 gnatsym related to symbol file, symbol policy and reference symbol
38506 file.
38507
fbf3e0dd 38508 * 5vsymbol.adb:
19f0526a
AC
38509 Extensive modifications to take into account the reference symbol file,
38510 the symbol policy, the library version and to put in the symbol file the
38511 minor and major IDs.
38512
38513 * bld.adb (Process_Declarative_Items): Put second argument of
38514 gprcmd to_absolute between single quotes, to avoid problems with
38515 Windows.
38516
38517 * bld-io.adb: Update Copyright notice.
38518 (Flush): Remove last character of a line, if it is a back slash, to
38519 avoid make problems.
38520
fbf3e0dd 38521 * gnatsym.adb:
19f0526a
AC
38522 Implement new scheme with reference symbol file and symbol policy.
38523
38524 * g-os_lib.ads: (Is_Directory): Clarify comment
38525
385262003-11-19 Robert Dewar <dewar@gnat.com>
38527
38528 * atree.adb: Move New_Copy_Tree global variables to head of package
38529
38530 * errout.adb: Minor reformatting
38531
385322003-11-19 Javier Miranda <miranda@gnat.com>
38533
38534 * sem_ch4.adb: (Diagnose_Call): Improve error message.
38535 Add reference to Ada0Y (AI-50217)
38536
38537 * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
38538 sem_util.adb: Add reference to AI-50217
38539
38540 * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
38541
38542 * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
38543
38544 * sem_aggr.adb: Complete documentation of AI-287 changes
38545
38546 * par-ch4.adb: Document previous changes.
38547
38548 * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
38549 sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
38550 Ada0Y (AI-50217)
38551
38552 * exp_aggr.adb: Add references to AI-287 in previous changes
38553
385542003-11-19 Ed Schonberg <schonberg@gnat.com>
38555
fbf3e0dd 38556 * exp_ch6.adb:
19f0526a
AC
38557 (Add_Call_By_Copy_Node): Do not original node of rewritten expression
38558 in the rewriting is the result of an inlined call.
38559
38560 * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
38561 parameter is a type conversion, use original node to construct the
38562 post-call assignment, because expression may have been rewritten, e.g.
38563 if it is a packed array.
38564
fbf3e0dd 38565 * sem_attr.adb:
19f0526a
AC
38566 (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
38567 body, just as it is in an instance.
38568 Categorization routines
38569
38570 * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
38571 Instantiate_Object): Set proper sloc reference for message on missing
38572 actual.
38573
385742003-11-19 Thomas Quinot <quinot@act-europe.fr>
38575
38576 * Makefile.in: Add FreeBSD libgnat pairs.
38577
38578 * usage.adb: Fix typo in usage message.
38579
385802003-11-19 Jerome Guitton <guitton@act-europe.fr>
38581
38582 * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
38583 s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
38584 pragma Thread_Body.
38585 Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
38586
38587 * s-thread.adb: This file is now a dummy implementation of
38588 System.Thread.
38589
385902003-11-19 Sergey Rybin <rybin@act-europe.fr>
38591
38592 * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
38593
385942003-11-19 Emmanuel Briot <briot@act-europe.fr>
38595
38596 * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
38597 instanciation references in the parent type description.
38598
0d77ab84
AC
385992003-11-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
38600
38601 * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
38602
38603 * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
38604 TYPE_PRECISION directly from esize.
38605
386062003-11-18 Thomas Quinot <quinot@act-europe.fr>
38607
fbf3e0dd 38608 * cstreams.c:
0d77ab84
AC
38609 Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
38610
38611 * init.c: Initialization routines for FreeBSD
38612
38613 * link.c: Link info for FreeBSD
38614
38615 * sysdep.c: Add the case of FreeBSD
38616
cb7a5092
AC
386172003-11-17 Jerome Guitton <guitton@act-europe.fr>
38618
38619 * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
38620 already called in System.Threads.
38621
38622 * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
38623 environment task, as it has been moved to System.Threads.Initialization.
38624
386252003-11-17 Arnaud Charlet <charlet@act-europe.fr>
38626
38627 * adaint.c (__gnatlib_install_locks): Only reference
38628 __gnat_install_locks on VMS, since other platforms can avoid using
38629 --enable-threads=gnat
38630
386312003-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
38632
38633 * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
38634
38635 * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
38636 TYPE_PACKED_ARRAY_TYPE_P.
38637 (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
38638
38639 Part of PR ada/12806
38640 * utils.c (float_type_for_precision): Renamed from float_type_for_size.
38641 Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
38642
386432003-11-17 Vincent Celier <celier@gnat.com>
38644
38645 * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
38646 to False.
38647 Do not set exit status to Failure when Warning is True.
38648 (Gnatchop): Make errors "no compilation units found" and
38649 "no source files written" warnings only.
38650
38651 * make.adb (Gnatmake): When using a project file, set
38652 Look_In_Primary_Dir to False.
38653 (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
38654 and Local_Configuration_Pragmas in the project where they are declared
38655 not an extending project which might have inherited them.
38656
38657 * osint.adb (Locate_File): If Name is already an absolute path, do not
38658 look for a directory.
38659
38660 * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
38661 -gnats (Check_Syntax) is used, issue only a warning, not an error.
38662
38663 * prj.adb (Register_Default_Naming_Scheme): Add new component Project
38664 in objects of type Variable_Value.
38665
38666 * prj.ads: (Variable_Value): New component Project
38667
38668 * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
38669 is in a project extended by Project.
38670
38671 * prj-proc.adb (Add_Attributes): New parameter Project. Set component
38672 Project of Variable_Values to this new parameter value.
38673 (Expression): Set component Project of Variable_Values.
38674 (Process_Declarative_Items): Call Add_Attributes with parameter Project.
38675 Set the component Project in array elements.
38676
386772003-11-17 Sergey Rybin <rybin@act-europe.fr>
38678
38679 * errout.adb: (Initialize): Add initialization for error nodes.
38680
38681 * sem_ch12.adb (Initialize): Add missing initializations for
38682 Exchanged_Views and Hidden_Entities.
38683
386842003-11-17 Ed Schonberg <schonberg@gnat.com>
38685
38686 * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
38687 already instantiated tree for use in subsequent inlining.
38688 (Analyze_Associations, Instantiate_Formal_Subprogram,
38689 Instantiate_Object): improve error message for mismatch in
38690 instantiations.
38691
38692 * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
38693 instantiations of subprograms declared in instances.
38694
386952003-11-17 Javier Miranda <miranda@gnat.com>
38696
38697 * sem_ch4.adb (Analyze_Allocator): Previous modification must be
38698 executed only under the Extensions_Allowed flag.
38699
387002003-11-17 Robert Dewar <dewar@gnat.com>
38701
38702 * a-exexda.adb (Address_Image): Fix documentation to indicate leading
38703 zeroes suppressed.
38704 (Address_Image): Fix bug of returning 0x instead of 0x0
38705 Minor reformatting (function specs).
38706
38707 * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
38708 (missed case of 33-63)
38709
38710 * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
38711
38712 * s-thread.adb: Add comments for pragma Restriction
38713
38714 * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
38715 sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
38716
387172003-11-17 Ed Falis <falis@gnat.com>
38718
38719 * s-thread.adb: Added No_Tasking restriction for this implementation.
38720
387212003-11-17 Emmanuel Briot <briot@act-europe.fr>
38722
38723 * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
38724 instanciation references in the parent type description.
38725
387262003-11-17 GNAT Script <nobody@gnat.com>
38727
38728 * Make-lang.in: Makefile automatically updated
38729
7d60db05
JM
387302003-11-16 Jason Merrill <jason@redhat.com>
38731
38732 * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
38733 and TAGS files that include them for each front end.
38734
c0040397
AJ
387352003-11-14 Andreas Jaeger <aj@suse.de>
38736
a477ab83 38737 * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
fbf3e0dd 38738 is the canonical version.
a477ab83
AJ
38739 * misc.c (gnat_handle_option): Likewise.
38740
c0040397
AJ
38741 * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
38742
38743 * 5nsystem.ads: New file for x86_64-linux-gnu.
38744
95a6aaf9
AC
387452003-11-14 Arnaud Charlet <charlet@act-europe.fr>
38746
262cc585 38747 * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
95a6aaf9 38748
4a4fe537
AC
38749 * comperr.adb: Fix logic in previous change.
38750
65356e64
AC
387512003-11-13 Vincent Celier <celier@gnat.com>
38752
38753 * 5bml-tgt.adb (Build_Dynamic_Library): Use
38754 Osint.Include_Dir_Default_Prefix instead of
38755 Sdefault.Include_Dir_Default_Name.
38756
38757 * gnatlbr.adb: Update Copyright notice
38758 (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
38759 Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
38760 instead of Sdefault.Object_Dir_Default_Name
38761
c0040397 38762 * gnatlink.adb:
65356e64
AC
38763 (Process_Binder_File): Never suppress the option following -Xlinker
38764
c0040397 38765 * mdll-utl.adb:
65356e64
AC
38766 (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
38767 Sdefault.Object_Dir_Default_Name.
38768
c0040397 38769 * osint.ads, osint.adb:
65356e64
AC
38770 (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
38771 Minor reformatting.
38772
38773 * vms_conv.ads: Minor reformating
38774 Remove GNAT STANDARD and GNAT PSTA
38775
c0040397 38776 * vms_conv.adb:
65356e64
AC
38777 Allow GNAT MAKE to have several files on the command line.
38778 (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
38779 Sdefault.Object_Dir_Default_Name.
38780 Minor Reformating
38781 Remove data for GNAT STANDARD
38782
c0040397 38783 * vms_data.ads:
65356e64
AC
38784 Add new compiler qualifier /PRINT_STANDARD (-gnatS)
38785 Remove data for GNAT STANDARD
38786 Remove options and documentation for -gnatwb/-gnatwB: these warning
38787 options no longer exist.
38788
387892003-11-13 Ed Falis <falis@gnat.com>
38790
38791 * 5zthrini.adb: (Init_RTS): Made visible
38792
c0040397 38793 * 5zthrini.adb:
65356e64
AC
38794 (Register): Removed unnecessary call to taskVarGet that checked whether
38795 an ATSD was already set as a task var for the argument thread.
38796
c0040397 38797 * s-thread.adb:
65356e64
AC
38798 Updated comment to reflect that this is a VxWorks version
38799 Added context clause for System.Threads.Initialization
38800 Added call to System.Threads.Initialization.Init_RTS
38801
388022003-11-13 Jerome Guitton <guitton@act-europe.fr>
38803
c0040397 38804 * 5zthrini.adb:
65356e64
AC
38805 (Init_RTS): New procedure, for the initialization of the run-time lib.
38806
c0040397 38807 * s-thread.adb:
65356e64
AC
38808 Remove dependancy on System.Init, so that this file can be used in the
38809 AE653 sequential run-time lib.
38810
388112003-11-13 Robert Dewar <dewar@gnat.com>
38812
38813 * bindgen.adb: Minor reformatting
38814
388152003-11-13 Ed Schonberg <schonberg@gnat.com>
38816
c0040397 38817 * checks.adb:
65356e64
AC
38818 (Apply_Discriminant_Check): Do no apply check if target type is derived
38819 from source type with no applicable constraint.
38820
c0040397 38821 * lib-writ.adb:
65356e64
AC
38822 (Ensure_System_Dependency): Do not apply the style checks that may have
38823 been specified for the main unit.
38824
c0040397 38825 * sem_ch8.adb:
65356e64
AC
38826 (Find_Selected_Component): Further improvement in error message, with
38827 RM reference.
38828
c0040397 38829 * sem_res.adb:
65356e64
AC
38830 (Resolve): Handle properly the case of an illegal overloaded protected
38831 procedure.
38832
388332003-11-13 Javier Miranda <miranda@gnat.com>
38834
c0040397 38835 * exp_aggr.adb:
65356e64
AC
38836 (Has_Default_Init_Comps): New function to check the presence of
38837 default initialization in an aggregate.
38838 (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
38839 extension aggregate of a limited record. In addition, a new formal
38840 was added to do not initialize the record controller (if any) during
38841 this recursive expansion of ancestors.
38842 (Init_Controller): Add support for limited record components.
38843 (Expand_Record_Aggregate): In case of default initialized components
38844 convert the aggregate into a set of assignments.
38845
38846 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
38847 describing the new syntax.
38848 Nothing else needed to be done because this subprogram delegates part of
38849 its work to P_Precord_Or_Array_Component_Association.
38850 (P_Record_Or_Array_Component_Association): Give support to the new
38851 syntax for default initialization of components.
38852
c0040397 38853 * sem_aggr.adb:
65356e64
AC
38854 (Resolve_Aggregate): Relax the strictness of the frontend in case of
38855 limited aggregates.
38856 (Resolve_Record_Aggregate): Give support to default initialized
38857 components.
38858 (Get_Value): In case of default initialized components, duplicate
38859 the corresponding default expression (from the record type
38860 declaration). In case of default initialization in the *others*
38861 choice, do not check that all components have the same type.
38862 (Resolve_Extension_Aggregate): Give support to limited extension
38863 aggregates.
38864
c0040397 38865 * sem_ch3.adb:
65356e64
AC
38866 (Check_Initialization): Relax the strictness of the front-end in case
38867 of aggregate and extension aggregates. This test is now done in
38868 Get_Value in a per-component manner.
38869
38870 * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
38871 expression corresponds to a limited aggregate. This test is now done
38872 in Get_Value.
38873
38874 * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
38875 Box_Present flag.
38876
38877 * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
38878 present in an N_Component_Association node
38879
388802003-11-13 Thomas Quinot <quinot@act-europe.fr>
38881
38882 * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
38883 type-conformant entry only if they are homographs.
38884
388852003-11-13 GNAT Script <nobody@gnat.com>
38886
38887 * Make-lang.in: Makefile automatically updated
38888
49add53f
RO
388892003-11-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
38890
38891 * adadecode.c: Use <> form of include for ctype.h.
38892 * sysdep.c [IN_RTS]: Use <> form of include for time.h.
38893
94bae1cc
RO
388942003-11-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
38895
38896 * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
38897 Works around PR middle-end/6552.
38898
463f452c
AC
388992003-11-10 Ed Falis <falis@gnat.com>
38900
38901 * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
38902
38903 * 5zinit.adb: (Install_Handler): Moved back to spec
38904 (Install_Signal_Handlers): Deleted
38905
38906 * 5zthrini.adb: Added context clause for System.Storage_Elements
38907 (Register): Only handles creation of taskVar; initialization moved to
38908 Thread_Body_Enter.
38909 (Reset_TSD): Deleted; replaced by Thread_Body_Enter
38910 Added declaration of environment task secondary stack and
38911 initialization.
38912
38913 * s-thread.adb: Implement bodies for thread body processing
38914
c0040397 38915 * s-thread.ads:
463f452c
AC
38916 Added comment identifying supported targets for pragma Thread_Body.
38917
389182003-11-10 Pascal Obry <obry@gnat.com>
38919
38920 * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
38921 GNAT_MAX_PATH_LEN.
38922
c0040397 38923 * s-fileio.adb:
463f452c
AC
38924 (Open): Properly check for string length before copying into the buffer.
38925 Raises Name_Error if buffer is too small. Note that this was a potential
38926 buffer overflow.
38927
389282003-11-10 Romain Berrendonner <berrendo@act-europe.fr>
38929
38930 * bindgen.adb, comperr.adb: Code clean ups.
38931 * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
38932
389332003-11-10 Sergey Rybin <rybin@act-europe.fr>
38934
38935 * gnat1drv.adb: Add call to Sem_Elim.Initialize.
38936
389372003-11-10 Vincent Celier <celier@gnat.com>
38938
c0040397 38939 * gprcmd.adb:
463f452c
AC
38940 (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
38941 installation.
38942
38943 * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
38944
38945 * prj.adb: (Project_Empty): Add new boolean component Virtual
38946
38947 * prj.ads: (Virtual_Prefix): New constant string
38948 (Project_Data): New boolean component Virtual
38949
38950 * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
38951 a library project is extended by a virtual extending project.
38952
c0040397 38953 * prj-part.adb:
463f452c
AC
38954 Modifications throughout to implement extending-all project, including:
38955 (Virtual_Hash, Processed_Hash): New hash tables
38956 (Create_Virtual_Extending_Project): New procedure
38957 (Look_For_Virtual_Projects_For): New procedure
38958
c0040397 38959 * prj-proc.adb:
463f452c
AC
38960 (Process): After checking the projects, if main project is an
38961 extending-all project, set the object directory of all virtual extending
38962 project to the object directory of the main project.
38963 Adjust error message when a virtual extending project has the same
38964 object directory as an project being extended.
38965 (Recursive_Process): If name starts with the virtual prefix, set Virtual
38966 to True in the project data.
38967
c0040397 38968 * prj-tree.adb:
463f452c
AC
38969 (Default_Project_Node): Add new boolean component Extending_All
38970 (Is_Extending_All): New function
38971 (Set_Is_Extending_All): New procedure
38972
38973 * prj-tree.ads: (Is_Extending_All): New function
38974 (Set_Is_Extending_All): New procedure
38975 (Project_Node_Record): New boolean component Extending_All
38976
38977 * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
38978
c0040397 38979 * vms_data.ads:
463f452c
AC
38980 Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
38981
38982 * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
38983 "gprcmd prefix" to define it.
38984
389852003-11-10 Thomas Quinot <quinot@act-europe.fr>
38986
38987 * einfo.ads: Fix a typo and remove an extraneous word in comments.
38988
c0040397 38989 * lib-load.adb:
463f452c
AC
38990 (Create_Dummy_Package_Unit): Set the scope of the entity for the
38991 created dummy package to Standard_Standard, not to itself, to
38992 defend other parts of the front-end against encoutering a cycle in
38993 the scope chain.
38994
c0040397 38995 * sem_ch10.adb:
463f452c
AC
38996 (Analyze_With_Clause): When setting the entities for the successive
38997 N_Expanded_Names that constitute the name of a child unit, do not
38998 attempt to go further than Standard_Standard in the chain of scopes.
38999 This case arises from the placeholder units created by
39000 Create_Dummy_Package_Unit in the case of a with_clause for a
39001 nonexistent child unit.
39002
390032003-11-10 Ed Schonberg <schonberg@gnat.com>
39004
c0040397 39005 * exp_ch6.adb:
463f452c
AC
39006 (Expand_Thread_Body): Place subprogram on scope stack, so that new
39007 declarations are given the proper scope.
39008
c0040397 39009 * sem_ch13.adb:
463f452c
AC
39010 (Check_Expr_Constants): Reject an expression that contains a constant
39011 created during expansion, and that appears after the object to which
39012 the address clause applies.
39013
39014 * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
39015 Analyze_Iteration_Scheme, to rewrite a loop parameter specification
39016 that uses 'Range of a function call with controlled components, so
39017 that the function result can be finalized before starting the loop.
39018
c0040397 39019 * sem_ch8.adb:
463f452c
AC
39020 (Find_Selected_Component): Improve error message when prefix is
39021 an implicit dereference of an incomplete type.
39022
390232003-11-10 Robert Dewar <dewar@gnat.com>
39024
39025 * opt.ads: New Print_Standard flag for -gnatS switch
39026
39027 * sem_ch13.adb: Remove some additional checks for unaligned arrays
39028
39029 * cstand.adb (Create_Standard): Print out package standard if -gnatS
39030 switch set
39031
39032 * debug.adb: Update doc for -gnatds to discuss relationship with new
39033 -gnatS flag
39034
39035 * sinfo.adb: Add new field Entity_Or_Associated_Node
39036
39037 * sinfo.ads: Add new field Entity_Or_Associated_Node
39038 Update documentation for Associated_Node and Entity fields to clarify
39039 relationship and usage.
39040
c0040397 39041 * sprint.adb:
463f452c
AC
39042 (Write_Id): Properly process Associated_Node field in generic template
39043
c0040397 39044 * switch-c.adb:
463f452c
AC
39045 Recognize new -gnatS switch for printing package Standard
39046 This replaces gnatpsta
39047
c0040397 39048 * usage.adb:
463f452c
AC
39049 Add line for new -gnatS switch for printing package Standard
39050 This replaces gnatpsta
39051
c77c5f2e
AJ
390522003-11-10 Andreas Jaeger <aj@suse.de>
39053
39054 * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
39055 integer.
39056
5c90f17f
AC
390572003-11-10 Arnaud Charlet <charlet@act-europe.fr>
39058
39059 * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
39060 by gnat1.
39061
139f0d1e
AC
390622003-11-10 Arnaud Charlet <charlet@act-europe.fr>
39063
39064 * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
39065 no longer needed.
39066
39067 * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
39068
39069 * sysdep.c: Add handling of cygwin.
39070
f3e4c05c
GS
390712003-11-10 GNAT Script <nobody@gnat.com>
39072
39073 * Make-lang.in: Makefile automatically updated
39074
2cdc8909
AC
390752003-11-10 Arnaud Charlet <charlet@act-europe.fr>
39076
39077 PR 12950
39078 * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
39079 functions. Used to handle dynamic prefix relocation, via set_std_prefix.
39080 Replace GNAT_ROOT by GCC_ROOT.
39081
39082 * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
39083
37783865
ZW
390842003-11-06 Zack Weinberg <zack@codesourcery.com>
39085
39086 * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
39087 and update for changed meaning of GET_MODE_BITSIZE.
39088
6bc1c519
AC
390892003-11-04 Doug Rupp <rupp@gnat.com>
39090
39091 * sysdep.c: Problem discovered during IA64 VMS port.
39092 [VMS] #include <unixio.h> to get proper prototypes.
39093
37783865 39094 * adaint.c:
6bc1c519
AC
39095 Issues discovered/problems fixed during IA64 VMS port.
39096 [VMS] #define _POSIX_EXIT for proper semantics.
39097 [VMS] #include <unixio.h> for proper prototypes.
39098 [VMS] (fork): #define IA64 version.
39099 (__gnat_os_exit): Remove unnecessary VMS specific code.
39100
391012003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39102
39103 Part of PR ada/12806
6bc1c519
AC
39104 * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
39105 tree, not integer.
39106
37783865 39107 * decl.c:
6bc1c519
AC
39108 (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
39109 not integer.
39110
39111 * targtyps.c, decl.c, misc.c,
39112 gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
39113 routines to work around change in FP sizing semantics in GCC.
39114
37783865 39115 * utils.c:
6bc1c519
AC
39116 (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
39117
39118 * gigi.h: (enumerate_modes): New function.
39119
39120 * Make-lang.in: (ada/misc.o): Add real.h.
39121
39122 * misc.c: (enumerate_modes): New function.
39123
391242003-11-04 Robert Dewar <dewar@gnat.com>
39125
39126 * 3vtrasym.adb: Minor reformatting
39127 Use terminology encoded/decoded name, rather than C++ specific notion
39128 of mangling (this is the terminology used throughout GNAT).
39129
39130 * einfo.h: Regenerated
39131
39132 * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
39133
37783865 39134 * exp_ch6.adb:
6bc1c519
AC
39135 (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
39136
39137 * par-prag.adb: Add dummy entry for Thread_Body pragma
39138
37783865 39139 * rtsfind.ads:
6bc1c519
AC
39140 Add entries for System.Threads entities for thread body processing
39141
37783865 39142 * sem_attr.adb:
6bc1c519
AC
39143 (Analyze_Pragma, Access attributes): Check these are not applied to a
39144 thread body, since this is not permitted
39145
39146 * sem_prag.adb: Add processing for Thread_Body pragma.
39147 Minor comment fix.
39148
37783865 39149 * sem_res.adb:
6bc1c519
AC
39150 (Resolve_Call): Check for incorrect attempt to call a thread body
39151 procedure with a direct call.
39152
39153 * snames.ads, snames.adb: Add entry for Thread_Body pragma
39154 Add names associated with thread body expansion
39155
39156 * snames.h: Add entry for Thread_Body pragma
39157
39158 * s-thread.adb: Add entries for thread body processing
39159 These are dummy bodies so far
39160
39161 * s-thread.ads: Add documentation on thread body handling.
39162 Add entries for thread body processing.
39163
391642003-11-04 Javier Miranda <miranda@gnat.com>
39165
37783865 39166 * sem_ch10.adb:
6bc1c519
AC
39167 (Build_Limited_Views): Return after posting an error in case of limited
39168 with_clause on subprograms, generics, instances or generic renamings
39169 (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
39170 on subprograms, generics, instances or generic renamings
39171
391722003-11-04 Arnaud Charlet <charlet@act-europe.fr>
39173
39174 * raise.c (setup_to_install): Correct mistake in last revision; two
39175 arguments out of order.
39176
39177 * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
39178 gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
39179 notice, missed in previous change.
39180 Remove trailing blanks and other style errors introduced in previous
39181 change.
39182
391832003-11-04 Olivier Hainque <hainque@act-europe.fr>
39184
39185 * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
39186 rid of the wrapper for a LJM type, ensuring we don't do that if the
39187 field is addressable. This avoids potential low level type view
39188 mismatches later on, for instance in a by-reference argument passing
39189 process.
39190
391912003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39192
39193 * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
39194 aligned at byte boundary.
39195
391962003-11-04 Joel Brobecker <brobecker@gnat.com>
39197
39198 * decl.c (components_to_record): Do not delete the empty variants from
39199 the end of the union type.
39200
392012003-11-04 Ed Schonberg <schonberg@gnat.com>
39202
39203 * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
39204 operation for a derived type, an explicit declaration may use a local
39205 subtype of Boolean.
39206
392072003-11-04 Vincent Celier <celier@gnat.com>
39208
39209 * make.adb (Gnatmake): Allow main sources on the command line with a
39210 library project when it is only for compilation (no binding or
39211 linking).
39212
487e9fff
RO
392132003-11-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
39214
39215 * Makefile.in: Remove many duplicate variables.
39216
63069342
KC
392172003-11-03 Kelley Cook <kcook@gcc.gnu.org>
39218
39219 * Make-lang.in (dvi): Move targets to $(docobjdir).
39220 (gnat_ug_vms.dvi): Simplify rule and adjust target.
39221 (gnat_ug_wnt.dvi): Likewise.
39222 (gnat_ug_unx.dvi): Likewise.
39223 (gnat_ug_vxw.dvi): Likewise.
39224 (gnat_rm.dvi): Likewise.
39225 (gnat-style.dvi): Likewise.
39226
c2edc52b
KC
392272003-10-31 Kelley Cook <kcook@gcc.gnu.org>
39228
39229 * gigi.h: Missed commit from update for C90.
39230
14df9585
KC
392312003-10-31 Kelley Cook <kcook@gcc.gnu.org>
39232
39233 * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
39234
acd8e984
AS
392352003-10-31 Andreas Schwab <schwab@suse.de>
39236
39237 * raise.c (get_action_description_for): Fix typo in last change.
39238
b2c62c45
NN
392392003-10-31 Nathanael Nerode <neroden@gcc.gnu.org>
39240
39241 PR ada/12761
39242 * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
39243 T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
39244
9373164a
KC
392452003-10-30 Kelley Cook <kcook@gcc.gnu.org>
39246
39247 * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
39248 ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
39249 gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
39250 sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
39251 trans.c, utils.c, utils2.c: Convert function prototypes to C90.
39252
bde58e32
AC
392532003-10-30 Vasiliy Fofanov <fofanov@act-europe.fr>
39254
37783865 39255 * 3vtrasym.adb:
bde58e32
AC
39256 Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
39257 numbers when symbol name is too long.
39258
392592003-10-30 Ed Falis <falis@gnat.com>
39260
39261 * g-signal.ads, g-signal.adb: New files
39262
39263 * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
39264
39265 * Makefile.rtl: Introduce GNAT.Signals
39266
392672003-10-30 Robert Dewar <dewar@gnat.com>
39268
39269 * freeze.adb: Minor reformatting
39270
39271 * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
39272
37783865
ZW
39273 * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
39274 par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
bde58e32
AC
39275 New handling of Id_Check parameter to improve recognition of keywords
39276 used as identifiers.
39277 Update copyright notice to include 2003
39278
657a9dd9
AC
392792003-10-29 Robert Dewar <dewar@gnat.com>
39280
39281 * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
39282 sem_ch10.adb: Minor reformatting
39283
39284 * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
39285 (Expand_Assign_Record): Test right hand side for bit unaligned as well
39286
392872003-10-29 Vasiliy Fofanov <fofanov@act-europe.fr>
39288
37783865 39289 * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
657a9dd9
AC
39290 Support for TBK$SYMBOLIZE-based symbolic traceback.
39291
392922003-10-29 Jose Ruiz <ruiz@act-europe.fr>
39293
37783865 39294 * exp_disp.adb:
657a9dd9
AC
39295 Revert previous change, that did not work well when pragma No_Run_Time
39296 was used in conjunction with a run-time other than ZFP.
39297
392982003-10-29 Vincent Celier <celier@gnat.com>
39299
37783865 39300 * make.adb:
657a9dd9
AC
39301 (Gnatmake): When there are no Ada mains in attribute Main, disable the
39302 bind and link steps only is switch -z is not used.
39303
393042003-10-29 Arnaud Charlet <charlet@act-europe.fr>
39305
39306 * Makefile.generic: Remove duplicated setting of CC.
39307
39308 * Makefile.prolog: Set CC to gcc by default, to override make's
39309 default (cc).
39310
39311 * einfo.h: Regenerated.
39312
393132003-10-29 Ed Schonberg <schonberg@gnat.com>
39314
39315 * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
39316 current body, after compiling subunit.
39317
39318 * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
39319 when in deleted code, because gigi needs properly ordered freeze
39320 actions to annotate types.
39321
39322 * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
39323 prevent the premature freezing of record type that contains
39324 subcomponents with a private type that does not yet have a completion.
39325
393262003-10-29 Javier Miranda <miranda@gnat.com>
39327
37783865 39328 * sem_ch12.adb:
657a9dd9
AC
39329 (Analyze_Package_Instantiation): Check that instances can not be used in
39330 limited with_clauses.
39331
37783865 39332 * sem_ch8.adb:
657a9dd9
AC
39333 (Analyze_Package_Renaming): Check that limited withed packages cannot
39334 be renamed. Improve text on error messages related to limited
39335 with_clauses.
39336
39337 * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
39338
39339 * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
39340 Update copyright notice.
39341
39342 * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
39343 (Install_Limited_Context_Clauses): New subprogram that isolates all the
39344 checks required for limited context_clauses and installs the limited
39345 view.
39346 (Install_Limited_Withed_Unit): Complete its documentation.
39347 (Analyze_Context): Check that limited with_clauses are only allowed in
39348 package specs.
39349 (Install_Context): Call Install_Limited_Context_Clauses after the
39350 parents have been installed.
39351 (Install_Limited_Withed_Unit): Add documentation. Mark the installed
39352 package as 'From_With_Type'; this mark indicates that the limited view
39353 is installed. Used to check bad usages of limited with_clauses.
39354 (Build_Limited_Views): Do not add shadow entities to the scope's list
39355 of entities. Do not add real entities to the Non_Limited_Views chain.
39356 Improve error notification.
39357 (Remove_Context_Clauses): Remove context clauses in two phases:
39358 limited views first and regular views later (to maintain the
39359 stack model).
39360 (Remove_Limited_With_Clause): If the package is analyzed then reinstall
39361 its visible entities.
39362
393632003-10-29 Thomas Quinot <quinot@act-europe.fr>
39364
39365 * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
39366 with any type that Is_Fixed_Point_Type.
39367
39368 * sinfo.ads: Fix documentation for Associated_Node attribute.
39369
393702003-10-29 Sergey Rybin <rybin@act-europe.fr>
39371
39372 * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
39373 both '-gnatc' and '-gnatt' are specified.
39374
39375 * atree.adb (Initialize): Add initialization for Node_Count (set to
39376 zero).
39377
393782003-10-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39379
39380 * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
39381 do not consider as Pure.
39382
39383 Part of implementation of function-at-a-time:
39384
39385 * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
39386 (tree_transform): Add new argument to build_component_ref.
39387 (tree_transform, case N_Assignment_Statement): Make and return an
39388 EXPR_STMT.
39389 (tree_transform): If result IS_STMT, set flags and return it.
39390 (gnat_expand_stmt, set_lineno_from_sloc): New functions.
39391
39392 * utils2.c (build_simple_component_ref, build_component_ref): Add new
39393 arg, NO_FOLD_P.
39394 (build_binary_op, case EQ_EXPR): Pass additional arg to it.
39395 (build_allocator): Likewise.
39396
39397 * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
39398 Add new arg to build_component_ref.
39399 (maybe_unconstrained_array, unchecked_convert): Likewise.
39400
39401 * ada-tree.def (EXPR_STMT): New code.
39402
39403 * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
39404
39405 * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
39406 build_component_ref calls.
39407
39408 * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
39409
39410 * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
39411 (build_component_ref): Add new argument, NO_FOLD_P.
39412
ecad994d
AC
394132003-10-27 Arnaud Charlet <charlet@act-europe.fr>
39414
39415 * Makefile.generic: Add missing substitution on object_deps handling.
39416
6f7f72f9 39417 PR ada/5909
ecad994d
AC
39418 * Make-lang.in (check-ada): Enable ACATS test suite.
39419
394202003-10-27 Robert Dewar <dewar@gnat.com>
39421
37783865 39422 * exp_ch3.adb:
ecad994d
AC
39423 (Freeze_Array_Type): We do not need an initialization routine for types
39424 derived from String or Wide_String. They should be treated the same
39425 as String and Wide_String themselves. This caused problems with the
39426 use of Initialize_Scalars.
39427
37783865 39428 * exp_ch5.adb:
ecad994d
AC
39429 (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
39430 composites. This allows use of component clauses that are not byte
39431 aligned.
39432
37783865 39433 * sem_prag.adb:
ecad994d
AC
39434 (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
39435 is an attempt to pack an array of atomic objects.
39436
39437 * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
39438
394392003-10-27 Pascal Obry <obry@gnat.com>
39440
37783865 39441 * g-dirope.adb:
ecad994d
AC
39442 (Basename): Check for drive letters in a pathname only on DOS based OS.
39443
394442003-10-27 Vincent Celier <celier@gnat.com>
39445
37783865 39446 * make.adb:
ecad994d
AC
39447 (Gnatmake): When unable to change dir to the object dir, display the
39448 content of the parent dir of the obj dir, to try to understand why this
39449 happens.
39450
394512003-10-27 GNAT Script <nobody@gnat.com>
39452
39453 * Make-lang.in: Makefile automatically updated
39454
394552003-10-27 Ed Schonberg <schonberg@gnat.com>
39456
37783865 39457 * sem_ch12.adb:
ecad994d
AC
39458 (Inline_Instance_Body): Indicate that the save/restore of use_clauses
39459 should not be done in Save/Restore_Scope_Stack, because it is performed
39460 locally.
39461
37783865 39462 * sem_ch8.adb:
ecad994d
AC
39463 (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
39464 whether use clauses should be removed/restored.
39465
37783865 39466 * sem_ch8.ads:
ecad994d
AC
39467 (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
39468 whether use clauses should be removed/restored.
39469
b6b3c138
AJ
394702003-10-26 Andreas Jaeger <aj@suse.de>
39471
39472 * Makefile.in: Remove duplicated lines.
39473
b6d83931
AC
394742003-10-24 Arnaud Charlet <charlet@act-europe.fr>
39475
39476 * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
39477 minimize the differences with ACT tree.
39478
39479 * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
39480 gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
39481 Gnatvsn.Gnat_Static_Version_String to reduce differences between
39482 ACT and FSF trees.
39483
394842003-10-24 Pascal Obry <obry@gnat.com>
39485
6f7f72f9 39486 PR ada/12014
b6d83931
AC
39487 * adadecode.c (ostrcpy): New function.
39488 (__gnat_decode): Use ostrcpy of strcpy.
39489 (has_prefix): Set first parameter a const.
39490 (has_suffix): Set first parameter a const.
39491 Update copyright notice. Fix source name in header.
39492 Removes a trailing space.
b6d83931
AC
39493
394942003-10-24 Jose Ruiz <ruiz@act-europe.fr>
39495
b6b3c138 39496 * exp_disp.adb:
b6d83931
AC
39497 Remove the test against being in No_Run_Time_Mode before generating a
39498 call to Register_Tag. It is redundant with the test against the
39499 availability of the function Register_Tag.
39500
395012003-10-24 Vincent Celier <celier@gnat.com>
39502
39503 * g-catiio.adb: (Month_Name): Correct spelling of February
39504
39505 * make.adb: (Mains): New package
39506 (Initialize): Call Mains.Delete
39507 (Gnatmake): Check that each main on the command line is a source of a
39508 project file and, if there are several mains, each of them is a source
39509 of the same project file.
39510 (Gnatmake): When a foreign language is specified in attribute Languages,
39511 no main is specified on the command line and attribute Mains is not
39512 empty, only build the Ada main. If there is no Ada main, just compile
39513 the Ada sources and their closure.
39514 (Gnatmake): If a main is specified on the command line with directory
39515 information, check that the source exists and, if it does, that the path
39516 is the actual path of a source of a project.
39517
b6b3c138 39518 * prj-env.adb:
b6d83931
AC
39519 (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
39520 Full_Path is True, return the full path instead of the simple file name.
39521 (Project_Of): New function
39522
b6b3c138 39523 * prj-env.ads:
b6d83931
AC
39524 (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
39525 defaulted to False.
39526 (Project_Of): New function
39527
395282003-10-24 Arnaud Charlet <charlet@act-europe.fr>
39529
b6b3c138 39530 * Makefile.generic:
b6d83931
AC
39531 Ensure objects of main project are always checked and rebuilt if needed.
39532 Set CC to gcc by default.
39533 Prepare new handling of link by creating a global archive (not activated
39534 yet).
39535
39536 * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
39537 stringt.h: Update copyright notice. Remove trailing blanks.
39538 Fix source name in header.
39539
395402003-10-24 Robert Dewar <dewar@gnat.com>
39541
39542 * sem_ch12.adb: Minor reformatting
39543
b6b3c138 39544 * sem_ch3.adb:
b6d83931
AC
39545 Minor reformatting (including new function return style throughout)
39546
b6b3c138 39547 * sem_ch3.ads:
b6d83931
AC
39548 Minor reformatting (including new function return style throughout)
39549
395502003-10-24 Arnaud Charlet <charlet@act-europe.fr>
39551
39552 * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
39553 stringt.h: Update copyright notice. Remove trailing blanks.
39554 Fix source name in header.
39555
395562003-10-24 GNAT Script <nobody@gnat.com>
39557
39558 * Make-lang.in: Makefile automatically updated
39559
b4e2d709
NN
395602003-10-23 Nathanael Nerode <neroden@gcc.gnu.org>
39561
39562 * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
39563 stringt.h: Convert to ISO C90 declarations and definitions.
39564
9d7d51be
AC
395652003-10-23 Thomas Quinot <quinot@act-europe.fr>
39566
6f7f72f9 39567 PR ada/11978
9d7d51be
AC
39568 * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
39569 External_Tag attribute definition clauses.
39570
395712003-10-23 Ed Schonberg <schonberg@gnat.com>
39572
6f7f72f9 39573 PR ada/7613
9d7d51be
AC
39574 * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
39575 child unit, generate a fully qualified name to avoid spurious errors
39576 when the context contains renamings of different child units with
39577 the same simple name.
39578
39579 * exp_dbug.ads: Add documentation on name qualification for renamings
39580 of child units.
39581
395822003-10-23 Robert Dewar <dewar@gnat.com>
39583
39584 * g-regpat.ads, g-regpat.adb: Minor reformatting
39585
395862003-10-23 Jose Ruiz <ruiz@act-europe.fr>
39587
39588 * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
39589
395902003-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39591
39592 * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
39593 Machine call.
39594
39595 * urealp.h: (Machine): Update to proper definition.
39596
6d244bbe
AC
395972003-10-23 Arnaud Charlet <charlet@act-europe.fr>
39598
39599 * init.c, adaint.c: Minor reformatting.
39600
8f4eb34b
DS
396012003-10-23 Danny Smith <dannysmith@users.sourceforge.net>
39602
6d244bbe 39603 * adaint.c (w32_epoch_offset): Define static const at file level.
8f4eb34b
DS
39604 (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
39605 rather than t_create, t_access in call to GetFileTime. Use union
39606 to convert between FILETIME and unsigned long long.
39607 (__gnat_file_time_name): Test for invalid file handle.
39608 (__gnat_set_filetime_name): Support win32 targets using
39609 w32api SetFileTime.
39610
25412599
DS
396112003-10-22 Danny Smith <dannysmith@users.sourceforge.net>
39612
39613 * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
39614
39615 * ctrl_c.c (__gnat_int_handler): Remove declaration.
39616
39617 * decl.c (creat_concat_name): Const-ify prefix.
39618
39619 * adaint.c: Include ctype.h if __MINGW32__.
39620 (__gnat_readlink): Mark arguments as possibly unused.
39621 (__gnat_symlink): Likewise.
39622 (__gnat_is_symbolic_link): Likewise.
39623 (__gnat_portable_spawn): Likewise. Cast last arg of spawnvp to match
39624 declaration
b6b3c138 39625 (__gnat_file_time_name): Don't declare struct stat statbuf when
25412599
DS
39626 not needed.
39627 (__gnat_is_absolute_path): Add parenthesis around condition of
39628 'if' statement to avoid warning.
39629 (__gnat_plist_init): Specify void as parameter.
39630 (plist_enter): Likewise.
39631 (plist_leave): Likewise.
39632 (remove_handle): Make static. Initialize prev.
39633
698a5e79
AC
396342003-10-22 Arnaud Charlet <charlet@act-europe.fr>
39635
6f7f72f9
EB
39636 PR ada/10110
39637 * Makefile.in: Disable build of gnatpsta.
698a5e79
AC
39638 * cstreams.c (__gnat_full_name): Minor improvements and clean up
39639 of previous change.
39640
e97c30aa
RO
396412003-10-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
39642
39643 * tracebak.c (MAX): Avoid redefinition warning.
39644
39645 * init.c [sgi] (__gnat_error_handler): Remove i, unused.
39646 Change msg to const char *.
39647 (__gnat_install_handler): Remove ss, unused.
39648 [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
39649 to const char *.
39650 * cstreams.c (__gnat_full_name): Declare p only when used.
39651 (__gnat_full_name) [sgi] Return buffer.
39652
65f1ebd1
AC
396532003-10-22 Arnaud Charlet <charlet@act-europe.fr>
39654
39655 * mingw32.h: New file.
0c644933
AC
39656 * gnat_wrapper.adb: New file.
39657
6d244bbe 396582003-10-22 Jerome Roussel <roussel@act-europe.fr>
0c644933
AC
39659
39660 * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
39661 string match a pre compiled regular expression (the corresponding
39662 version of the function working on a raw regular expression)
39663 Fix typos in various comments
39664 Update copyright notice in spec
39665
6d244bbe 396662003-10-21 Gary Dismukes <dismukes@gnat.com>
0c644933 39667
b6b3c138 39668 * exp_ch3.adb:
0c644933
AC
39669 (Component_Needs_Simple_Initialization): Return False when the type is a
39670 packed bit array. Revise spec comments to document this case.
39671
b6b3c138 39672 * exp_prag.adb:
0c644933
AC
39673 (Expand_Pragma_Import): Set any expression on the imported object to
39674 empty to avoid initializing imported objects (in particular this
39675 covers the case of zero-initialization of bit arrays).
39676 Update copyright notice.
39677
6d244bbe 396782003-10-21 Ed Schonberg <schonberg@gnat.com>
0c644933 39679
b6b3c138 39680 * sem_ch12.adb:
0c644933
AC
39681 (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
39682 a subunit is missing.
39683 (Instantiate_Subprogram_Body): If body of function is missing, set type
39684 of return expression explicitly in dummy body, to prevent cascaded
39685 errors when a subunit is missing.
39686 Fixes PR 5677.
39687
b6b3c138 39688 * sem_ch3.adb:
0c644933
AC
39689 (Access_Subprogram_Declaration): Verify that return type is valid.
39690 Fixes PR 8693.
39691
b6b3c138 39692 * sem_elab.adb:
0c644933
AC
39693 (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
39694 generic.
39695 Fixes PR 12318.
39696
b6b3c138 39697 * sem_util.adb:
0c644933
AC
39698 (Corresponding_Discriminant): If the scope of the discriminant is a
39699 private type without discriminant, use its full view.
39700 Fixes PR 8247.
65f1ebd1 39701
fbf5a39b
AC
397022003-10-21 Arnaud Charlet <charlet@act-europe.fr>
39703
39704 * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
39705 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
39706 3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
39707 55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
39708 56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
39709 59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
39710 5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
39711 5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
39712 5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
39713 5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
39714 5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
39715 5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
39716 5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
39717 5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
39718 7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
39719 a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
39720 a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
39721 a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
39722 bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
39723 erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
39724 err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
39725 g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
39726 g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
39727 g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
39728 g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
39729 g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
39730 g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
39731 gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
39732 g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
39733 g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
39734 i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
39735 prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
39736 prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
39737 s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
39738 s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
39739 s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
39740 s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
39741 s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
39742 s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
39743 s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
39744 s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
39745 socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
39746 s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
39747 s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
39748 s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
39749 styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
39750 s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
39751 tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
39752 vms_conv.ads, vms_conv.adb, vms_data.ads,
39753 vxaddr2line.adb: Files added. Merge with ACT tree.
39754
39755 * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
39756 5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
39757 5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
39758 5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
39759 g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
39760 s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
39761 s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
39762 s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
39763 s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
39764 s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
39765
39766 * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
39767 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
39768 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
39769 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
39770 4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
39771 4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
39772 4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
39773 4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
39774 51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
39775 53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
39776 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
39777 5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
39778 5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
39779 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
39780 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
39781 5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
39782 5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
39783 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
39784 5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
39785 5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
39786 5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
39787 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
39788 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
39789 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
39790 5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
39791 5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
39792 5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
39793 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
39794 5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
39795 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
39796 5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
39797 5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
39798 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
39799 5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
39800 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
39801 7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
39802 7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
39803 a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
39804 a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
39805 a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
39806 a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
39807 a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
39808 ali.adb, ali.ads, ali-util.adb, ali-util.ads,
39809 a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
39810 a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
39811 a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
39812 a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
39813 a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
39814 a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
39815 a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
39816 a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
39817 a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
39818 a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
39819 a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
39820 a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
39821 atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
39822 a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
39823 a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
39824 bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
39825 checks.adb, checks.ads, cio.c, comperr.adb,
39826 comperr.ads, csets.adb, cstand.adb, cstreams.c,
39827 debug_a.adb, debug_a.ads, debug.adb, decl.c,
39828 einfo.adb, einfo.ads, errout.adb, errout.ads,
39829 eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
39830 expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
39831 exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
39832 exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
39833 exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
39834 exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
39835 exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
39836 exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
39837 exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
39838 fe.h, fmap.adb, fmap.ads, fname.adb,
39839 fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
39840 freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
39841 g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
39842 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
39843 g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
39844 g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
39845 g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
39846 g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
39847 g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
39848 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
39849 g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
39850 g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
39851 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
39852 g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
39853 gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
39854 gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
39855 gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
39856 gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
39857 gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
39858 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
39859 g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
39860 g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
39861 g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
39862 g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
39863 g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
39864 g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
39865 g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
39866 i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
39867 i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
39868 inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
39869 itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
39870 layout.adb, lib.adb, lib.ads, lib-list.adb,
39871 lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
39872 lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
39873 link.c, live.adb, make.adb, make.ads,
39874 Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
39875 mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
39876 mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
39877 misc.c, mkdir.c, mlib.adb, mlib.ads,
39878 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
39879 mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
39880 namet.adb, namet.ads, namet.h, nlists.ads,
39881 nlists.h, nmake.adt, opt.adb, opt.ads,
39882 osint.adb, osint.ads, osint-b.adb, osint-c.adb,
39883 par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
39884 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
39885 par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
39886 par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
39887 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
39888 prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
39889 prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
39890 prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
39891 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
39892 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
39893 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
39894 prj-util.adb, prj-util.ads, raise.c, raise.h,
39895 repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
39896 rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
39897 s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
39898 s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
39899 scans.ads, scn.adb, scn.ads, s-crc32.adb,
39900 s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
39901 sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
39902 sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
39903 sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
39904 sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
39905 sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
39906 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
39907 sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
39908 sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
39909 sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
39910 sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
39911 sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
39912 s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
39913 s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
39914 s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
39915 s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
39916 s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
39917 s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
39918 s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
39919 sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
39920 sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
39921 sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
39922 s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
39923 s-memory.adb, s-memory.ads, snames.adb, snames.ads,
39924 snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
39925 s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
39926 s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
39927 s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
39928 s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
39929 s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
39930 s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
39931 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
39932 s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
39933 s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
39934 s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
39935 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
39936 s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
39937 s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
39938 s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
39939 s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
39940 s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
39941 stringt.adb, stringt.ads, stringt.h, style.ads,
39942 stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
39943 s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
39944 s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
39945 switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
39946 s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
39947 table.adb, table.ads, targparm.adb, targparm.ads,
39948 targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
39949 trans.c, tree_io.adb, treepr.adb, treeprs.adt,
39950 ttypes.ads, types.ads, types.h, uintp.adb,
39951 uintp.ads, uintp.h, uname.adb, urealp.adb,
39952 urealp.ads, urealp.h, usage.adb, utils2.c,
39953 utils.c, validsw.adb, validsw.ads, widechar.adb,
39954 xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
39955 xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
39956 einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
39957 gnatvsn.ads: Merge with ACT tree.
39958
39959 * gnatvsn.adb: Rewritten in a simpler and more efficient way.
39960
97ae108d
MM
399612003-10-20 Mark Mitchell <mark@codesourcery.com>
39962
de696511
MM
39963 * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
39964 (gnat_ug_vmx.info): Likewise.
39965 (gnat_ug_vxw.info): Likewise.
39966 (gnat_ug_wnt.info): Likewise.
39967 (gnat_rm.info): Likewise.
39968 (gnat-style.info): Likewise.
39969
97ae108d
MM
39970 * Make-lang.in (ada.install-info): Remove target.
39971 (info): New target.
39972 (install-info): Likewise.
39973 (gnat_ug_unx.info): Simplify rule.
39974 (gnat_ug_vmx.info): Likewise.
39975 (gnat_ug_vxw.info): Likewise.
39976 (gnat_ug_wnt.info): Likewise.
39977 (gnat_rm.info): Likewise.
39978 (gnat-style.info): Likewise.
39979
43aba518
NN
399802003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
39981
39982 * Make-lang.in: Replace uses of $(target_alias) with
39983 $(target_noncanonical).
39984 * ada/Makefile.in: Remove unused mention of $(target_alias).
39985
62b81e45
MM
399862003-10-06 Mark Mitchell <mark@codesourcery.com>
39987
39988 * Make-lang.in (ada.info): Replace with ...
39989 (info): ... this.
39990 (ada.dvi): Replace with ...
39991 (dvi): ... this.
39992
783be936
ZW
399932003-09-29 Zack Weinberg <zack@codesourcery.com>
39994
39995 * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
39996 initialize dconstp5 and dconstmp5.
39997
177560b2
RH
399982003-09-28 Richard Henderson <rth@redhat.com>
39999
40000 * trans.c (tree_transform): Update call to expand_asm_operands.
40001
f31686a3
RH
400022003-09-21 Richard Henderson <rth@redhat.com>
40003
40004 * trans.c, utils.c: Revert.
40005
7e2af53a
RH
400062003-09-21 Richard Henderson <rth@redhat.com>
40007
40008 * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
40009 change to const.
40010
5f1e32fa
MM
400112003-09-04 Michael Matz <matz@suse.de>
40012
40013 * misc.c: Include "target.h".
40014 * Make-lang.in (misc.o): Add dependency on target.h.
40015
61f71b34
DD
400162003-09-03 DJ Delorie <dj@redhat.com>
40017
40018 * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
40019 hook.
40020
2ed26f6b
ZW
400212003-08-30 Zack Weinberg <zack@codesourcery.com>
40022
40023 * Makefile.in: Update substitutions to match changes to
40024 configure. Use include directives instead of @-insertions
40025 to read in host and target fragments. Add a rule to
40026 regenerate ada/Makefile.
40027
b2e608ca
NB
400282003-07-18 Neil Booth <neil@daikokuya.co.uk>
40029
40030 * lang-options.h: Remove.
40031 * lang.opt: Add help text.
40032
0cea056b
NS
400332003-07-07 Nathan Sidwell <nathan@codesourcery.com>
40034
40035 * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
40036 calls.
40037
cb66e385
NB
400382003-07-06 Neil Booth <neil@daikokuya.co.uk>
40039
40040 * misc.c (gnat_handle_option): Don't handle filenames.
40041
9e94c78f 400422003-07-04 H.J. Lu <hongjiu.lu@intel.com>
8c90b13a
L
40043
40044 * Make-lang.in: Replace PWD with PWD_COMMAND.
40045 * Makefile.adalib: Likewise.
40046 * Makefile.in: Likewise.
40047
9c286213
MK
400482003-07-04 Matt Kraai <kraai@alumni.cmu.edu>
40049
40050 * misc.c (gnat_argv): Revert last change.
40051 (gnat_handle_option, gnat_init_options): Copy arguments.
40052
b9add449
NB
400532003-07-03 Neil Booth <neil@daikokuya.co.uk>
40054
9c286213 40055 * misc.c (gnat_argv): Make const.
b9add449 40056
836d77a9
NB
400572003-07-02 Neil Booth <neil@daikokuya.co.uk>
40058
40059 * misc.c (save_argc, save_argv): Keep non-static!
40060
b86f6cd9
NB
400612003-07-02 Neil Booth <neil@daikokuya.co.uk>
40062
40063 * misc.c (save_argc, save_argv): Make static.
40064 (gnat_init_options): New prototype.
40065 (gnat_init_options): Update.
40066
6344b1f1
MK
400672003-07-01 Matt Kraai <kraai@alumni.cmu.edu>
40068
40069 * gnat_ug.texi: Remove unlikely characters from @vars.
40070 * gnat_ug_vms.texi: Regenerate.
40071
2e040219
NS
400722003-06-27 Nathan Sidwell <nathan@codesourcery.com>
40073
40074 * misc.c (record_code_position): Adjust emit_note call.
40075
9eee5e72
NB
400762003-06-26 Neil Booth <neil@daikokuya.co.uk>
40077
40078 * misc.c (gnat_handle_option): Don't check for missing arguments.
40079
1f9cc6db
NS
400802003-06-20 Nathan Sidwell <nathan@codesourcery.com>
40081
40082 * utils.c (end_subprog_body): Adjust expand_function_end call.
40083
23d6baa3
MK
400842003-06-16 Matt Kraai <kraai@alumni.cmu.edu>
40085
40086 * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
40087 Bind_Main_Program.
40088
be43ab4e
NB
400892003-06-15 Neil Booth <neil@daikokuya.co.uk>
40090
40091 * lang.opt: Declare Ada.
40092 * misc.c (gnat_init_options): Update.
40093
ee6b0296
NS
400942003-06-14 Nathan Sidwell <nathan@codesourcery.com>
40095
40096 * utils.c (begin_subprog_body): Adjust init_function_start call.
40097
d7b42618
NB
400982003-06-14 Neil Booth <neil@daikokuya.co.uk>
40099
40100 * Make-lang.in: Update to use options.c and options.h.
40101 * misc.c: Include options.h not aoptions.h.
40102 (gnat_handle_option): Abort on unrecognized switch.
40103 (gnat_init_options): Request Ada switches.
40104
57eb6503
NB
401052003-06-14 Neil Booth <neil@daikokuya.co.uk>
40106
40107 * lang.opt: Add -Wall.
40108 * misc.c (gnat_handle_option): Handle it.
40109
70fd6569
NB
401102003-06-12 Neil Booth <neil@daikokuya.co.uk>
40111
40112 * misc.c (gnat_handle_option): Fix warnings.
40113
8cdea5a1
MK
401142003-06-11 Matt Kraai <kraai@alumni.cmu.edu>
40115
40116 * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
40117
3c900cb5
NB
401182003-06-11 Neil Booth <neil@daikokuya.co.uk>
40119
40120 * Make-lang.in: Update to handle command-line options.
40121 * lang.opt: New file.
40122 * misc.c: Include aoptions.h.
40123 (cl_options_count, cl_options): Remove.
40124 (gnat_handle_option): New.
40125 (gnat_decode_option): Remove.
40126 (LANG_HOOKS_DECODE_OPTION): Remove.
40127 (LANG_HOOKS_HANDLE_OPTION): Override.
40128
e8face4c
NN
401292003-06-10 Nathanael Nerode <neroden@gcc.gnu.org>
40130
40131 * init.c, misc.c, trans.c, utils.c: Remove dead code.
40132
4665e56c
NN
401332003-06-09 Nathanael Nerode <neroden@gcc.gnu.org>
40134
40135 * Makefile.in: Replace "host_canonical" with "host" for autoconf
40136 substitution.
40137
a165c302
NB
401382003-06-08 Neil Booth <neil@daikokuya.co.uk>
40139
40140 * Make-lang.in: Update.
40141 * misc.c: Include opts.h. Define cl_options_count and cl_options.
40142
2772ef3e
NB
401432003-06-07 Neil Booth <neil@daikokuya.co.uk>
40144
40145 * misc.c (gnat_init_options): Update.
40146
d8277a55
MK
401472003-06-05 Matt Kraai <kraai@alumni.cmu.edu>
40148
40149 * Make-lang.in (ada/b_gnatb.o-warn): Remove.
40150 * bindgen.adb (Gen_Main_C): Mark ensure_reference with
40151 __attribute__ ((__unused__)).
40152
602a82f3 401532003-06-05 Jan Hubicka <jh@suse.cz>
8f231b5d
JH
40154
40155 * Make-lang.in: Add support for stageprofile and stagefeedback
40156
3aa07c6d
MK
401572003-06-05 Matt Kraai <kraai@alumni.cmu.edu>
40158
40159 * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
40160 (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
40161
f1093866
MK
401622003-06-04 Matt Kraai <kraai@alumni.cmu.edu>
40163
40164 * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
40165 Remove non-VMS directive.
40166 (Switches for gnatlbr, Optimization Levels): Remove non-VMS
40167 alternatives.
40168 (Examples of gnatls Usage): Remove VMS alternative.
dee2df72
OH
40169
401702003-06-04 Olivier Hainque <hainque@act-europe.fr>
40171
6f7f72f9 40172 PR ada/9953
2ed26f6b
ZW
40173 * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
40174 and turn ZCX_By_Default back to False since the underlying support
40175 is not quite there yet.
dee2df72 40176
80eaf415
AJ
401772003-06-01 Andreas Jaeger <aj@suse.de>
40178
40179 * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
40180 and ROUND_TYPE_SIZE_UNIT.
40181
9e94c78f 401822003-05-22 Geert Bosch <bosch@gnat.com>
36f9020c
GB
40183
40184 * gnat_rm.texi : Remove reference to Ada Core Technologies.
40185
e7b5f0c9
NS
401862003-05-03 Nathan Sidwell <nathan@codesourcery.com>
40187
40188 * trans.c (tree_transform): Use location_t and input_location
40189 directly.
40190 (build_unit_elab): Likewise.
40191 * utils.c (create_label_decl): Likewise.
40192
d479d37f
NS
401932003-05-01 Nathan Sidwell <nathan@codesourcery.com>
40194
561712fe
NS
40195 * trans.c (tree_transform, build_unit_elab,
40196 set_lineno): Rename lineno to input_line.
d479d37f
NS
40197 * utils.c (pushdecl, create_label_decl, begin_subprog_body,
40198 end_subprog_body): Likewise.
40199 * utils2.c (build_call_raise): Likewise.
40200
9e94c78f 402012003-05-01 Laurent Guerby <guerby@acm.org>
4f9335cd 40202
2ed26f6b
ZW
40203 PR ada/10546
40204 * 5iosinte.ads: Increase pthread_cond_t size to match recent
40205 LinuxThread and NPTL version, merge from ACT.
80eaf415 40206
0864034e
ZW
402072003-04-28 Zack Weinberg <zack@codesourcery.com>
40208
40209 * utils.c (convert): No need to clear TREE_CST_RTL.
40210
9e94c78f 402112003-04-23 Geert Bosch <bosch@gnat.com>
bcea76b6
GB
40212
40213 * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
40214 1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
40215 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
40216 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
40217 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
40218 4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
40219 4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
40220 4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
40221 4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
40222 4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
40223 4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
40224 4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
40225 52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
40226 5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
40227 5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
40228 5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
40229 5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
40230 5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
40231 5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
40232 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
40233 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
40234 5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
40235 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
40236 5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
40237 5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
40238 5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
40239 5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
40240 5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
40241 5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
40242 5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
40243 5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
40244 5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
40245 5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
40246 5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
40247 5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
40248 5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
40249 5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
40250 5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
40251 5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
40252 5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
40253 5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
40254 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
40255 5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
40256 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
40257 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
40258 7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
40259 7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
40260 9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
40261 a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
40262 a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
40263 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
40264 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
40265 a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
40266 a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
40267 a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
40268 a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
40269 a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
40270 a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
40271 a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
40272 a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
40273 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
40274 a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
40275 a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
40276 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
40277 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
40278 a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
40279 a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
40280 a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
40281 a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
40282 a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
40283 a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
40284 a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
40285 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
40286 a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
40287 a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
40288 a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
40289 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
40290 a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
40291 a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
40292 a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
40293 a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
40294 a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
40295 a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
40296 a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
40297 a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
40298 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
40299 a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
40300 a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
40301 a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
40302 a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
40303 a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
40304 a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
40305 a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
40306 a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
40307 a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
40308 a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
40309 a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
40310 a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
40311 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
40312 a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
40313 a-wttest.ads, ada-tree.h, ada.ads, ada.h,
40314 adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
40315 ali.adb, ali.ads, alloc.ads, argv.c,
40316 atree.adb, atree.ads, atree.h, aux-io.c,
40317 back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
40318 binde.adb, binde.ads, binderr.adb, binderr.ads,
40319 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
40320 butil.adb, butil.ads, cal.c, calendar.ads,
40321 casing.adb, casing.ads, ceinfo.adb, checks.adb,
40322 checks.ads, cio.c, comperr.adb, comperr.ads,
40323 config-lang.in, csets.adb, csets.ads, csinfo.adb,
40324 cstand.adb, cstand.ads, cuintp.c, debug.adb,
40325 debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
40326 dec-io.ads, dec.ads, deftarg.c, directio.ads,
40327 einfo.adb, einfo.ads, elists.adb, elists.ads,
40328 elists.h, errno.c, errout.adb, errout.ads,
40329 eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
40330 exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
40331 exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
40332 exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
40333 exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
40334 exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
40335 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
40336 exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
40337 exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
40338 exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
40339 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
40340 exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
40341 exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
40342 exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
40343 exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
40344 fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
40345 fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
40346 freeze.adb, freeze.ads, frontend.adb, frontend.ads,
40347 g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
40348 g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
40349 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
40350 g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
40351 g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
40352 g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
40353 g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
40354 g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
40355 g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
40356 g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
40357 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
40358 g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
40359 g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
40360 g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
40361 g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
40362 g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
40363 g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
40364 g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
40365 g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
40366 g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
40367 g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
40368 g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
40369 get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
40370 gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
40371 gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
40372 gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
40373 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
40374 gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
40375 gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
40376 gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
40377 hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
40378 i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
40379 i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
40380 i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
40381 i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
40382 i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
40383 i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
40384 inline.adb, inline.ads, interfac.ads, ioexcept.ads,
40385 itypes.adb, itypes.ads, krunch.adb, krunch.ads,
40386 layout.adb, layout.ads, lib-list.adb, lib-load.adb,
40387 lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
40388 lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
40389 lib.adb, lib.ads, live.adb, live.ads,
40390 machcode.ads, make.adb, make.ads, makeusg.adb,
40391 makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
40392 mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
40393 memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
40394 mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
40395 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
40396 mlib.ads, namet.adb, namet.ads, nlists.adb,
40397 nlists.ads, opt.adb, opt.ads, osint-b.adb,
40398 osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
40399 osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
40400 osint.ads, output.adb, output.ads, par-ch10.adb,
40401 par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
40402 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
40403 par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
40404 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
40405 par-tchk.adb, par-util.adb, par.adb, par.ads,
40406 prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
40407 prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
40408 prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
40409 prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
40410 prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
40411 prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
40412 prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
40413 prj.adb, prj.ads, repinfo.adb, repinfo.ads,
40414 restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
40415 rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
40416 s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
40417 s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
40418 s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
40419 s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
40420 s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
40421 s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
40422 s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
40423 s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
40424 s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
40425 s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
40426 s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
40427 s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
40428 s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
40429 s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
40430 s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
40431 s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
40432 s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
40433 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
40434 s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
40435 s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
40436 s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
40437 s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
40438 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
40439 s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
40440 s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
40441 s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
40442 s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
40443 s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
40444 s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
40445 s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
40446 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
40447 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
40448 s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
40449 s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
40450 s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
40451 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
40452 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
40453 s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
40454 s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
40455 s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
40456 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
40457 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
40458 s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
40459 s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
40460 s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
40461 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
40462 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
40463 s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
40464 s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
40465 s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
40466 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
40467 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
40468 s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
40469 s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
40470 s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
40471 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
40472 s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
40473 s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
40474 s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
40475 s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
40476 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
40477 s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
40478 s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
40479 s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
40480 s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
40481 s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
40482 s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
40483 s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
40484 s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
40485 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
40486 s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
40487 s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
40488 s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
40489 s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
40490 s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
40491 s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
40492 s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
40493 s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
40494 s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
40495 s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
40496 s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
40497 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
40498 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
40499 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
40500 s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
40501 s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
40502 s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
40503 s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
40504 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
40505 s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
40506 s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
40507 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
40508 s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
40509 scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
40510 sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
40511 sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
40512 sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
40513 sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
40514 sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
40515 sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
40516 sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
40517 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
40518 sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
40519 sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
40520 sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
40521 sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
40522 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
40523 sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
40524 sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
40525 sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
40526 sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
40527 sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
40528 sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
40529 sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
40530 snames.ads, sprint.adb, sprint.ads, stand.adb,
40531 stand.ads, stringt.adb, stringt.ads, style.adb,
40532 style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
40533 switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
40534 switch-m.ads, switch.adb, switch.ads, system.ads,
40535 table.adb, table.ads, targparm.adb, targparm.ads,
40536 tbuild.adb, tbuild.ads, text_io.ads, trans.c,
40537 tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
40538 tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
40539 ttypef.ads, ttypes.ads, types.adb, types.ads,
40540 uintp.adb, uintp.ads, uname.adb, uname.ads,
40541 unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
40542 usage.adb, usage.ads, validsw.adb, validsw.ads,
40543 widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
40544 xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
40545 xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
40546 formatting and other trivial changes from ACT.
40547
dcf92453
ZW
405482003-04-12 Zack Weinberg <zack@codesourcery.com>
40549
40550 * gigi.h, utils2.c (build_constructor):
40551 Rename gnat_build_constructor. Use build_constructor.
40552 * decl.c (gnat_to_gnu_entity)
40553 * trans.c (tree_transform, pos_to_constructor, extract_values)
40554 * ada/utils.c (build_template, convert_to_fat_pointer, convert)
40555 (unchecked_convert)
40556 * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
40557 (fill_vms_descriptor):
40558 Update to match.
40559
d78e771d
ZW
405602003-04-06 Zack Weinberg <zack@codesourcery.com>
40561
40562 * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
40563 * misc.c (gnat_tree_size): New function.
40564 (LANG_HOOKS_TREE_SIZE): Override.
40565
78d55cc8
JM
405662003-04-03 Jason Merrill <jason@redhat.com>
40567
40568 * misc.c (gnat_adjust_rli): #if 0.
40569
9e94c78f 405702003-03-31 Geert Bosch <bosch@gnat.com>
b174e2d4
GB
40571
40572 PR ada/10020
40573 * link.c : Fix misspelled "const" keyword
40574
f29a2bd1
MM
405752003-03-23 Mark Mitchell <mark@codesourcery.com>
40576
40577 PR c++/7086
40578 * utils2.c: Adjust calls to put_var_into_stack.
40579
08e247b1
NN
405802003-03-12 Nathanael Nerode <neroden@gcc.gnu.org>
40581
40582 * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
40583
4bfec483
NB
405842003-03-08 Neil Booth <neil@daikokuya.co.uk>
40585
40586 * misc.c (gnat_init): Update for new prototype.
40587
3d713bb8
GB
405882003-03-05 Olivier Hainque <hainque@gnat.com>
40589
40590 ada/9961
78d55cc8
JM
40591 * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
40592 warning, and fix return type for the IN_RTS && !SJLJ case.
3d713bb8 40593
8b89fcdf
TT
405942003-03-04 Tom Tromey <tromey@redhat.com>
40595
40596 * Make-lang.in (ada.tags): New target.
40597
3d713bb8 405982003-03-04 Olivier Hainque <hainque@act-europe.fr>
23cae84f
OH
40599
40600 ada/9911
40601 * a-except.adb (Unwind_RaiseException): Import a GNAT specific
40602 wrapper, which name remains constant whatever underlying GCC
40603 scheme.
40604
40605 * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
40606 the stable interface needed for a-except.
40607
f4ae98be
AJ
406082003-03-02 Andreas Jaeger <aj@suse.de>
40609
40610 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40611 gnat_ug_wnt.texi: Regenerate.
40612
9e94c78f 406132003-03-02 Laurent Guerby <guerby@acm.org>
5348742b 40614
f4ae98be 40615 * Makefile.in (install-gnatlib): Match previous change there
5348742b 40616 so it works.
f4ae98be 40617
8c108db2
AS
406182003-02-28 Andreas Schwab <schwab@suse.de>
40619
40620 * Make-lang.in (install-gnatlib): Change to ada directory before
40621 running make instead of using ada/Makefile directly.
40622
601d71bc
BE
406232003-02-18 Ben Elliston <bje@redhat.com>
40624
6f7f72f9 40625 Part of PR ada/9406
601d71bc
BE
40626 * gnat_ug.texi (Binder output file): Grammar fix.
40627
bf7c02dd
BE
406282003-02-18 Ben Elliston <bje@redhat.com>
40629
40630 PR other/7350
40631 * 5qtaprop.adb (Sleep): Fix typo in comment.
40632
b3a8389d
JM
406332003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
40634
40635 * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
40636 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40637 gnat_ug_wnt.texi: Regenerate.
40638
9e94c78f 406392003-02-03 Christian Cornelssen <ccorn@cs.tu-berlin.de>
5da14cb5
CC
40640
40641 * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
40642 be created if necessary.
40643 (ada.install-common): Let $(DESTDIR)$(bindir) be created
40644 if necessary. Remove erroneous and redundant gnatchop
40645 installation commands. Test for gnatdll before attempting
40646 to install it.
40647 (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
40648 and gnatdll from all plausible locations.
40649
271bd540
RS
406502003-02-01 Richard Sandiford <rsandifo@redhat.com>
40651
40652 * utils2.c (build_unary_op): Don't check flag_volatile.
40653 * gnat_ug.texi: Remove -fvolatile from example.
40654 * gnat_ug_vxw.texi: Likewise.
40655
9e94c78f 406562003-01-29 Laurent Guerby <guerby@acm.org>
c1cc6a51 40657
d78e771d
ZW
40658 PR ada/8344
40659 * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
40660 * Makefile.in: match previous change.
40661 * Make-lang.in: match previous change.
c1cc6a51 40662
9e94c78f 406632003-01-29 Joel Sherrill <joel@OARcorp.com>
c4039eb0
JS
40664
40665 * 5rosinte.ads: Add SIGXCPU.
40666 * 5rtpopsp.adb: New file.
40667 * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
40668 * Makefile.in: Recognize more RTEMS targets and add the RTEMS
40669 specific file 5rtpopsp.adb.
40670 * adaint.h: Add include of <stdio.h> when target is RTEMS. This
40671 is likely needed for all newlib targets.
40672 * init.c: Add RTEMS specific version of __gnat_initialize().
40673
00d29f7d
RO
406742003-01-28 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
40675
40676 * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
40677
437026ef
RO
406782003-01-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
40679
40680 * init.c (__gnat_error_handler): Make msg const.
40681
40682 * gmem.c (convert_addresses): Move declaration ...
40683 * adaint.h: ... here.
40684 * adaint.c (convert_addresses): Adapt addrs type to match
40685 prototype.
40686
40687 * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
40688
e12825cd
AS
406892003-01-24 Andreas Schwab <schwab@suse.de>
40690
40691 * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
40692 size_t to avoid warning.
40693
a8729406
ZW
406942003-01-21 Zack Weinberg <zack@codesourcery.com>
40695
b09b91b9 40696 * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
a8729406 40697
17211ab5
GK
406982003-01-09 Geoffrey Keating <geoffk@apple.com>
40699
40700 * gnat_rm.texi: Remove RCS version number.
40701
40702 * ada-tree.h (union lang_tree_node): Add chain_next option.
40703
1d27195c
CC
407042003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
40705
40706 * Make-lang.in (ada.install-info, ada.install-common,
40707 ada.uninstall): Prepend $(DESTDIR) to the destination
40708 directory in all (un)installation commands.
40709 * Makefile.in (install-gnatlib, install-rts): Ditto.
40710
bdefb2ab
JM
407112002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
40712
40713 * gnat_rm.texi, gnat_ug.texi: Use @copying.
40714 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40715 gnat_ug_wnt.texi: Regenerate.
40716
46d40353
JM
407172002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
40718
40719 * gnat_rm.texi: Include gcc-common.texi. Use GCC version number
40720 only.
40721 * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
40722 $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
40723 $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
40724 ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
40725 ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
40726 $(srcdir)/doc/include/gcc-common.texi.
40727
9e94c78f 407282002-12-15 Geert Bosch <bosch@gnat.com>
d2f97d3e
GB
40729
40730 * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
40731
9e94c78f 407322002-12-14 Geert Bosch <bosch@gnat.com>
93a81b02 40733
6f7f72f9 40734 PR ada/5690
4977bab6
ZW
40735 * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
40736 case of a body created for a Renaming_As_Body, on which
6f7f72f9 40737 conformance checks are not performed.
4977bab6
ZW
40738
407392002-11-30 Zack Weinberg <zack@codesourcery.com>
40740
40741 * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
40742 utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
40743 not already included.
40744 * Make-lang.in: Update dependencies.
93a81b02 40745
dfc15546
NN
407462002-11-18 Nathanael Nerode <neroden@gcc.gnu.org>
40747 * adaint.c (__gnat_tmp_name): Better, but good enough for now,
4977bab6 40748 solution to buffer overflow bug on GNU/Linux.
dfc15546 40749
8b54424d 407502002-11-14 Nathanael Nerode <neroden@gcc.gnu.org>
6f7f72f9
EB
40751
40752 PR ada/5856
40753 PR ada/6919
8b54424d
NN
40754 * bindgen.adb: Remove all references to Public_Version.
40755 * comperr.adb: Remove all references to Public_Version and
40756 GNATPRO_Version; correct bug reporting instructions.
40757 * comperr.ads: Change to match bug box.
40758 * gnatvsn.ads: Remove all references to Public version and
40759 GNATPRO version.
40760
cc41268d 407612002-11-13 Nathanael Nerode <neroden@gcc.gnu.org>
6f7f72f9 40762
1a083c0e
NN
40763 PR ada/6919
40764 * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
40765 GNU/Linux.
40766
cc41268d
NN
40767 PR ada/6558
40768 * config-lang.in: Remove diff_excludes.
40769
1c7b0712 407702002-11-05 Graham Stott <graham.stott@btinternet.com>
6f7f72f9 40771
1c7b0712
GS
40772 PR ada/8358
40773 * trans.c (gnu_pending_elaboration_lists): New GC root.
4977bab6 40774 (build_unit_elab): Use..
1c7b0712 40775
9e94c78f 407762002-10-30 Geert Bosch <bosch@gnat.com>
6f7f72f9 40777
1c4048ca
GB
40778 PR ada/6558
40779 * misc.c : Include optabs.h
40780
40781 * Make-lang.in (misc.o): Add dependency on optabs.h
40782
9e94c78f 407832002-10-29 Geert Bosch <bosch@gnat.com>
6f7f72f9 40784
4977bab6 40785 PR ada/6558
f0d96f9c
GB
40786 * Make-lang.in (gnatbind): Depend on CONFIG_H
40787
a7512dec 407882002-10-29 Geert bosch <bosch@gnat.com>
6f7f72f9 40789
4977bab6
ZW
40790 PR ada/6558
40791 * misc.c: Unrevert misc.c (1.13)
a7512dec 40792
c6362f4f
NN
407932002-10-28 Nathanael Nerode <neroden@gcc.gnu.org>
40794
40795 * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
40796 maintainership comments.
40797
407982002-09-25 Nathanael Nerode <neroden@gcc.gnu.org>
6f7f72f9 40799
91ed4b19 40800 PR ada/5904
4977bab6
ZW
40801 * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
40802 5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
40803 5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
40804 7staprop.adb: Correct statements in comments about
91ed4b19
NN
40805 maintainership of GNAT.
40806
1f02b6af 40807 PR ada/5904
4977bab6
ZW
40808 * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
40809 gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
40810 osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
40811 osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
40812 s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
40813 s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
40814 sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
1f02b6af
NN
40815 switch-c.ads switch-m.adb switch-m.ads: Correct statements in
40816 comments about maintainership of GNAT.
40817
71ff80dc 40818 PR ada/6919 (forward port of patch for PR ada/5904)
4977bab6
ZW
40819 * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
40820 4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
40821 4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
40822 4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
40823 4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
40824 4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
40825 4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
40826 52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
40827 5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
40828 5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
40829 5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
40830 5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
40831 5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
40832 5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
40833 5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
40834 5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
40835 5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
40836 5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
40837 5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
40838 5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
40839 5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
40840 5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
40841 5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
40842 5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
40843 5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
40844 5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
40845 5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
40846 5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
40847 7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
40848 a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
40849 a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
40850 a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
40851 a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
40852 a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
40853 a-except.adb a-except.ads a-excpol.adb a-exctra.adb
40854 a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
40855 a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
40856 a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
40857 a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
40858 a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
40859 a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
40860 a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
40861 a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
40862 a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
40863 a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
40864 a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
40865 a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
40866 a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
40867 a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
40868 a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
40869 a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
40870 a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
40871 a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
40872 a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
40873 a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
40874 a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
40875 a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
40876 a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
40877 a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
40878 a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
40879 a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
40880 a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
40881 a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
40882 a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
40883 a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
40884 a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
40885 a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
40886 a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
40887 adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
40888 alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
40889 back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
40890 binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
40891 bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
40892 ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
40893 csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
40894 cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
40895 debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
40896 einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
40897 errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
40898 exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
40899 exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
40900 exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
40901 exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
40902 exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
40903 exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
40904 exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
40905 exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
40906 exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
40907 exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
40908 exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
40909 exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
40910 exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
40911 final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
40912 fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
40913 freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
40914 g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
40915 g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
40916 gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
40917 gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
40918 gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
40919 gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
40920 gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
40921 gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
40922 i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
40923 i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
40924 i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
40925 i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
40926 impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
40927 itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
40928 lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
40929 lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
40930 lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
40931 lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
40932 makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
40933 namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
40934 nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
40935 osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
40936 par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
40937 par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
40938 par-endh.adb par-labl.adb par-load.adb par-prag.adb
40939 par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
40940 prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
40941 prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
40942 prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
40943 prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
40944 prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
40945 prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
40946 repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
40947 rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
40948 s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
40949 s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
40950 s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
40951 s-direio.adb s-direio.ads s-except.ads s-exctab.adb
40952 s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
40953 s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
40954 s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
40955 s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
40956 s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
40957 s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
40958 s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
40959 s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
40960 s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
40961 s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
40962 s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
40963 s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
40964 s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
40965 s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
40966 s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
40967 s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
40968 s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
40969 s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
40970 s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
40971 s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
40972 s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
40973 s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
40974 s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
40975 s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
40976 s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
40977 s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
40978 s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
40979 s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
40980 s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
40981 s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
40982 s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
40983 s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
40984 s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
40985 s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
40986 s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
40987 s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
40988 s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
40989 s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
40990 s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
40991 s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
40992 s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
40993 s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
40994 s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
40995 s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
40996 s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
40997 s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
40998 s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
40999 s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
41000 s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
41001 s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
41002 s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
41003 s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
41004 s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
41005 s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
41006 s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
41007 s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
41008 s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
41009 s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
41010 s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
41011 s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
41012 s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
41013 s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
41014 s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
41015 s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
41016 s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
41017 s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
41018 s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
41019 s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
41020 s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
41021 s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
41022 s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
41023 s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
41024 s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
41025 s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
41026 s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
41027 s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
41028 s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
41029 s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
41030 scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
41031 sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
41032 sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
41033 sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
41034 sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
41035 sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
41036 sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
41037 sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
41038 sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
41039 sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
41040 sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
41041 sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
41042 sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
41043 sem_type.adb sem_type.ads sem_util.adb sem_util.ads
41044 sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
41045 sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
41046 sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
41047 sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
41048 snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
41049 stringt.ads stringt.h style.adb style.ads stylesw.adb
41050 stylesw.ads switch.adb switch.ads sysdep.c system.ads
41051 table.adb table.ads targparm.adb targparm.ads targtyps.c
41052 tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
41053 tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
41054 treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
41055 types.adb types.ads types.h uintp.adb uintp.ads uintp.h
41056 uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
41057 usage.ads utils.c utils2.c validsw.adb validsw.ads
41058 widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
41059 xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
71ff80dc
NN
41060 xtreeprs.adb: Correct statements in comments about maintainership
41061 of GNAT.
41062
b4f94ac1
ZW
410632002-09-23 Zack Weinberg <zack@codesourcery.com>
41064
41065 * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
41066 * Makefile.in (TOOLS_LIBS): Add ../../version.o.
41067 * gnatvsn.ads: Gnat_Version_String is now a function.
41068 * gnatvsn.adb: New file. When asked for Gnat_Version_String,
41069 copy the C version_string into a String and return it.
41070 * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
41071 gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
41072 Remove pragma Ident (Gnat_Version_String). If this was the
41073 sole use of package Gnatvsn, remove the with statement too.
41074 * gnat1drv.adb: Tweak -gnatv output.
41075
eaff3bf8
RH
410762002-09-17 Richard Henderson <rth@redhat.com>
41077
41078 * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
41079 * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
41080 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
41081 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
41082 * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
41083 and real_2expN instead of a loop.
41084 * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
41085 (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
41086
9e94c78f
EB
410872002-08-25 Andre Leis <a.leis@gmx.net>
41088 David Billinghurst <David.Billinghurst@riotinto.com>
d241f75b 41089
f4ae98be 41090 * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
d241f75b 41091
4320085a
RO
410922002-08-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41093
41094 * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
41095 Remove $(CONFIG_H) dependency.
41096
22aa533e
NS
410972002-08-08 Nathan Sidwell <nathan@codesourcery.com>
41098
41099 * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
41100
1dcd444b
KG
411012002-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41102
41103 * adadecode.c (ada_demangle): Use xstrdup in lieu of
41104 xmalloc/strcpy.
41105 * misc.c (gnat_decode_option): Likewise.
41106
7bc7d27b
FW
411072002-07-15 Florian Weimer <fw@deneb.enyo.de>
41108
41109 * make.adb (Add_Switch): Make Generic_Position a procedure. The
41110 function approach did not work well because of a side effect (the
41111 function call could reallocate the table which was being indexed
41112 using its result). Fixes ada/4851. [RESURRECTED]
41113
6a2dd09a
RS
411142002-07-01 Roger Sayle <roger@eyesopen.com>
41115
41116 * ada/utils.c (builtin_function): Accept an additional parameter.
41117
c168bbd7
AJ
411182002-06-28 Andreas Jaeger <aj@suse.de>
41119
41120 PR ada/7144
41121 * Makefile.in: Fix typo in comment, patch by Adrian Knoth
41122 <adi@thur.de>.
41123
b41e09a7
KG
411242002-06-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41125
41126 * Makefile.in (SHELL): Set to @SHELL@.
41127
62c71f4b
KG
411282002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41129
41130 * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
41131 array size calculation.
41132
94213cff
AJ
411332002-06-04 Andreas Jaeger <aj@suse.de>
41134
41135 * Make-lang.in (gnatbind): Readd rule that has been lost in last
41136 patch.
41137
e2500fed
GK
411382002-06-03 Geoffrey Keating <geoffk@redhat.com>
41139
41140 Merge from pch-branch:
41141
41142 * config-lang.in (gtfiles): Add ada-tree.h.
41143 * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
41144 (SET_TYPE_MODULUS): New.
41145 (SET_TYPE_INDEX): New.
41146 (SET_TYPE_DIGITS_VALUE): New.
41147 (SET_TYPE_RM_SIZE): New.
41148 (SET_TYPE_UNCONSTRAINED_ARRAY): New.
41149 (SET_TYPE_ADA_SIZE): New.
41150 (SET_TYPE_ACTUAL_BOUNDS): New.
41151 (SET_DECL_CONST_CORRESPONDING_VAR): New.
41152 (SET_DECL_ORIGINAL_FIELD): New.
41153 (TREE_LOOP_ID): Correct typo.
41154 * decl.c: Use new macros.
41155 * utils.c: Include debug.h, use new macros.
94213cff 41156 * utils2.c: Use new macros.
e2500fed
GK
41157
41158 * ada-tree.h: Update all macros for new tree description.
41159 (struct tree_loop_id): New.
41160 (union lang_tree_node): New.
41161 (struct lang_decl): New.
41162 (struct lang_type): New.
41163 * misc.c (gnat_mark_tree): Delete.
41164 (LANG_HOOKS_MARK_TREE): Delete.
41165 * trans.c (tree_transform): No longer any need to cast
41166 for TREE_LOOP_ID.
41167
41168 * utils.c (struct language_function): New dummy structure.
41169
41170 * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
41171 (misc.o): Likewise.
41172 (utils.o): Likewise; also gtype-ada.h.
41173 * Make-lang.in (gnat1): Add dependency on s-gtype.
41174 (gnatbind): Add dependency on $(CONFIG_H).
41175 * utils.c: Correct last #include.
41176 (stuct e_stack): Remove unnecessary 'static'.
41177 (mark_e_stack): Remove unused prototype.
41178
41179 * scn-nlit.adb: Remove whitespace after version number to
41180 keep lines under 80 chars.
41181 * snames.adb: Likewise.
41182 * treepr.ads: Likewise.
94213cff 41183
e2500fed
GK
41184 * Makefile.in (decl.o): Include gt-ada-<filename>.h.
41185 (misc.o): Likewise.
41186 (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
41187 * config-lang.in (gtfiles): New.
41188 * decl.c: Use gengtype for roots.
41189 * gigi.h: Use gengtype for roots.
41190 * trans.c: Use gengtype for roots.
41191 * utils.c: Use gengtype for roots, marking. Include gtype-ada.h.
41192
27e511e0
GDR
411932002-06-02 Gabriel Dos Reis <gdr@codesourcery.com>
41194
41195 * misc.c (gnat_init): Adjust setting of internal_error_function.
41196
113dc143
JM
411972002-06-01 Joseph S. Myers <jsm28@cam.ac.uk>
41198
41199 * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
41200 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41201 gnat_ug_wnt.texi: Regenerate.
41202
5321fb3e
FW
412032002-05-31 Florian Weimer <fw@deneb.enyo.de>
41204
15e6136e
FW
41205 * 5ntaprop.adb (with System.OS_Primitives): Remove.
41206
019310ac
FW
41207 * cstreams.c (max_path_len): Move from here ...
41208 * adaint.c (__gnat_max_path_len): ... to here.
41209 * adaint.c (__gnat_max_path_len): Declare.
41210 * g-dirope.adb (Max_Path): Adjust.
41211 * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
94213cff 41212 * i-cstrea.ads (max_path_len): Adjust.
019310ac
FW
41213 * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
41214 * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
41215
5321fb3e
FW
41216 * Makefile.in, Make-lang.in: Documentation is now built in
41217 Make-lang.in. Store Info and generated Texinfo files in the
41218 source directory.
41219 * gnat_ug.texi: Remove CVS keywords, correct version number.
41220 Set file name correctly.
41221
41222 * gnat_ug_*.texi: Add.
41223 * .cvsignore: Ignore generated Texinfo files.
41224
b1c12c4b
ZW
412252002-05-30 Zack Weinberg <zack@codesourcery.com>
41226
41227 * ada.h: Add MI guard macro.
41228 (SUBTYPE): Define constants with an anonymous enum, not static
41229 const variables.
41230 (IN): Cast constants to appropriate type before use.
41231
ead33da9
JM
412322002-05-26 Joseph S. Myers <jsm28@cam.ac.uk>
41233
41234 * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
41235 (experimental)".
41236
7d600178
RO
412372002-05-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41238
41239 * Make-lang.in (CP, ECHO): Copy from Makefile.in.
41240 (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
41241 (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
41242 (ALL_ADA_CFLAGS): Likewise.
41243 (ADA_INCLUDES): Likewise.
41244 Adapt for new working dir.
41245 (GNATBIND): Use Makefile.in version.
41246 (.SUFFIXES): Copy from Makefile.in.
41247 (ada-warn): Define.
41248 (.adb.o, .ads.o): Copy from Makefile.in.
41249 Added $(OUTPUT_OPTION).
41250 (GNAT1_C_OBJS): Moved from Makefile.in.
41251 Prefix with ada subdir.
41252 (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
41253 (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
41254 Adapt for new working dir.
41255 (EXTRA_GNATBIND_OBJS): Likewise.
41256 (ADA_BACKEND): Moved from Makefile.in.
41257 Renamed to avoid conflict with global BACKEND.
41258 Use that one.
41259 (TARGET_ADA_SRCS): Moved from Makefile.in.
41260 (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
41261 Use ADA_BACKEND.
41262 (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
41263 (ada_extra_files): Moved from Makefile.in.
41264 Prefix with ada subdir.
41265 (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
41266 (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
41267 (ada/nmake.ads): Likewise.
41268 (update-sources): Moved from Makefile.in.
41269 Prefix with ada subdir.
41270 (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
41271 (ADA_TREE_H): Likewise.
41272 (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
41273 (ada/memtrack.o): Likewise.
41274 (ada/adadecode.o): Likewise.
41275 Update dependencies.
41276 (ada/adaint.o): New.
41277 (ada/argv.o): Moved from Makefile.in.
41278 Prefix with ada subdir.
94213cff 41279 Update dependencies.
7d600178
RO
41280 (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
41281 (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
41282 (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
41283 Prefix with ada subdir.
41284 (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
41285 (GNAT DEPENDENCIES): Regenerate.
41286 * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
41287 toplevel Makefile.in.
41288 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
41289 (TARGET_ADA_SRCS): Removed.
41290 (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
41291 (GNATBIND_OBJS): Likewise.
41292 (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
41293 (BACKEND): Removed.
41294 (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
41295 (TREE_H): Likewise.
41296 (ada_extra_files): Likewise.
41297 (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
41298 (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
41299 (update-sources): Likewise.
41300 (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
41301 (ADA_TREE_H): Likewise.
41302 (adadecoce.o): Likewise.
41303 (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
41304 (GNAT DEPENDENCIES): Likewise.
41305
1e6347d8
RO
413062002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41307
41308 * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
41309 * Makefile.in: Likewise.
41310
db80834f
RO
413112002-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41312
41313 * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
41314 Restore $(CONFIG_H) and prefix.o dependencies.
41315 (ada.stage[1-4]): Depend on stage?-start.
41316
41317 * Makefile.in (b_gnatb.c): Depend on interfac.o.
41318
ac293f98
JW
413192002-05-02 Jim Wilson <wilson@redhat.com>
41320
41321 * utils.c (finish_record_type): Change record_size to record_type.
41322
b303008e
JDA
413232001-05-02 John David Anglin <dave@hiauly1.hia.nrc.ca>
41324
41325 * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
41326 (ALL_ADA_CFLAGS): Define. Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
41327 ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
94213cff 41328
ff45c01e
NB
413292002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
41330
41331 * misc.c (gnat_parse_file): Update.
41332
349ae713
NB
413332002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
41334
41335 * misc.c (gnat_init): Don't set lang_attribute_common.
41336
ace133aa
JM
413372002-04-21 Joseph S. Myers <jsm28@cam.ac.uk>
41338
41339 * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
41340
5c558dd9
FW
413412002-04-21 Florian Weimer <fw@deneb.enyo.de>
41342
b4f94ac1 41343 * gnat_ug.texi: New file.
88e1739c 41344
5c558dd9
FW
41345 * gnat_rm.texi: Do not include texiplus.texi. Include fdl.texi
41346 instead of gfdl.texi
41347
41348 * xgnatug.adb, ug_words: New files.
41349
41350 * Makefile.in (doc, dvi): New targets. Build gnat_ug_*,
b4f94ac1 41351 gnat_rm and gnat-style manuals.
5c558dd9 41352
7a228918
NB
413532002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
41354
41355 * gigi.h (incomplete_type_error): Remove.
41356 * utils.c (incomplete_type_error): Remove.
41357
b2123dc0
MM
413582002-04-16 Mark Mitchell <mark@codesourcery.com>
41359
41360 * trans.c (tree_transform): Add has_scope argument to
41361 expand_start_stmt_expr.
41362
78ef5b89
NB
413632002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
41364
41365 * gigi.h (truthvalue_conversion): Rename.
41366 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
41367 * trans.c (tree_transform): Update.
41368 * utils2.c (truthvalue_conversion): Rename, update.
41369 (build_binary_op, build_unary_op): Update.
41370
a71742a8
LG
413712002-04-04 Laurent Guerby <guerby@acm.org>
41372
41373 * make.adb: Implement -margs, remove restriction about file name placement.
41374 * makeusg.adb: Documentation update.
41375 * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
41376 * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
41377
82a4b025
NB
413782002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
41379
41380 * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
41381 (builtin_function): Similarly.
41382
dffd7eb6
NB
413832002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
41384
41385 * decl.c (gnat_to_gnu_entity): Update.
41386 * gigi.h (mark_addressable): Rename.
41387 * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
41388 * trans.c (tree_transform): Update.
41389 * utils.c (create_var_decl): Update.
41390 * util2.c (build_binary_op, build_unary_op,
41391 fill_vms_descriptor): Update.
41392 (mark_addressable): Rename, update.
41393
ceef8ce4
NB
413942002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
41395
41396 * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
41397 Rename.
41398 * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
41399 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
41400 * trans.c (tree_transform, convert_with_check): Update.
41401 * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
41402 Rename.
41403
48a7a235
NB
414042002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
41405
41406 * gigi.h (finish_incomplete_decl): Rename.
41407 * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
41408 * utils.c (gnat_init_decl_processing): Don't set hook.
41409 (finish_incomplete_decl): Rename.
41410
1d5af871
AS
414112002-03-29 Andreas Schwab <schwab@suse.de>
41412
41413 * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
41414 directory.
41415
9e94c78f 414162001-03-28 Robert Dewar <dewar@gnat.com>
8cbb664e
MG
41417
41418 * checks.ads:
41419 (Remove_Checks): New procedure
41420
41421 * checks.adb:
41422 (Remove_Checks): New procedure
41423
41424 * exp_util.adb:
41425 Use new Duplicate_Subexpr functions
41426 (Duplicate_Subexpr_No_Checks): New procedure
41427 (Duplicate_Subexpr_No_Checks_Orig): New procedure
41428 (Duplicate_Subexpr): Restore original form (checks duplicated)
41429 (Duplicate_Subexpr): Call Remove_Checks
41430
82a4b025 41431 * exp_util.ads:
8cbb664e
MG
41432 (Duplicate_Subexpr_No_Checks): New procedure
41433 (Duplicate_Subexpr_No_Checks_Orig): New procedure
41434 Add 2002 to copyright notice
41435
41436 * sem_util.adb: Use new Duplicate_Subexpr functions
41437
82a4b025 41438 * sem_eval.adb:
8cbb664e
MG
41439 (Eval_Indexed_Component): This is the place to call
41440 Constant_Array_Ref and to replace the value. We simply merge
41441 the code of this function in here, since it is now no longer
41442 used elsewhere. This fixes the problem of the back end not
41443 realizing we were clever enough to see that this was
41444 constant.
41445 (Expr_Val): Remove call to Constant_Array_Ref
41446 (Expr_Rep_Val): Remove call to Constant_Array_Ref
41447 Minor reformatting
41448 (Constant_Array_Ref): Deal with string literals (patch
41449 suggested by Zack Weinberg on the gcc list)
41450
9e94c78f 414512001-03-28 Ed Schonberg <schonber@gnat.com>
8cbb664e 41452
82a4b025 41453 * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
8cbb664e
MG
41454 Duplicate_Subexpr_Move_Checks.
41455
82a4b025 41456 * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
8cbb664e
MG
41457 Duplicate_Subexpr_Move_Checks.
41458
82a4b025
NB
41459 * sem_eval.adb: (Constant_Array_Ref): Verify that constant
41460 value of array exists before retrieving it (it may a private
8cbb664e
MG
41461 protected component in a function).
41462
9e94c78f 414632002-03-28 Geert Bosch <bosch@gnat.com>
792c4e74
GB
41464
41465 * prj-pp.adb : New file.
41466
41467 * prj-pp.ads : New file.
41468
915e8bad
AJ
414692002-03-28 Andreas Jaeger <aj@suse.de>
41470
41471 * Makefile.in (stamp-sdefault): Fix path for Makefile.
41472
0840811c
NB
414732002-03-28 Neil Booth <neil@daikokuya.demon.co.uk>
41474
41475 * misc.c (gnat_expand_expr): Move prototype.
41476
7ffb4fd2
NB
414772002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
41478
41479 * misc.c (insert_default_attributes): Remove.
41480
c9d892a8
NB
414812002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
41482
41483 * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
41484 (gnat_init): Don't set hook.
41485 (gnat_expand_expr): Fix prototype.
41486
31c816cf
NB
414872002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
41488
41489 * misc.c (ggc_p): Remove.
41490
ef83161c
GB
414912002-03-27 Geert Bosch <bosch@gnat.com>
41492
41493 * prj-makr.ads, prj-makr.adb : New files.
41494
4f0ade92
NB
414952002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
41496
41497 * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
41498 (lang_mark_tree): Make static, rename.
41499
c88770e9
NB
415002002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
41501
41502 * misc.c (maybe_build_cleanup): Remove.
41503
05671968
NB
415042002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
41505
41506 * gigi.h (yyparse): Remove.
41507
ad42149c
FW
415082002-03-23 Florian Weimer <fw@deneb.enyo.de>
41509
9e94c78f 41510 From Ben Brosgol <brosgol@gnat.com>
82a4b025 41511 * gnat_rm.texi: Sync with ACT version.
ad42149c 41512
7afff7cf
NB
415132002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
41514
41515 * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
41516 (gnat_init): Remove old hook.
41517
52dabb6c
NB
415182002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
41519
41520 * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
41521 (yyparse): Rename gnat_parse_file.
41522
6cbcc541
GK
415232002-03-14 Geoffrey Keating <geoffk@redhat.com>
41524
41525 Delete all lines containing "$Revision:".
41526 * xeinfo.adb: Don't look for revision numbers.
41527 * xnmake.adb: Likewise.
41528 * xsinfo.adb: Likewise.
41529 * xsnames.adb: Likewise.
41530 * xtreeprs.adb: Likewise.
41531
2f9834e8
KG
415322002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41533
41534 * misc.c (gnat_tree_code_type, gnat_tree_code_length,
41535 gnat_tree_code_name): Delete.
41536 (tree_code_type, tree_code_length, tree_code_name): Define.
41537 (gnat_init): Don't try to copy into the various tree_code
41538 arrays.
41539
63adb4ff
RH
415402002-03-11 Richard Henderson <rth@redhat.com>
41541
41542 * Makefile.in (.NOTPARALLEL): Add fake tag.
41543
43ff4547
GB
415442002-03-07 Geert Bosch <bosch@gnat.com>
41545
82a4b025
NB
41546 * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
41547 s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
41548 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
43ff4547
GB
41549 switch-m.adb, switch-m.ads : New files.
41550
07fc65c4
GB
415512002-03-07 Geert Bosch <bosch@gnat.com>
41552
41553 * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
41554 4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
41555 4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
41556 4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
41557 5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
41558 5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
41559 5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
41560 5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
41561 5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
41562 5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
41563 5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
41564 5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
41565 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
41566 5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
41567 5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
41568 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
41569 5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
41570 5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
41571 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
41572 5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
41573 7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
41574 Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
41575 a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
41576 a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
41577 a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
41578 a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
41579 a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
41580 a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
41581 a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
41582 adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
41583 atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
41584 bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
41585 csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
41586 einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
41587 eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
41588 exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
41589 exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
41590 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
41591 exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
41592 exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
41593 expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
41594 freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
41595 g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
41596 g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
41597 g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
41598 g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
41599 g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
41600 g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
41601 gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
41602 gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
41603 gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
41604 i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
41605 impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
41606 lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
41607 lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
41608 memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
41609 mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
41610 nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
41611 output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
41612 par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
41613 prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
41614 prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
41615 prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
41616 rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
41617 s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
41618 s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
41619 s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
41620 s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
41621 s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
41622 s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
41623 s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
41624 s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
41625 s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
41626 s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
41627 s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
41628 s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
41629 s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
41630 s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
41631 s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
41632 sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
41633 sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
41634 sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
41635 sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
41636 sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
41637 sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
41638 sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
41639 sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
41640 sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
41641 sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
41642 snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
41643 stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
41644 table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
41645 tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
41646 treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
41647 types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
41648 utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
41649 xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
41650
41651 * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
41652 g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
41653 mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
41654 osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
41655
41656 * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
41657 5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
41658
41659 * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
41660 to mdll-fil.ad[bs] and mdll-util.ad[bs]
41661
41662 * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
41663 from mdllfile.ad[bs] and mdlltool.ad[bs]
41664
ca7558fc
KG
416652002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41666
41667 * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
41668 lieu of explicit sizeof/sizeof.
41669
63e1b1c4
NB
416702002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
41671
41672 * misc.c (copy_lang_decl): Remove.
41673
f458d1d5
ZW
416742002-02-27 Zack Weinberg <zack@codesourcery.com>
41675
41676 * misc.c: Delete traditional-mode-related code copied from the
41677 C front end but not used, or used only to permit the compiler
41678 to link.
41679
21e09952
RH
416802002-02-07 Richard Henderson <rth@redhat.com>
41681
41682 * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
41683 * adaint.h (__gnat_to_gm_time): Update prototype.
41684
ead39bdf 416852002-01-30 Richard Henderson <rth@redhat.com>
e803a64b
RH
41686
41687 * trans.c (tree_transform) [N_Loop_Statement]: Use
41688 expand_exit_loop_top_cond.
41689
72ac12bf
RH
416902001-12-23 Richard Henderson <rth@redhat.com>
41691
41692 * utils.c (end_subprog_body): Push GC context around
41693 rest_of_compilation for nested functions.
41694
14aacce7
RH
416952001-12-23 Richard Henderson <rth@redhat.com>
41696
41697 * 5nosinte.ads: Get definition of "int" from Interfaces.C.
41698
b3d45d87
FW
416992001-12-23 Florian Weimer <fw@deneb.enyo.de>
41700
ece2d1b8
FW
41701 * gnat-style.texi (Declarations and Types): Remove ancient style
41702 rule which was mandated by code generation issues.
82a4b025 41703
b3d45d87
FW
41704 * gnat-style.texi (header): Add @dircategory, @direntry.
41705 (title page): Remove date.
41706 (general) Add @./@: where approriate, and two spaces after the
41707 full stop at the end of a sentence. Use @samp markup when
41708 referring concrete lexical entities (keywords, attribute names
41709 etc.), and @syntax for ARM grammar elements. Use @r for English
41710 text in comments. Use @emph for emphasis. Change "if-statements"
41711 etc. to "if statements" (without @samp). Break long lines. Make
41712 casing of section names consistent.
41713 (Identifiers): Use @samp markup for variable names.
41714 (Comments): Use @samp markup for comment characters. Line-end
41715 comments may follow any Ada code, not just statements. Fix
41716 misspelling of "Integer" as "integer".
41717 (Loop statements): Do not use variable name "I", use "J".
41718 (Subprogram Declarations): Document alignment.
41719 (Subprogram Bodies, Block statements): Document empty line before
41720 "begin".
41721
7a73ad55
FW
417222001-12-22 Florian Weimer <fw@deneb.enyo.de>
41723
41724 * make.adb (Add_Switch): Make Generic_Position a procedure. The
41725 function approach did not work well because of a side effect (the
41726 function call could reallocate the table which was being indexed
41727 using its result). Fixes ada/4851.
41728
9e94c78f 417292001-12-19 Robert Dewar <dewar@gnat.com>
17c5c8a5
GB
41730
41731 * bindgen.adb: Minor reformatting
82a4b025 41732
17c5c8a5 41733 * cstand.adb: Minor reformatting
82a4b025 41734
17c5c8a5
GB
41735 * fmap.adb: Minor reformatting
41736 Change name from Add for Add_To_File_Map (Add is much too generic)
41737 Change Path_Name_Of to Mapped_Path_Name
41738 Change File_Name_Of to Mapped_File_Name
41739 Fix copyright dates in header
82a4b025 41740
17c5c8a5
GB
41741 * fmap.ads:
41742 Change name from Add for Add_To_File_Map (Add is much too generic)
41743 Change Path_Name_Of to Mapped_Path_Name
41744 Change File_Name_Of to Mapped_File_Name
41745 Fix copyright dates in header
82a4b025 41746
17c5c8a5
GB
41747 * fname-uf.adb: Minor reformatting. New names of stuff in Fmap.
41748 Add use clause for Fmap.
82a4b025 41749
17c5c8a5 41750 * make.adb: Minor reformatting
82a4b025 41751
17c5c8a5
GB
41752 * osint.adb: Minor reformatting. Change of names in Fmap.
41753 Add use clause for Fmap.
82a4b025 41754
17c5c8a5 41755 * prj-env.adb: Minor reformatting
82a4b025 41756
17c5c8a5 41757 * prj-env.ads: Minor reformatting
82a4b025 41758
07fc65c4
GB
41759 * switch.adb: Minor reformatting. Do proper raise of Bad_Switch if
41760 error found (there were odd exceptions to this general rule in
17c5c8a5 41761 -gnatec/-gnatem processing)
82a4b025 41762
9e94c78f 417632001-12-19 Olivier Hainque <hainque@gnat.com>
17c5c8a5 41764
07fc65c4
GB
41765 * raise.c (__gnat_eh_personality): Exception handling personality
41766 routine for Ada. Still in rough state, inspired from the C++ version
17c5c8a5 41767 and still containing a bunch of debugging artifacts.
07fc65c4 41768 (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
17c5c8a5 41769 inspired from the C++ library.
82a4b025 41770
07fc65c4 41771 * raise.c (eh_personality): Add comments. Part of work for the GCC 3
17c5c8a5 41772 exception handling integration.
82a4b025 41773
9e94c78f 417742001-12-19 Arnaud Charlet <charlet@gnat.com>
17c5c8a5
GB
41775
41776 * Makefile.in: Remove use of 5smastop.adb which is obsolete.
41777 (HIE_SOURCES): Add s-secsta.ad{s,b}.
41778 (HIE_OBJS): Add s-fat*.o
07fc65c4 41779 (RAVEN_SOURCES): Remove files that are no longer required. Add
17c5c8a5
GB
41780 interrupt handling files.
41781 (RAVEN_MOD): Removed, no longer needed.
82a4b025 41782
9e94c78f 417832001-12-19 Robert Dewar <dewar@gnat.com>
17c5c8a5
GB
41784
41785 * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
41786 Add 2001 to copyright date
82a4b025 41787
07fc65c4 41788 * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
17c5c8a5 41789 need to force universal inlining for these cases.
82a4b025 41790
9e94c78f 417912001-12-19 Arnaud Charlet <charlet@gnat.com>
17c5c8a5 41792
07fc65c4 41793 * s-taprob.adb: Minor clean ups so that this unit can be used in
17c5c8a5 41794 Ravenscar HI.
82a4b025 41795
17c5c8a5
GB
41796 * exp_ch7.adb: Allow use of secondary stack in HI mode.
41797 Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
82a4b025 41798
9e94c78f 417992001-12-19 Vincent Celier <celier@gnat.com>
17c5c8a5 41800
07fc65c4 41801 * prj-tree.ads (Project_Node_Record): Add comments for components
17c5c8a5 41802 Pkg_Id and Case_Insensitive.
82a4b025 41803
9e94c78f 418042001-12-19 Pascal Obry <obry@gnat.com>
17c5c8a5
GB
41805
41806 * g-socket.adb: Minor reformatting. Found while reading code.
82a4b025 41807
9e94c78f 418082001-12-19 Robert Dewar <dewar@gnat.com>
17c5c8a5
GB
41809
41810 * prj-tree.ads: Minor reformatting
41811
38be19f6
JM
418122001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
41813
41814 * config-lang.in (diff_excludes): Remove.
41815
9e94c78f 418162001-12-17 Ed Schonberg <schonber@gnat.com>
6510f4c9 41817
07fc65c4
GB
41818 * sem_res.adb (Resolve_Selected_Component): do not generate a
41819 discriminant check if the selected component is a component of
6510f4c9
GB
41820 the argument of an initialization procedure.
41821
07fc65c4
GB
41822 * trans.c (tree_transform, case of arithmetic operators): If result
41823 type is private, the gnu_type is the base type of the full view,
6510f4c9 41824 given that the full view itself may be a subtype.
82a4b025 41825
9e94c78f 418262001-12-17 Robert Dewar <dewar@gnat.com>
6510f4c9
GB
41827
41828 * sem_res.adb: Minor reformatting
82a4b025 41829
07fc65c4
GB
41830 * trans.c (tree_transform, case N_Real_Literal): Add missing third
41831 parameter in call to Machine (unknown horrible effects from this
6510f4c9 41832 omission).
82a4b025 41833
6510f4c9
GB
41834 * urealp.h: Add definition of Round_Even for call to Machine
41835 Add third parameter for Machine
82a4b025 41836
9e94c78f 418372001-12-17 Ed Schonberg <schonber@gnat.com>
6510f4c9 41838
07fc65c4 41839 * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
6510f4c9 41840 predefined units in No_Run_Time mode.
82a4b025 41841
9e94c78f 418422001-12-17 Richard Kenner <kenner@gnat.com>
6510f4c9
GB
41843
41844 * misc.c (insn-codes.h): Now include.
82a4b025 41845
9e94c78f 418462001-12-17 Olivier Hainque <hainque@gnat.com>
6510f4c9 41847
07fc65c4 41848 * a-except.adb: Preparation work for future integration of the GCC 3
6510f4c9
GB
41849 exception handling mechanism
41850 (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
41851 to factorize previous code sequences and make them externally callable,
41852 e.g. for the Ada personality routine when the GCC 3 mechanism is used.
41853 (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
41854 Use the new notification routines.
82a4b025 41855
9e94c78f 418562001-12-17 Emmanuel Briot <briot@gnat.com>
6510f4c9
GB
41857
41858 * prj-tree.ads (First_Choice_Of): Document the when others case
82a4b025 41859
9e94c78f 418602001-12-17 Arnaud Charlet <charlet@gnat.com>
6510f4c9 41861
07fc65c4 41862 * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
6510f4c9 41863 HI-E mode, in order to support Ravenscar profile properly.
82a4b025 41864
07fc65c4 41865 * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
6510f4c9 41866 mode on 32 bits targets.
82a4b025 41867
9e94c78f 418682001-12-17 Vincent Celier <celier@gnat.com>
6510f4c9
GB
41869
41870 * fmap.adb: Initial version.
82a4b025 41871
6510f4c9 41872 * fmap.ads: Initial version.
82a4b025 41873
6510f4c9
GB
41874 * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
41875 If search is successfully done, add to mapping.
82a4b025 41876
6510f4c9 41877 * frontend.adb: Initialize the mapping if a -gnatem switch was used.
82a4b025 41878
6510f4c9
GB
41879 * make.adb:
41880 (Gnatmake): Add new local variable Mapping_File_Name.
41881 Create mapping file when using project file(s).
41882 Delete mapping file before exiting.
82a4b025 41883
6510f4c9 41884 * opt.ads (Mapping_File_Name): New variable
82a4b025 41885
6510f4c9 41886 * osint.adb (Find_File): Use path name found in mapping, if any.
82a4b025 41887
6510f4c9 41888 * prj-env.adb (Create_Mapping_File): New procedure
82a4b025 41889
6510f4c9 41890 * prj-env.ads (Create_Mapping_File): New procedure.
82a4b025 41891
07fc65c4 41892 * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
6510f4c9 41893 (Mapping_File)
82a4b025 41894
6510f4c9 41895 * usage.adb: Add entry for new switch -gnatem.
82a4b025 41896
6510f4c9 41897 * Makefile.in: Add dependencies for fmap.o.
82a4b025 41898
9e94c78f 418992001-12-17 Ed Schonberg <schonber@gnat.com>
6510f4c9 41900
07fc65c4 41901 * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
6510f4c9
GB
41902 is a package instantiation rewritten as a package body.
41903 (Install_Withed_Unit): Undo previous change, now redundant.
82a4b025 41904
9e94c78f 419052001-12-17 Gary Dismuke <dismukes@gnat.com>
6510f4c9
GB
41906
41907 * layout.adb:
41908 (Compute_Length): Move conversion to Unsigned to callers.
41909 (Get_Max_Size): Convert Len expression to Unsigned after calls to
41910 Compute_Length and Determine_Range.
41911 (Layout_Array_Type): Convert Len expression to Unsigned after calls to
41912 Compute_Length and Determine_Range.
41913 Above changes fix problem with length computation for supernull arrays
07fc65c4 41914 where Max (Len, 0) wasn't getting applied due to the Unsigned
6510f4c9 41915 conversion used by Compute_Length.
82a4b025 41916
9e94c78f 419172001-12-17 Arnaud Charlet <charlet@gnat.com>
6510f4c9
GB
41918
41919 * rtsfind.ads:
41920 (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
41921 System.Secondary_Stack.
41922 (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
41923 in HI-E mode.
41924 Remove unused entity RE_Exception_Data.
82a4b025 41925
6510f4c9 41926 * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
82a4b025 41927
6510f4c9
GB
41928 * rident.ads (No_Secondary_Stack): New restriction.
41929
9e94c78f 419302001-12-17 Joel Brobecker <brobecke@gnat.com>
3a77b68d 41931
07fc65c4 41932 * gnat_rm.texi: Fix minor typos. Found while reading the section
3a77b68d
GB
41933 regarding "Bit_Order Clauses" that was sent to a customer.
41934 Very interesting documentation!
82a4b025 41935
9e94c78f 419362001-12-17 Robert Dewar <dewar@gnat.com>
3a77b68d 41937
07fc65c4
GB
41938 * sem_case.adb (Choice_Image): Avoid creating improper character
41939 literal names by using the routine Set_Character_Literal_Name. This
3a77b68d 41940 fixes bombs in certain error message cases.
82a4b025 41941
9e94c78f 419422001-12-17 Arnaud Charlet <charlet@gnat.com>
3a77b68d
GB
41943
41944 * a-reatim.adb: Minor reformatting.
82a4b025 41945
9e94c78f 419462001-12-17 Ed Schonberg <schonber@gnat.com>
3a77b68d 41947
07fc65c4
GB
41948 * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
41949 case where the formal is an extension of another formal in the current
3a77b68d 41950 unit or in a parent generic unit.
82a4b025 41951
9e94c78f 419522001-12-17 Arnaud Charlet <charlet@gnat.com>
3a77b68d 41953
07fc65c4 41954 * s-tposen.adb: Update comments. Minor reformatting.
3a77b68d 41955 Minor code clean up.
82a4b025 41956
3a77b68d 41957 * s-tarest.adb: Update comments. Minor code reorganization.
82a4b025 41958
9e94c78f 419592001-12-17 Gary Dismukes <dismukes@gnat.com>
3a77b68d 41960
07fc65c4 41961 * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
3a77b68d 41962 when Java_VM.
82a4b025 41963
9e94c78f 419642001-12-17 Robert Dewa <dewar@gnat.com>
3a77b68d
GB
41965
41966 * exp_attr.adb: Minor reformatting
82a4b025 41967
9e94c78f 419682001-12-17 Ed Schonberg <schonber@gnat.com>
3a77b68d 41969
07fc65c4 41970 * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
3a77b68d
GB
41971 derivations nested within a child unit: verify that the parent
41972 type is declared in an outer scope.
82a4b025 41973
9e94c78f 419742001-12-17 Robert Dewar <dewar@gnat.com>
3a77b68d
GB
41975
41976 * sem_ch12.adb: Minor reformatting
82a4b025 41977
9e94c78f 419782001-12-17 Ed Schonberg <schonber@gnat.com>
3a77b68d 41979
07fc65c4
GB
41980 * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
41981 warning if current unit is a predefined one, from which bodies may
3a77b68d 41982 have been deleted.
82a4b025 41983
9e94c78f 419842001-12-17 Robert Dewar <dewar@gnat.com>
3a77b68d
GB
41985
41986 * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
41987 Fix header format. Add 2001 to copyright date.
82a4b025 41988
07fc65c4 41989 * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
3a77b68d
GB
41990 which caused CE during compilation if checks were enabled.
41991
9e94c78f 419922001-12-17 Vincent Celier <celier@gnat.com>
79503fdd
GB
41993
41994 * make.adb:
41995 (Switches_Of): New function
41996 (Test_If_Relative_Path): New procedure
41997 (Add_Switches): Use new function Switches_Of
41998 (Collect_Arguments_And_Compile): Use new function Switches_Of.
41999 When using a project file, test if there are any relative
42000 search path. Fail if there are any.
07fc65c4
GB
42001 (Gnatmake): Only add switches for the primary directory when not using
42002 a project file. When using a project file, change directory to the
42003 object directory of the main project file. When using a project file,
42004 test if there are any relative search path. Fail if there are any.
42005 When using a project file, fail if specified executable is relative
42006 path with directory information, and prepend executable, if not
42007 specified as an absolute path, with the exec directory. Make sure
79503fdd 42008 that only one -o switch is transmitted to the linker.
82a4b025 42009
79503fdd 42010 * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
82a4b025 42011
79503fdd
GB
42012 * prj-nmsc.adb:
42013 (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
42014 when using a non standard naming scheme.
42015 (Check_Ada_Naming_Scheme): Make sure that error messages
42016 do not raise exceptions.
42017 (Is_Illegal_Append): Return True if there is no dot in the suffix.
42018 (Language_Independent_Check): Check the exec directory.
82a4b025 42019
79503fdd 42020 * prj.adb (Project_Empty): Add new component Exec_Directory
82a4b025 42021
79503fdd
GB
42022 * prj.ads:
42023 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
42024 (Project_Data): Add component Exec_Directory
82a4b025 42025
79503fdd 42026 * snames.adb: Updated to match snames.ads revision 1.215
82a4b025 42027
79503fdd 42028 * snames.ads: Added Exec_Dir
82a4b025 42029
9e94c78f 420302001-12-17 Robert Dewar <dewar@gnat.com>
79503fdd
GB
42031
42032 * make.adb: Minor reformatting
82a4b025 42033
79503fdd 42034 * prj-nmsc.adb: Minor reformatting
82a4b025 42035
79503fdd 42036 * snames.adb: Updated to match snames.ads
82a4b025 42037
79503fdd
GB
42038 * snames.ads: Alphebetize entries for project file
42039
9e94c78f 420402001-12-17 Ed Schonberg <schonber@gnat.com>
79503fdd 42041
07fc65c4 42042 * trans.c (process_freeze_entity): Do nothing if the entity is a
79503fdd 42043 subprogram that was already elaborated.
82a4b025 42044
9e94c78f 420452001-12-17 Richard Kenner <kenner@gnat.com>
82a4b025 42046
07fc65c4 42047 * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
79503fdd
GB
42048 and Esize if object is referenced via pointer.
42049
9e94c78f 420502001-12-17 Ed Schonberg <schonber@gnat.com>
855ff2e1 42051
07fc65c4 42052 * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
855ff2e1 42053 is discrete before analyzing choices.
82a4b025 42054
9e94c78f 420552001-12-17 Joel Brobecker <brobecke@gnat.com>
855ff2e1 42056
07fc65c4
GB
42057 * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
42058 containing the name of the Ada Main Program. This string is mainly
855ff2e1
GB
42059 intended for the debugger.
42060 (Gen_Output_File_C): Do the equivalent change when generating a C file.
82a4b025 42061
9e94c78f 420622001-12-17 Robert Dewar <dewar@gnat.com>
855ff2e1
GB
42063
42064 * ali.adb: Set new Dummy_Entry field in dependency entry
82a4b025 42065
855ff2e1 42066 * ali.ads: Add Dummy_Entry field to source dependency table
82a4b025 42067
855ff2e1 42068 * bcheck.adb (Check_Consistency): Ignore dummy D lines
82a4b025 42069
855ff2e1 42070 * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
82a4b025 42071
855ff2e1 42072 * lib-writ.ads: Document dummy D lines for missing files.
82a4b025 42073
855ff2e1
GB
42074 * types.ads: (Dummy_Time_Stamp): New value for non-existant files
42075
9e94c78f 420762001-12-17 Robert Dewar <dewar@gnat.com>
c1c22e7a
GB
42077
42078 * ali.adb: Type reference does not reset current file.
82a4b025 42079
c1c22e7a 42080 * ali.adb: Recognize and scan renaming reference
82a4b025 42081
c1c22e7a 42082 * ali.ads: Add spec for storing renaming references.
82a4b025 42083
c1c22e7a 42084 * lib-xref.ads: Add documentation for handling of renaming references
82a4b025 42085
c1c22e7a 42086 * lib-xref.adb: Implement output of renaming reference.
82a4b025 42087
c1c22e7a
GB
42088 * checks.adb:
42089 (Determine_Range): Document local variables
42090 (Determine_Range): Make sure Hbound is initialized. It looks as though
42091 there could be a real problem here with an uninitialized reference
42092 to Hbound, but no actual example of failure has been found.
82a4b025 42093
9e94c78f 420942001-12-17 Laurent Pautet <pautet@gnat.com>
c1c22e7a
GB
42095
42096 * g-socket.ads:
42097 Fix comment of Shutdown_Socket and Close_Socket. These functions
42098 should not fail silently because if they are called twice, this
42099 probably means that there is a race condition in the user program.
42100 Anyway, this behaviour is consistent with the rest of this unit.
42101 When an error occurs, an exception is raised with the error message
42102 as exception message.
42103
9e94c78f 421042001-12-17 Robert Dewar <dewar@gnat.com>
7eb7bb07 42105
07fc65c4 42106 * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
7eb7bb07 42107 that it happens before modification of Sloc values for -gnatD.
82a4b025 42108
07fc65c4 42109 * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
7eb7bb07 42110 so that it happens before modification of Sloc values for -gnatD.
82a4b025 42111
7eb7bb07
RD
42112 * switch.adb: Minor reformatting
42113
b6434700
RH
421142001-12-15 Richard Henderson <rth@redhat.com>
42115
42116 * sem_ch7.adb: Wrap comment.
42117
44d6a706
JM
421182001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
42119
42120 * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
42121 5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
42122 5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
42123 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
42124 5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
42125 7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
42126 a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
42127 a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
42128 cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
42129 exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
42130 exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
42131 g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
42132 gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
42133 make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
42134 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
42135 repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
42136 s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
42137 s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
42138 s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
42139 s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
42140 sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
42141 sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
42142 sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
42143 sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
42144 spelling errors.
42145
9e94c78f 421462001-12-14 Vincent Celier <celier@gnat.com>
226ada7a 42147
07fc65c4 42148 * osint.adb(Create_Debug_File): When an object file is specified,
226ada7a 42149 put the .dg file in the same directory as the object file.
82a4b025 42150
9e94c78f 421512001-12-14 Robert Dewar <dewar@gnat.com>
226ada7a
GB
42152
42153 * osint.adb: Minor reformatting
82a4b025 42154
07fc65c4 42155 * lib-xref.adb (Output_Instantiation): New procedure to generate
226ada7a 42156 instantiation references.
82a4b025 42157
226ada7a 42158 * lib-xref.ads: Add documentation of handling of generic references.
82a4b025 42159
07fc65c4 42160 * ali.adb (Read_Instantiation_Ref): New procedure to read
226ada7a 42161 instantiation references
82a4b025 42162
226ada7a 42163 * ali.ads: Add spec for storing instantiation references
82a4b025 42164
226ada7a 42165 * bindusg.adb: Minor reformatting
82a4b025 42166
226ada7a 42167 * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
82a4b025 42168
226ada7a 42169 * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
82a4b025 42170
226ada7a 42171 * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
82a4b025 42172
226ada7a 42173 * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
82a4b025 42174
226ada7a
GB
42175 * csets.ads:
42176 Fix header format
42177 Add 2001 to copyright date
42178 Add entry for Latin-5 (Cyrillic ISO-8859-5)
82a4b025 42179
9e94c78f 421802001-12-14 Matt Gingell <gingell@gnat.com>
226ada7a 42181
07fc65c4 42182 * adaint.c: mktemp is a macro on Lynx and can not be used as an
226ada7a 42183 expression.
82a4b025 42184
9e94c78f 421852001-12-14 Richard Kenner <kenner@gnat.com>
226ada7a 42186
07fc65c4 42187 * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
226ada7a 42188 if operand is CONSTRUCTOR.
82a4b025 42189
9e94c78f 421902001-12-14 Ed Schonberg <schonber@gnat.com>
226ada7a 42191
07fc65c4
GB
42192 * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
42193 before emiting check on right-hand side, so that exception information
226ada7a
GB
42194 is correct.
42195
9e94c78f 421962001-12-14 Richard Kenner <kenner@gnat.com>
82a4b025 42197
07fc65c4 42198 * utils.c (create_var_decl): Throw away initializing expression
226ada7a 42199 if just annotating types and non-constant.
82a4b025 42200
9e94c78f 422012001-12-14 Vincent Celier <celier@gnat.com>
226ada7a
GB
42202
42203 * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
42204 Default_Ada_...
82a4b025 42205
07fc65c4 42206 * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
226ada7a
GB
42207 Remove functions.
42208 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
82a4b025 42209
07fc65c4 42210 * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
226ada7a
GB
42211 Remove functions.
42212 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
42213
9b94bf9e
JM
422142001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
42215
42216 * ChangeLog: Remove piece of diff output.
42217
9e94c78f 422182001-12-14 Geert Bosch <bosch@gnat.com>
449d2be3
GB
42219
42220 * config-lang.in: Update copyright notice
42221
42222 * layout.adb: Remove commented out code.
42223
42224 * mdllfile.ads: Update copyright notice. Fix header format.
42225
42226 * sem_case.ads: Likewise.
42227
42228 * sem_ch3.adb: Minor reformatting.
42229
9e94c78f 422302001-12-12 Geert Bosch <bosch@gnat.com>
e5bd5cb4
GB
42231
42232 * freeze.ads: Update copyright date.
42233
42234 * g-comlin.ads: Minor reformatting.
42235
42236 * gnat-style.texi: Fix typo.
42237
9e94c78f 422382001-12-12 Geert Bosch <bosch@gnat.com>
b468d8ec
GB
42239
42240 * einfo.h: Regenerate.
42241
9e94c78f 422422001-12-12 Ed Schonberg <schonber@gnat.com>
ed7da216 42243
07fc65c4 42244 * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
ed7da216 42245 on known node types, rather than untyped fields. Further cleanups.
82a4b025 42246
9e94c78f 422472001-12-12 Robert Dewar <dewar@gnat.com>
ed7da216
GB
42248
42249 * sem_ch12.adb:
42250 (Save_Entity_Descendant): Minor comment update.
42251 (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
07fc65c4 42252 of an N_Attribute_Reference node. As per note below, this does not
ed7da216 42253 eliminate need for Associated_Node in attribute ref nodes.
07fc65c4 42254 (Associated_Node): Documentation explicitly mentions attribute
ed7da216 42255 reference nodes, since this field is used in such nodes.
82a4b025 42256
ed7da216
GB
42257 * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
42258
9e94c78f 422592001-12-12 Robert Dewar <dewar@gnat.com>
de76a39c
GB
42260
42261 * s-stalib.adb: Add more comments on with statements being needed
82a4b025 42262
de76a39c 42263 * par-ch12.adb: Minor reformatting
82a4b025 42264
de76a39c 42265 * prj-dect.ads: Fix copyright header
82a4b025 42266
07fc65c4 42267 * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
de76a39c 42268 inputs fit in 32 bits, but the result still overflows.
82a4b025 42269
de76a39c 42270 * s-fatgen.ads: Minor comment improvement
82a4b025 42271
9e94c78f 422722001-12-12 Ed Schonberg <schonber@gnat.com>
de76a39c 42273
07fc65c4
GB
42274 * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
42275 formal derived type, look for an inherited component from the full
de76a39c 42276 view of the parent, if any.
82a4b025 42277
9e94c78f 422782001-12-12 Robert Dewar <dewar@gnat.com>
de76a39c
GB
42279
42280 * checks.ads (Apply_Alignment_Check): New procedure.
82a4b025 42281
07fc65c4
GB
42282 * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
42283 ensure that the alignment of objects with address clauses is
de76a39c
GB
42284 appropriate, and raise PE if not.
42285
07fc65c4 42286 * exp_util.ads (Must_Be_Aligned): Removed, replaced by
de76a39c 42287 Exp_Pakd.Known_Aligned_Enough
82a4b025 42288
de76a39c
GB
42289 * mdllfile.ads: Minor reformatting
42290
42291 * mlib-fil.ads: Minor reformatting
82a4b025 42292
9e94c78f 422932001-12-12 Ed Schonberg <schonber@gnat.com>
de76a39c 42294
07fc65c4
GB
42295 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
42296 fix to any component reference if enclosing record has non-standard
de76a39c 42297 representation.
82a4b025 42298
9e94c78f 422992001-12-12 Vincent Celier <celier@gnat.com>
de76a39c 42300
07fc65c4 42301 * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
de76a39c 42302 Iteration
82a4b025 42303
9e94c78f 423042001-12-12 Ed Schonberg <schonber@gnat.com>
de76a39c 42305
07fc65c4 42306 * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
de76a39c 42307 sem_attr.
82a4b025 42308
9e94c78f 423092001-12-12 Robert Dewar <dewar@gnat.com>
de76a39c
GB
42310
42311 * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
82a4b025 42312
9e94c78f 423132001-12-12 Emmanuel Briot <briot@gnat.com>
de76a39c
GB
42314
42315 * g-regexp.adb: Remove all debug code, since it isn't required anymore,
42316 and it adds dependencies to system.io.
82a4b025 42317
9e94c78f 423182001-12-12 Pascal Obry <obry@gnat.com>
de76a39c 42319
07fc65c4 42320 * g-dirope.adb (Expand_Path.Var): Correctly detect end of
de76a39c
GB
42321 variable name.
42322
9e94c78f 423232001-12-11 Ed Schonberg <schonber@gnat.com>
0b09835f
ES
42324
42325 * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
07fc65c4
GB
42326 that is the parent of other generics, the instance body replaces the
42327 instance node. Retrieve the instance of the spec, which is the one
0b09835f
ES
42328 that is visible in clients and within the body.
42329
9e94c78f 423302001-12-11 Vincent Celier <celier@gnat.com>
598c3446
GB
42331
42332 * gnatmain.adb: Initial version.
82a4b025 42333
598c3446 42334 * gnatmain.ads: Initial version.
82a4b025 42335
598c3446 42336 * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
82a4b025 42337
598c3446 42338 * snames.adb: Updated to match snames.ads.
82a4b025 42339
598c3446 42340 * snames.ads: Added Gnatstub.
82a4b025 42341
9e94c78f 423422001-12-11 Vincent Celier <celier@gnat.com>
598c3446 42343
07fc65c4 42344 * prj-attr.adb (Initialization_Data): Change name from
598c3446 42345 Initialisation_Data.
82a4b025 42346
9e94c78f 423472001-12-11 Emmanuel Briot <briot@gnat.com>
598c3446
GB
42348
42349 * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
42350 + and * applied to backslashed expressions like \r.
82a4b025 42351
9e94c78f 423522001-12-11 Vasiliy Fofanov <fofanov@gnat.com>
598c3446 42353
07fc65c4 42354 * g-os_lib.ads: String_List type added, Argument_List type is now
598c3446 42355 subtype of String_List.
82a4b025 42356
9e94c78f 423572001-12-11 Robert Dewar <dewar@gnat.com>
598c3446
GB
42358
42359 * g-os_lib.ads: Change copyright to FSF
42360 Add comments for String_List type
82a4b025 42361
9e94c78f 423622001-12-11 Vincent Celier <celier@gnat.com>
598c3446 42363
07fc65c4 42364 * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
598c3446
GB
42365 string to the buffer).
42366
9e94c78f 423672001-12-11 Ed Schonberg <schonber@gnat.com>
7fb754a1
GB
42368
42369 * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
42370 sem_attr.
82a4b025 42371
7fb754a1 42372 * sem_attr.adb: Simplify previous fix for Address.
07fc65c4
GB
42373 (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
42374 to avoid anomalies where the bound of the type appears to raise
7fb754a1
GB
42375 constraint error.
42376
9e94c78f 423772001-12-11 Robert Dewar <dewar@gnat.com>
7fb754a1 42378
07fc65c4 42379 * lib-xref.adb (Output_Refs): Make sure pointers are always properly
7fb754a1 42380 handled.
82a4b025 42381
9e94c78f 423822001-12-11 Ed Schonber <schonber@gnat.com>
7fb754a1 42383
07fc65c4 42384 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
7fb754a1 42385 renamed unit before checking for recursive instantiations.
82a4b025 42386
9e94c78f 423872001-12-11 Emmanuel Briot <briot@gnat.com>
7fb754a1
GB
42388
42389 * prj.ads: Add comments for some of the fields.
42390
9e94c78f 423912001-12-11 Robert Dewar <dewar@gnat.com>
0873bafc 42392
07fc65c4 42393 * lib-xref.adb (Output_Refs): Don't output type references outside
0873bafc 42394 the main unit if they are not otherwise referenced.
82a4b025 42395
9e94c78f 423962001-12-11 Ed Schonberg <schonber@gnat.com>
0873bafc 42397
07fc65c4 42398 * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
0873bafc 42399 code and diagnose additional illegal uses
82a4b025 42400
07fc65c4 42401 * sem_util.adb (Is_Object_Reference): An indexed component is an
0873bafc 42402 object only if the prefix is.
82a4b025 42403
9e94c78f 424042001-12-11 Vincent Celier <celier@gnat.com>
0873bafc
GB
42405
42406 * g-diopit.adb: Initial version.
82a4b025 42407
0873bafc 42408 * g-diopit.ads: Initial version.
82a4b025 42409
0873bafc
GB
42410 * g-dirope.adb:
42411 (Expand_Path): Avoid use of Unbounded_String
42412 (Find, Wildcard_Iterator): Moved to child package Iteration
82a4b025 42413
0873bafc 42414 * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
82a4b025 42415
9e94c78f 424162001-12-11 Robert Dewar <dewar@gnat.com>
0873bafc
GB
42417
42418 * sem_attr.adb: Minor reformatting
42419
9e94c78f 424202001-12-11 Ed Schonberg <schonber@gnat.com>
d087cd96
GB
42421
42422 * sem_ch3.adb: Clarify some ???.
82a4b025 42423
9e94c78f 424242001-12-11 Robert Dewar <dewar@gnat.com>
d087cd96 42425
07fc65c4 42426 * exp_util.adb (Must_Be_Aligned): Removed, replaced by
d087cd96 42427 Exp_Pakd.Known_Aligned_Enough
82a4b025 42428
07fc65c4 42429 * sem_ch13.adb (Check_Address_Alignment): Removed, extended
d087cd96
GB
42430 version is moved to Exp_Ch13.
42431
9e94c78f 424322001-12-11 Robert Dewar <dewar@gnat.com>
d087cd96
GB
42433
42434 * einfo.ads: Minor reformatting
82a4b025 42435
d087cd96 42436 * exp_ch5.adb: Add comment for previous.change
82a4b025 42437
d087cd96 42438 * ali.adb: New interface for extended typeref stuff.
82a4b025 42439
d087cd96 42440 * ali.ads: New interface for typeref stuff.
82a4b025 42441
d087cd96 42442 * checks.adb (Apply_Alignment_Check): New procedure.
82a4b025 42443
d087cd96 42444 * debug.adb: Add -gnatdM for modified ALI output
82a4b025 42445
d087cd96 42446 * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
82a4b025 42447
07fc65c4
GB
42448 * lib-xref.adb: Extend generation of <..> notation to cover
42449 subtype/object types. Note that this is a complete rewrite,
42450 getting rid of the very nasty quadratic algorithm previously
d087cd96 42451 used for derived type output.
82a4b025 42452
07fc65c4
GB
42453 * lib-xref.ads: Extend description of <..> notation to cover
42454 subtype/object types. Uses {..} for these other cases.
d087cd96 42455 Also use (..) for pointer types.
82a4b025 42456
d087cd96 42457 * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
82a4b025 42458
07fc65c4 42459 * exp_pakd.adb: Minor reformatting. Note that prevous RH should say:
d087cd96
GB
42460 (Known_Aligned_Enough): Replaces Must_Be_Aligned.
42461
9e94c78f 424622001-12-11 Vincent Celier <celier@gnat.com>
290986ed
GB
42463
42464 * gnatcmd.adb:
42465 Changed /COMPILE_ONLY to /ACTIONS=COMPILE
42466 Changed /BIND_ONLY to /ACTIONS=BIND
42467 Changed /LINK_ONLY to /ACTIONS=LINK
82a4b025 42468
290986ed
GB
424692001-12-11 Ed Schonberg <schonber@gnat.com>
42470
42471 * sem_ch8.adb (Find_Selected_Component): improved search for a
42472 candidate package in case of error.
82a4b025 42473
290986ed
GB
42474 * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
42475 chain back on scope stack before reinstalling use clauses.
82a4b025 42476
290986ed
GB
42477 * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
42478 is enabled, do not kill the code for the condition, to preserve
42479 warning.
42480
9e94c78f 424812001-12-11 Robert Dewar <dewar@gnat.com>
84157f51 42482
07fc65c4 42483 * checks.adb (Insert_Valid_Check): Apply validity check to expression
84157f51
GB
42484 of conversion, not to result of conversion.
42485
9e94c78f 424862001-12-11 Ed Schonberg <schonber@gnat.com>
82a4b025 42487
07fc65c4
GB
42488 * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
42489 before freezing parent. If the declarations are mutually recursive,
42490 an access to the current record type may be frozen before the
84157f51
GB
42491 derivation is complete.
42492
9e94c78f 424932001-12-05 Vincent Celier <celier@gnat.com>
7ffa903f 42494
07fc65c4 42495 * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
7ffa903f 42496 -c /COMPILE_ONLY, -l /LINK_ONLY
82a4b025 42497
7ffa903f
VC
42498 * opt.ads:
42499 (Bind_Only): New Flag
42500 (Link_Only): New flag
82a4b025 42501
07fc65c4 42502 * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
7ffa903f 42503 and -l (Link_Only)
82a4b025 42504
7ffa903f 42505 * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
82a4b025 42506
7ffa903f
VC
42507 * make.adb:
42508 (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
42509 (Gnatmake): Set the step flags. Only perform a step if the
42510 corresponding step flag is True.
42511 (Scan_Make_Arg): Reset the bind and link step flags when -u
42512 or -gnatc has been specified.
42513
9e94c78f 425142001-12-05 Ed Schonberg <schonber@gnat.com>
f91b40db 42515
07fc65c4 42516 * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
f91b40db 42517 get bounds from right operand.
82a4b025 42518
f91b40db 42519 * sem_eval.adb: Minor reformatting
82a4b025 42520
07fc65c4 42521 * exp_util.adb (Make_Literal_Range): use bound of literal rather
f91b40db 42522 than Index'First, its lower bound may be different from 1.
82a4b025 42523
07fc65c4 42524 * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
f91b40db 42525 and C48009J
82a4b025 42526
9e94c78f 425272001-12-05 Vincent Celier <celier@gnat.com>
f91b40db
GB
42528
42529 * prj-nmsc.adb Minor reformatting
82a4b025 42530
07fc65c4 42531 * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
f91b40db 42532 set and libraries are not supported.
82a4b025 42533
9e94c78f 425342001-12-05 Ed Schonberg <schonber@gnat.com>
f91b40db 42535
07fc65c4
GB
42536 * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
42537 private view explicitly, so the back-end can treat as a global
f91b40db
GB
42538 when appropriate.
42539
9e94c78f 425402001-12-05 Ed Schonberg <schonber@gnat.com>
45d04cbb
GB
42541
42542 * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
42543 unit, always replace instance node with new body, for ASIS use.
42544
9e94c78f 425452001-12-05 Vincent Celier <celier@gnat.com>
82a4b025 42546
07fc65c4
GB
42547 * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
42548 libraries are not supported and both attributes Library_Name and
45d04cbb 42549 Library_Dir are specified.
82a4b025 42550
07fc65c4 42551 * prj-proc.adb (Expression): Set location of Result to location of
45d04cbb 42552 first term.
82a4b025 42553
45d04cbb
GB
42554 * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
42555 (prj-nmsc is now importing MLib.Tgt)
82a4b025 42556
45d04cbb
GB
42557 * prj-proc.adb: Put the change indicated above that was forgotten.
42558
9e94c78f 425592001-12-05 Robert Dewar <dewar@gnat.com>
84436014
RD
42560
42561 * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
42562
9e94c78f 425632001-12-05 Ed Schonberg <schonber@gnat.com>
7ae0dcd8
ES
42564
42565 * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
42566 constraint, introduce explicit subtype declaration and derive from it.
82a4b025 42567
7ae0dcd8
ES
42568 * sem_ch3.adb: Minor reformatting
42569
9e94c78f 425702001-12-05 Robert Dewar <dewar@gnat.com>
c9a4817d 42571
07fc65c4 42572 * checks.adb (Determine_Range): Increase cache size for checks.
c9a4817d 42573 Minor reformatting
82a4b025 42574
c9a4817d
RD
42575 * exp_ch6.adb: Minor reformatting
42576 (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
42577 a parameter whose root type is System.Address, since treating such
42578 subprograms as pure in the code generator is almost surely a mistake
42579 that will lead to unexpected results.
82a4b025 42580
07fc65c4 42581 * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
c9a4817d 42582 change handling of conversions.
82a4b025 42583
c9a4817d
RD
42584 * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
42585
9e94c78f 425862001-12-05 Ed Schonberg <schonber@gnat.com>
2514b839 42587
07fc65c4
GB
42588 * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
42589 aggregate with static wrong size, attach generated Raise node to
2514b839
ES
42590 declaration.
42591
9e94c78f 425922001-12-05 Robert Dewar <dewar@gnat.com>
457b6274 42593
07fc65c4 42594 * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
457b6274
RD
42595 Fixes compilation abandoned bomb in B24009B.
42596
9e94c78f 425972001-12-05 Ed Schonberg <schonber@gnat.com>
19349925
ES
42598
42599 * sem_ch12.adb:
42600 Document use of Associated_Node on Selected_Components.
42601 (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
42602 to clarify use of untyped descendant fields.
42603
9e94c78f 426042001-12-05 Robert Dewar <dewar@gnat.com>
6663c393
RD
42605
42606 * prj-dect.ads: Add ??? comment
42607 Add 2001 to copyright notice (was not done in after all)
82a4b025 42608
6663c393 42609 * prj-part.adb: Minor reformatting. Reword one awkward error message.
82a4b025 42610
6663c393 42611 * prj.ads: Minor reformatting throughout, and add some ??? comments
82a4b025 42612
6663c393
RD
42613 * snames.ads: Minor reformatting
42614
9e94c78f 426152001-12-05 Geert Bosch <bosch@gnat.com>
d7b2a6af
GB
42616
42617 * snames.adb: Autoupdate
42618
9e94c78f 426192001-12-05 Vincent Celier <celier@gnat.com>
fbc9a404
VC
42620
42621 * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
82a4b025 42622
fbc9a404 42623 * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
82a4b025 42624
fbc9a404 42625 * prj-env.adb: Minor comment changes (modifying -> extends).
82a4b025 42626
fbc9a404 42627 * prj-nmsc.adb: Minor comment changes (modifying -> extends).
82a4b025 42628
07fc65c4 42629 * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
fbc9a404 42630 Tok_Extends.
82a4b025 42631
fbc9a404 42632 * prj.adb (Initialize): Change Modifying to Extends.
82a4b025 42633
fbc9a404 42634 * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
82a4b025 42635
fbc9a404 42636 * prj.ads: Minor comment change (Modifying -> extending).
82a4b025 42637
fbc9a404
VC
42638 * snames.ads: Change modifying to extends.
42639
9e94c78f 426402001-12-05 Robert Dewar <dewar@gnat.com>
7cff0b1b 42641
07fc65c4 42642 * sem_warn.adb: Remove stuff for conditionals, we are not going to
7cff0b1b 42643 do this after all.
82a4b025 42644
07fc65c4 42645 * sem_warn.ads: Remove stuff for conditionals, we are not going to
7cff0b1b
RD
42646 do this after all. Add 2001 to copyright notice
42647
9e94c78f 426482001-12-04 Geert Bosch <bosch@gnat.com>
4f56ebb7
GB
42649
42650 * einfo.h, sinfo.h, treeprs.ads: Regenerate.
42651
9e94c78f 426522001-12-04 Robert Dewar <dewar@gnat.com>
053defdf 42653
07fc65c4
GB
42654 * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
42655 location if we already have errors. Stops some cases of cascaded
053defdf 42656 errors.
82a4b025 42657
053defdf
RD
42658 * errout.adb: Improve comment.
42659
9e94c78f 426602001-12-04 Robert Dewar <dewar@gnat.com>
f311e166
RD
42661
42662 * sem_ch12.adb:
42663 (Analyze_Formal_Type_Definition): Defend against Error.
42664 (Analyze_Formal_Subprogram): Defend against Error.
82a4b025 42665
07fc65c4 42666 * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
f311e166
RD
42667 remove following semicolon if present. Removes cascaded error.
42668
9e94c78f 426692001-12-04 Douglas B. Rupp <rupp@gnat.com>
d61bd65a
DR
42670
42671 * bindgen.adb:
42672 (Gen_Exception_Table_Ada): Write "begin" and then return if Num
42673 exceptions equals 0.
42674 (Gen_Exception_Table_C): Return if Num exceptions equals 0.
42675 Fixes PIWG E tests (which have to be run with -gnatL).
42676
9e94c78f 426772001-12-04 Robert Dewar <dewar@gnat.com>
4ba603e2
RD
42678
42679 * einfo.ads: Minor reformatting
42680
9e94c78f 426812001-12-04 Ed Schonberg <schonber@gnat.com>
57568d91 42682
07fc65c4
GB
42683 * einfo.ads: Block_Node points to the identifier of the block, not to
42684 the block node itself, to preserve the link when the block is
42685 rewritten, e.g. within an if-statement with a static condition.
82a4b025 42686
07fc65c4 42687 * inline.adb (Cleanup_Scopes): recover block statement from block
57568d91 42688 entity using new meaning of Block_Node.
82a4b025 42689
07fc65c4 42690 * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
57568d91
ES
42691 identifier of block node, rather than to node itself.
42692
9e94c78f 426932001-12-04 Gary Dismukes <dismukes@gnat.com>
82a4b025 42694
0815d36a
GD
42695 * layout.adb:
42696 (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
42697 (Discrimify): Go back to setting the Etypes of the selected component
07fc65c4 42698 because the Vname component does not exist at this point and will
0815d36a
GD
42699 fail name resolution. Also set Analyzed.
42700 Remove with and use of Sem_Res.
42701
9e94c78f 427022001-12-04 Arnaud Charlet <charlet@gnat.com>
edc0f304
AC
42703
42704 * Makefile.in: (HIE_SOURCES): add s-fat*.
42705
9e94c78f 427062001-12-04 Robert Dewar <dewar@gnat.com>
32213142
RD
42707
42708 * sem_attr.adb:
42709 (Compile_Time_Known_Attribute): New procedure.
42710 (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
42711 proper range check.
42712
9e94c78f 427132001-12-04 Ed Schonberg <schonber@gnat.com>
c0def2ad 42714
07fc65c4 42715 * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
c0def2ad
ES
42716 processing discriminants to diagnose illegal default values.
42717
9e94c78f 427182001-12-04 Ed Schonberg <schonber@gnat.com>
ee0a48c5 42719
07fc65c4
GB
42720 * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
42721 access discriminant within a type extension that constrains its
ee0a48c5
ES
42722 parent discriminants.
42723
9e94c78f 427242001-12-04 Ed Schonberg <schonber@gnat.com>
dd5875a6 42725
07fc65c4 42726 * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
dd5875a6 42727 is malformed, use instance of Any_Id to allow analysis to proceed.
82a4b025 42728
07fc65c4 42729 * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
dd5875a6
ES
42730 type definition is illegal.
42731 (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
42732 misplaced.
42733
9e94c78f 427342001-12-04 Ed Schonberg <schonber@gnat.com>
c2a41e57 42735
07fc65c4 42736 * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
c2a41e57
ES
42737 constants.
42738
9e94c78f 427392001-12-04 Robert Dewar <dewar@gnat.com>
0ae84753
RD
42740
42741 * errout.adb: Minor reformatting
42742
9e94c78f 427432001-12-04 Robert Dewar <dewar@gnat.com>
63db260e
RD
42744
42745 * exp_util.adb: Minor reformatting from last change
82a4b025 42746
07fc65c4
GB
42747 * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
42748 which is a rewriting of an expression, traverse the original
63db260e
RD
42749 expression to remove warnings that may have been posted on it.
42750
9e94c78f 427512001-12-04 Ed Schonberg <schonber@gnat.com>
c6d289f4 42752
07fc65c4 42753 * exp_util.adb (Must_Be_Aligned): Return false for a component of a
c6d289f4
ES
42754 record that has other packed components.
42755
9e94c78f 427562001-12-04 Douglass B. Rupp <rupp@gnat.com>
5917e80d
DR
42757
42758 * adaint.c: Minor cleanups.
42759
9e94c78f 427602001-12-04 Douglass B. Rupp <rupp@gnat.com>
2c70f9dd
DR
42761
42762 * adaint.c: Do not use utime.h on vxworks.
42763
9e94c78f 427642001-12-04 Arnaud Charlet <charlet@gnat.com>
e59b3387 42765
07fc65c4 42766 * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
e59b3387
AC
42767 more confusion than it solves.
42768
9e94c78f 427692001-12-04 Geert bosch <bosch@gnat.com>
e288604a
GB
42770
42771 * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
42772
5ac21013
GB
427732001-12-04 Geert Bosch <bosch@gnat.com>
42774
07fc65c4 42775 * Makefile.in (update-sources): New target.
5ac21013
GB
42776 For use by gcc_release script.
42777
9e94c78f 427782001-12-04 Ed Schonberg <schonber@gnat.com>
7dd5bd5e 42779
07fc65c4 42780 * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
7dd5bd5e
ES
42781 a configuration pragma, it is now legal wherever a pragma can appear.
42782
a078a589
ZW
427832001-12-04 Zack Weinberg <zack@codesourcery.com>
42784
42785 * Makefile.in: Don't set ALL. Delete @cross_defines@,
42786 @cross_overrides@, @build_overrides@ stanzas. INTERNAL_CFLAGS
42787 is now @CROSS@ -DIN_GCC; update comment.
42788
9e94c78f 427892001-12-04 Robert Dewar <dewar@gnat.com>
0839863c
GB
42790
42791 * einfo.adb (Has_Pragma_Pure_Function): New flag.
42792 Fix problem that stopped ceinfo from working
82a4b025 42793
0839863c 42794 * einfo.ads (Has_Pragma_Pure_Function): New flag.
82a4b025 42795
0839863c
GB
42796 * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
42797
9e94c78f 427982001-12-04 Douglas B. Rupp <rupp@gnat.com>
9678de49
DR
42799
42800 * gnatchop.adb:
42801 (File_Time_Stamp): New procedure.
42802 (Preserve_Mode): New boolean.
42803 (Write_Unit): Pass time stamp.
42804 Implement -p switch (preserve time stamps).
82a4b025 42805
9678de49 42806 * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
82a4b025 42807
9678de49 42808 * gnatchop.adb: Do usage info for -p switch
82a4b025 42809
9678de49 42810 * adaint.h (__gnat_set_file_time_name): New function
82a4b025 42811
9678de49 42812 * adaint.c (__gnat_set_file_time_name): Implement
82a4b025 42813
9678de49
DR
42814 * adaint.h: Fix typo
42815
9e94c78f 428162001-12-03 Robert Dewar <dewar@gnat.com>
3b9a13c4 42817
667e5c5d 42818 * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
b4f94ac1 42819 have Associated_Node.
3b9a13c4 42820
9e94c78f 428212001-12-03 Robert Dewar <dewar@gnat.com>
767b404e
RD
42822
42823 * prj-proc.adb: Minor reformatting
667e5c5d 42824
767b404e
RD
42825 * make.adb: Minor reformatting
42826
9e94c78f 428272001-12-03 Geert Bosch <bosch@gnat.com>
11ac71ba 42828
667e5c5d 42829 * make.adb: Minor reformatting.
11ac71ba 42830
ef3d4d6e 428312001-12-03 Robert Dewar <dewar@gnat.com>
b1446533
RD
42832
42833 * sem_ch12.adb: Minor reformatting
42834
9e94c78f 428352001-12-03 Ed Schonberg <schonber@gnat.com>
d6d32b24 42836
667e5c5d
AJ
42837 * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
42838 push Standard on the stack before analyzing the instance body,
d6d32b24 42839 in order to have a clean visibility environment.
667e5c5d
AJ
42840
42841 * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
d6d32b24 42842
9e94c78f 428432001-12-03 Ed Schonberg <schonber@gnat.com>
13f08f03 42844
667e5c5d 42845 * sem_ch12.adb (Instantiate_Package_Body): Protect against double
13f08f03
ES
42846 instantiation of a body that contains an inlined body.
42847
9e94c78f 428482001-12-03 Ed Schonberg <schonber@gnat.com>
3bd6c100
ES
42849
42850 * sem_ch12.adb:
42851 (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
42852 to prevent freezing within formal packages.
42853 (Freeze_Subprogram_Body): If body comes from another instance that
42854 appeared before its own body, place freeze node at end of current
42855 declarative part, to prevent a back-end crash.
42856 (Inline_Instance_Body): Handle properly a package instance within
42857 a subprogram instance that is a child unit.
42858
58d07d8f
GS
428592001-12-01 Graham Stott <grahams@redhat.com>
42860
42861 * Makefile.in (misc.o): Add missing $(srcdir) prefix
42862 and add optabs.h dependency.
42863
42864 * misc.c: Include optabs.h
42865 (gnat_tree_code_type): Make static and const.
42866 (gnat_tree_code_length): Likewise.
42867 (gnat_tree_code_name): Likewise.
42868 (update_setjmp_buf): Obtain operands mode from insn_data.
42869
c87222f0
RH
428702001-11-29 Richard Henderson <rth@redhat.com>
42871
42872 * init.c: Remove obsolete dwarf2 frame.h section.
42873
d3945f0a
JM
428742001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
42875
42876 * Make-lang.in (ada.generated-manpages): New dummy target.
42877
9e94c78f 428782001-11-29 Ed Schonberg <schonber@gnat.com>
9f639397 42879
667e5c5d
AJ
42880 * g-os_lib.adb (Add_To_Command): use explicit loop to move string
42881 into Command, an array conversion is illegal here. Uncovered by
9f639397
ES
42882 ACATS B460005.
42883
9e94c78f 428842001-11-28 Geert Bosch <bosch@gnat.com>
c835e5c6
GB
42885
42886 * init.c: Minor whitespace changes.
42887
9e94c78f 428882001-11-28 Doug Rupp <rupp@gnat.com>
49bb4548 42889
667e5c5d 42890 * init.c: (__gnat_install_handler,VMS): Increase size of alternate
49bb4548
DR
42891 signal stack.
42892
ea2417e5
ZW
428932001-11-28 Zack Weinberg <zack@codesourcery.com>
42894
42895 * misc.c (gnat_expand_constant): Move declaration above
42896 definition of lang_hooks.
42897 (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
42898 (gnat_init): lang_expand_constant no longer exists.
42899
42900 (internal_error_function): Remove #ifdef HAVE_VPRINTF. We
42901 always have vprintf.
42902 (gnat_init): Always call set_internal_error_function.
42903
f8e0aa73
AJ
429042001-11-27 Andreas Jaeger <aj@suse.de>
42905
42906 * Makefile.in (stamp-tool_src_dir): Use symbolic link.
42907
d99b0e79
LG
429082001-11-27 Laurent Guerby <guerby@acm.org>
42909
42910 * Makefile.in: Regenerate Ada dependencies.
42911
3f0496e5
RH
429122001-11-26 Richard Henderson <rth@redhat.com>
42913
42914 * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
42915 gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
42916 gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
42917
92fa4733
LG
429182001-11-25 Laurent Guerby <guerby@acm.org>
42919
42920 * sysdep.c (rts_get_*): Fix style.
42921
07626501
LG
429222001-11-19 Laurent Guerby <guerby@acm.org>
42923
42924 * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
42925 since it is of no apparent use and cause warnings.
42926
22703ccc
NB
429272001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
42928
42929 * misc.c (gnat_decode_option, gnat_init_options): Make definitions
42930 static too.
42931 (gnat_init): Don't return NULL.
42932 (finish_parse): Remove.
42933
b0df4321
LG
429342001-11-17 Laurent Guerby <guerby@acm.org>
42935
42936 * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
42937 * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
42938 * io-aux.c: Provide K&R prototypes to all functions, reformat code.
42939 * lang-spec.h: Add missing struct field to silence warnings.
42940 * sysdep.c (rts_get_*): Provide K&R prototype.
42941 * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
42942 * traceback.c (Unlock_Task, Lock_Task): Likewise.
42943 * tracebak.c (__gnat_backtrace): Remove unused variable.
42944 * utils.c (end_subprog_body): Move to K&R style.
42945
d215024f
RK
42946Thu Nov 15 18:16:17 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
42947
42948 * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
42949
f5e99456
NB
429502001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
42951
42952 * misc.c (gnat_init): Change prototype. Include the
42953 functionality of the old init_parse and init_decl_processing.
42954 (gnat_init_decl_processing): New prototype.
42955 (init_parse): Remove.
42956 * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
42957
5d69f816
NB
429582001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
42959
42960 * misc.c (gnat_print_decl, gnat_print_type): Renamed.
42961 (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
42962 (print_lang_statistics, lang_print_xnode, print_lang_identifier,
42963 set_yydebug): Remove.
42964
3ac88239
NB
429652001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
42966
42967 * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
42968 (struct lang_hooks): Constify.
42969 (language_string, lang_identify): Remove.
42970 * utils.c (init_decl_processing): Update.
42971
d23c55c2
NB
429722001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
42973
42974 * misc.c: Include langhooks-def.h.
42975 * Makefile.in: Update.
42976
9e94c78f 429772001-10-30 Robert Dewar <dewar@gnat.com>
04a1b79c
RD
42978
42979 * style.adb:
42980 (Check_Identifier): Rewrite circuit to be compatible with use of letters
42981 in the upper half of ASCII.
42982 (Check_Identifier): Minor reformatting
42983
9e94c78f 429842001-10-30 Geert Bosch <bosch@gnat.com>
81fa2d39 42985
f8e0aa73 42986 * (Associated_Node, Set_Associated_Node): Do not check for
81fa2d39
GB
42987 Freeze_Entity.
42988
9e94c78f 429892001-10-30 Robert Dewar <dewar@gnat.com>
ffc5527f
RD
42990
42991 * a-reatim.ads: Minor reformatting
42992
9e94c78f 429932001-10-30 Robert Dewar <dewar@gnat.com>
865335eb 42994
f8e0aa73 42995 * gnatdll.adb: Minor reformatting throughout. Many ??? added for
865335eb
RD
42996 undocumented declarations.
42997
9e94c78f 429982001-10-30 Pascal Obry <obry@gnat.com>
5e257178 42999
f8e0aa73 43000 * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
5e257178
PO
43001 to the binder and linker.
43002 Minor style fix.
f8e0aa73 43003
5e257178
PO
43004 * mdll.ads: Fix layout. Update copyright notice.
43005
43006 * mdll.adb: Fix layout. Update copyright notice.
43007
9e94c78f 430082001-10-30 Robert Dewar <dewar@gnat.com>
1753e0ad
RD
43009
43010 * usage.adb: Minor fix to output for -gnaty.
43011
9e94c78f 430122001-10-30 Ed Schonberg <schonber@gnat.com>
84bfdde0 43013
f8e0aa73
AJ
43014 * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
43015 to accommodate all its possible values.
84bfdde0 43016
f8e0aa73 43017 * a-reatim.adb (Split): Special-case handling of Time_Span_First
84bfdde0
ES
43018 and of small absolute values of T.
43019
9e94c78f 430202001-10-30 Richard Kenner <kenner@gnat.com>
c296e5fc 43021
f8e0aa73
AJ
43022 * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
43023 set_mem_attributes since not needed and wrong if RESULT if a REG;
c296e5fc
RK
43024 fixes ACATS failures.
43025
9e94c78f 430262001-10-30 Geert Bosch <bosch@gnat.com>
07c809df
GB
43027
43028 * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
43029 s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
43030
9e94c78f 430312001-10-30 Robert Dewar <dewar@gnat.com>
f8e0aa73 43032
54d22416 43033 * bindusg.adb: Undocument -f switch.
f8e0aa73 43034
54d22416 43035 * gnatcmd.adb: Remove /FULL_ELABORATION.
f8e0aa73
AJ
43036
43037 * opt.ads (Force_RM_Elaboration_Order): Document that this is
54d22416 43038 obsolescent.
f8e0aa73 43039
54d22416 43040 * gnatbind.adb: Output new warning for use of obsolescent -f switch.
f8e0aa73 43041
54d22416
RD
43042 * gnatbind.adb: Minor update of warning msg.
43043
9e94c78f 430442001-10-30 Vincent Celier <celier@gnat.com>
af5cf6f8 43045
f8e0aa73 43046 * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
af5cf6f8 43047 for project file switches (-P (/PROJECT_FILE=),
f8e0aa73 43048 -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
af5cf6f8
VC
43049 or MEDIUM or HIGH)
43050
9e94c78f 430512001-10-30 Geert Bosch <bosch@gnat.com>
984bc4c3
GB
43052
43053 * decl.c: Minor whitespace fixes.
43054
9e94c78f 430552001-10-30 Richard Kenner <kenner@gnat.com>
5dece937
RK
43056
43057 * utils2.c (build_allocator): Test for SIZE overflow in array case too
43058
9e94c78f 430592001-10-30 Geert Bosch <bosch@gnat.com>
de4bf6cb 43060
f8e0aa73 43061 * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
de4bf6cb 43062 Found due to GCC 3.0 warning of using uninitialized value.
f8e0aa73 43063
de4bf6cb
GB
43064 * layout.adb:
43065 (Get_Max_Size): Use variant record for tracking value/expression.
43066 Makes logic clearer and prevents warnings for uninitialized variables.
43067 (Layout_Array_Type): Use variant record for tracking value/expression.
43068 Makes logic clearer and prevents warnings for uninitialized variables.
43069
9e94c78f 430702001-10-30 Robert Dewar <dewar@gnat.com>
f5e44987
RD
43071
43072 * lib.adb: Minor reformatting
43073
43074 * s-taprop.ads: Minor reformatting
43075
45659035 430762001-10-29 Laurent Guerby <guerby@acm.org>
f8e0aa73 43077
45659035
GB
43078 * init.c:
43079 (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
43080 const.
43081 (_gnat_error_handler): Make MSG const.
43082
9e94c78f 430832001-10-29 Richard Kenner <kenner@gnat.com>
45659035
GB
43084
43085 * sysdep.c: Fix localtime_r problem on LynxOS.
43086 Also remove #elif to avoid warnings.
f8e0aa73
AJ
43087
43088 * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
45659035 43089 used by this.
f8e0aa73 43090
45659035
GB
43091 * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
43092
638e383e
JM
430932001-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
43094
43095 * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
43096 exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
43097 g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
43098 g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
43099 layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
43100 s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
43101 sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
43102 sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
43103 sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
43104 types.ads, urealp.adb: Fix spelling errors.
43105
9e94c78f 431062001-10-27 Laurent Guerby <guerby@acm.org>
97f6baa0
LG
43107
43108 * trans.c (gigi): Fix non determinism leading to bootstrap
43109 comparison failures for debugging information.
43110
46b58b8c
FW
431112001-10-26 Florian Weimer <fw@deneb.enyo.de>
43112
43113 * gnat_rm.texi: Use @./@: where appropriate.
43114
9e94c78f 431152001-10-26 Robert Dewar <dewar@gnat.com>
30151c7b
RD
43116
43117 * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
43118
9e94c78f 431192001-10-26 Richard Kenner <kenner@gnat.com>
c0b1738d
RK
43120
43121 * gmem.c (__gnat_gmem_read_next): Properly check for EOF
43122
9e94c78f 431232001-10-26 Richard Kenner <kenner@gnat.com>
5b09c153 43124
f8e0aa73 43125 * decl.c (validate_size): Modify message for bad size to avoid
5b09c153
RK
43126 implication that compiler is modifying the size.
43127
9e94c78f 431282001-10-26 Robert Dewar <dewar@gnat.com>
4d553668
RD
43129
43130 * prj-util.adb: Minor reformatting. Fix bad header format.
43131
9e94c78f 431322001-10-26 Robert Dewar <dewar@gnat.com>
3e542a58
RD
43133
43134 * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
f8e0aa73 43135
3e542a58 43136 * sinfo.ads: Clarify use of Associated_Node (documentation only).
f8e0aa73
AJ
43137
43138 * sem_ch12.adb: Change Node4 to Associated_Node. Change
43139 Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
3e542a58
RD
43140 much more narrowly in places where needed. These are cleanups.
43141
9e94c78f 431422001-10-26 Joel Brobecker <brobecke@gnat.com>
0bf08bfe
JB
43143
43144 * 5zosinte.ads (null_pthread): new constant.
f8e0aa73 43145
0bf08bfe
JB
43146 * 5ztaprop.adb:
43147 (Initialize_TCB): Initialize thread ID to null, to be able to verify
43148 later that this field has been set.
43149 (Finalize_TCB): ditto.
43150 (Suspend_Task): Verify that the thread ID is not null before using it.
43151 (Resume_Task): ditto.
f8e0aa73 43152
0bf08bfe
JB
43153 * s-tasdeb.adb:
43154 (Resume_All_Tasks): Lock the tasks list before using it.
43155 (Suspend_All_Tasks): ditto.
43156
9e94c78f 431572001-10-26 Richard Kenner <kenner@gnat.com>
7a3a8c06 43158
f8e0aa73 43159 * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
7a3a8c06
RK
43160 Make constant variant of designated type for Is_Access_Constant.
43161 Call update_pointer_to with main variant.
f8e0aa73
AJ
43162
43163 * trans.c (process_freeze_entity, process_type):
7a3a8c06 43164 Call update_pointer_to on main variant.
f8e0aa73 43165
7a3a8c06
RK
43166 * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
43167 If main variant, update all other variants.
f8e0aa73
AJ
43168
43169 * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
7a3a8c06
RK
43170 TREE_STATIC.
43171
9e94c78f 431722001-10-26 Robert Dewar <dewar@gnat.com>
a160babb
RD
43173
43174 * prj-util.adb: Minor reformatting
43175
9e94c78f 431762001-10-26 Robert Dewar <dewar@gnat.com>
b403bd17
RD
43177
43178 * prj-util.adb: Minor reformatting
43179
9e94c78f 431802001-10-26 Robert Dewar <dewar@gnat.com>
5fc3b4c7
RD
43181
43182 * prj-attr.adb: Minor reformatting throughout
43183
9e94c78f 431842001-10-26 Robert Dewar <dewar@gnat.com>
8c736034
RD
43185
43186 * prj-attr.ads: Minor reformatting
43187 Add ??? comment (this whole spec has almost no comments)
43188
9e94c78f 431892001-10-26 Vincent Celier <celier@gnat.com>
47d5b6ed 43190
f8e0aa73 43191 * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
b4f94ac1 43192 ("//") that precede the drive letter on Interix.
47d5b6ed 43193
9e94c78f 431942001-10-26 Geert Bosch <bosch@gnat.com>
41af791f
GB
43195
43196 * gnat_rm.texi: Add GNAT Reference Manual.
43197
9e94c78f 431982001-10-25 Robert Dewar <dewar@gnat.com>
ed4a1468 43199
f8e0aa73 43200 * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
b4f94ac1 43201 is Error. Similar change for other renaming cases.
ed4a1468 43202
9e94c78f 432032001-10-25 Robert Dewar <dewar@gnat.com>
24377ae4
RD
43204
43205 * s-atacco.ads: Add pragma Inline_Always for functions.
43206 Fix header format. Add copyright 2001
43207
9e94c78f 432082001-10-25 Ed Schonberg <schonber@gnat.com>
fef3204e 43209
f8e0aa73 43210 * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
b4f94ac1 43211 return Error rather than Empty so that analysis can proceed.
fef3204e 43212
9e94c78f 432132001-10-25 Ed Schonberg <schonber@gnat.com>
dfc69d80 43214
f8e0aa73 43215 * sem_util.adb (Enter_Name): better handling of cascaded error
b4f94ac1 43216 messages when a unit appears in its own context.
dfc69d80 43217
9e94c78f 432182001-10-25 Ed Schonberg <schonber@gnat.com>
5a15af62 43219
f8e0aa73 43220 * sem_util.adb (Defining_Entity): in case of error, attach created
b4f94ac1 43221 entity to specification, so that semantic analysis can proceed.
5a15af62 43222
9e94c78f 432232001-10-25 Robert Dewar <dewar@gnat.com>
2b881d53 43224
f8e0aa73 43225 * sem_util.adb
b4f94ac1 43226 (Defining_Entity): Deal with Error.
2b881d53
RD
43227 (Process_End_Label): Deal with bad end label for.
43228
9e94c78f 432292001-10-25 Ed Schonberg <schonber@gnat.com>
578053f2 43230
f8e0aa73 43231 * sem_elab.adb (Check_A_Call): refine message when call is in an
578053f2
ES
43232 instance but callee is not declared in the generic unit.
43233
9e94c78f 432342001-10-25 Ed Schonberg <schonber@gnat.com>
f8e0aa73
AJ
43235
43236 * sem_elab.adb (Check_A_Call): check for renaming before finding the
0597ce0b
ES
43237 enclosing unit, which may already be different from the calling unit.
43238
9e94c78f 432392001-10-25 Geert Bosch <bosch@gnat.com>
3de6e6da
GB
43240
43241 * 4gintnam.ads: fix header format.
43242
9e94c78f 432432001-10-25 Ed Schonberg <schonber@gnat.com>
6f311316 43244
f8e0aa73 43245 * sem_res.adb (Resolve_Call): if the call is actually an indexing
b4f94ac1
ZW
43246 operation on the result of a parameterless call, perform elaboration
43247 check after the node has been properly rewritten.
f8e0aa73
AJ
43248
43249 * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
b4f94ac1
ZW
43250 inlined within the generic tree, the defining identifier is not a
43251 compilation_unit.
6f311316 43252
9e94c78f 432532001-10-25 Ed Schonberg <schonber@gnat.com>
17be0cdf 43254
f8e0aa73 43255 * sem_res.adb (Resolve): special-case resolution of Null in an
b4f94ac1 43256 instance or an inlined body to avoid view conflicts.
f8e0aa73
AJ
43257
43258 * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
b4f94ac1 43259 compatibility by retrieving the access type of the generic copy.
17be0cdf 43260
9e94c78f 432612001-10-25 Robert Dewar <dewar@gnat.com>
ce9e9122
RD
43262
43263 * sem_ch3.adb:
43264 (Analyze_Number_Declaration): Handle error expression.
43265 (Signed_Integer_Type_Declaration): Handle error bound.
43266 (Analyze_Subtype_Indication): Handle error range.
f8e0aa73 43267
ce9e9122
RD
43268 * sem_util.adb (Get_Index_Bounds): Check for Error.
43269
9e94c78f 432702001-10-25 Robert Dewar <dewar@gnat.com>
e12fbc9e 43271
f8e0aa73 43272 * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
e12fbc9e
RD
43273 in no run time mode.
43274
9e94c78f 432752001-10-25 Pascal Obry <obry@gnat.com>
52b80488 43276
f8e0aa73 43277 * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
b4f94ac1 43278 mode case for ALLOC case.
f8e0aa73
AJ
43279
43280 * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
b4f94ac1 43281 all platforms. Improvement of last change.
52b80488 43282
9e94c78f 432832001-10-25 Robert Dewar <dewar@gnat.com>
316ad9c5
RD
43284
43285 * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
43286
1a7e4df4
GB
432872001-10-25 Geert Bosch <bosch@gnat.com>
43288
43289 * osint.adb (Is_Relative): Remove duplicate.
43290
9e94c78f 432912001-10-25 Pascal Obry <obry@gnat.com>
90a9fff2 43292
f8e0aa73 43293 * osint.adb (Read_Default_Search_Dirs): correctly detect relative
b4f94ac1 43294 pathnames in UNIX and DOS style with drive letter.
90a9fff2 43295 (Is_Relative): new routine.
f8e0aa73 43296
90a9fff2 43297 * osint.adb: Minor reformatting
f8e0aa73
AJ
43298
43299 * osint.adb (Is_Relative): implementation using
b4f94ac1 43300 GNAT.OS_Lib.Is_Absolute_Path. Better fix.
90a9fff2 43301
9e94c78f 433022001-10-25 Pascal Obry <obry@gnat.com>
5c1ba4cc 43303
f8e0aa73 43304 * g-dirope.adb (Basename): correctly compute offset between the
b4f94ac1 43305 original Path and the translated one.
f8e0aa73 43306
5c1ba4cc
PO
43307 * g-dirope.adb: (Base_Name): add some comments.
43308
9e94c78f 433092001-10-25 Robert Dewar <dewar@gnat.com>
a7fb206d 43310
f8e0aa73 43311 * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
b4f94ac1 43312 in HIE mode, avoids compilation abandoned message
f8e0aa73 43313
a7fb206d 43314 * exp_imgv.adb: Correct typo in previous change
f8e0aa73 43315
a7fb206d
RD
43316 * exp_imgv.adb: Correct typo in previous change (not my day!)
43317
9e94c78f 433182001-10-25 Robert Dewar <dewar@gnat.com>
e6a7e62e
RD
43319
43320 * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
43321
9e94c78f 433222001-10-25 Pascal Obry <obry@gnat.com>
75c09e7d 43323
f8e0aa73 43324 * g-awk.ads: Move all pragma inlines next to the routine
0d2b8e0b 43325 declarations. This is more uniform with other GNAT spec.
75c09e7d 43326
0d2b8e0b 433272001-10-22 Geert Bosch <bosch@gnat.com>
d2740a69
GB
43328
43329 * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
43330
0d2b8e0b 433312001-10-19 Geert Bosch <bosch@gnat.com>
d7ac9bdd
GB
43332
43333 * Makefile.in (tools, gnattools): Remove gnatmem.
43334
17ed6335
RH
433352001-10-17 Richard Henderson <rth@redhat.com>
43336
43337 * Makefile.in (misc.o): Depend on langhooks.h.
43338 * misc.c: Include it.
43339 (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
43340 (LANG_HOOKS_DECODE_OPTION): New.
43341 (lang_hooks): Use LANG_HOOKS_INITIALIZER.
43342
f2436274
FW
433432001-10-16 Florian Weimer <fw@deneb.enyo.de>
43344
43345 * trans.c (tree_transform): Adjust to recent change in
43346 expand_asm_operands to implement named asm operands.
43347
b14127e6
ES
433482001-10-11 Ed Schonberg <schonber@gnat.com>
43349
f8e0aa73 43350 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
b14127e6
ES
43351 renaming of discriminant for mutable record type.
43352
e70ee92a
RD
433532001-10-11 Robert Dewar <dewar@gnat.com>
43354
43355 * validsw.adb: Properly save -gnatVn status.
43356
9e94c78f 433572001-10-11 Robert Dewar <dewar@gnat.com>
f8e0aa73 43358
9a5621d7
RD
43359 * usage.adb: Add lines for V switch.
43360
f8e0aa73 43361 * gnatcmd.adb (COMPILE): Revise translations for -gnatV
9a5621d7
RD
43362 (/VALIDITY_CHECKING).
43363
9e94c78f 433642001-10-11 Ed Schonberg <schonber@gnat.com>
45667f04 43365
f8e0aa73 43366 * sem_type.adb (Add_One_Interp): an operator for a type declared in
45667f04
ES
43367 an extension of System is known to be visible.
43368
9e94c78f 433692001-10-11 Ed Schonberg <schonber@gnat.com>
c3de5c4c 43370
f8e0aa73 43371 * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
c3de5c4c
ES
43372 properly. Fixes regression on ACATS C34005G.
43373
9e94c78f 433742001-10-11 Robert Dewar <dewar@gnat.com>
4fa964a6 43375
f8e0aa73 43376 * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
4fa964a6
RD
43377 loop in generic instance, since this is likely not very useful.
43378
9e94c78f 433792001-10-11 Robert Dewar <dewar@gnat.com>
0868e09c 43380
f8e0aa73 43381 * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
0868e09c 43382 the error message for high integrity mode.
f8e0aa73
AJ
43383
43384 * rtsfind.adb (RTE): Give message if we try to find an entity that
0868e09c 43385 is not available in high integrity mode.
f8e0aa73 43386
0868e09c
RD
43387 * rtsfind.ads:
43388 (OK_To_Use_In_HIE_Mode): New array.
43389 (RTE): May return Empty in high integrity mode.
f8e0aa73
AJ
43390
43391 * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
43392 OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
43393
43394 * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
43395 unit if not inlined always and in no runtime mode. Fixes problem
0868e09c 43396 caused by new Rtsfind changes.
f8e0aa73
AJ
43397
43398 * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
0868e09c 43399 body is deleted.
f8e0aa73
AJ
43400
43401 * rtsfind.adb (RTE): Make sure we do not try to load unit after
0868e09c
RD
43402 giving message for entity not available in high integrity mode.
43403
9e94c78f 434042001-10-11 Pascal Obry <obry@gnat.com>
f8e0aa73 43405
934abf9c
PO
43406 * impunit.adb: Add GNAT.CRC32.
43407
9e94c78f 434082001-10-11 Ed Schonberg <schonber@gnat.com>
3c72bea4 43409
f8e0aa73
AJ
43410 * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
43411 properly the case where one universal operand in a non-static
3c72bea4
ES
43412 exponentiation of a real literal.
43413
9e94c78f 434142001-10-11 Ed Schonberg <schonber@gnat.com>
44d8d2bb 43415
f8e0aa73
AJ
43416 * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
43417 clause, return the gobal finalization list, for lack of anthing else.
44d8d2bb 43418
9e94c78f 434192001-10-11 Ed Schonberg <schonber@gnat.com>
9e2b9627 43420
f8e0aa73
AJ
43421 * exp_ch7.adb (Make_Transient_Block): if statement is within
43422 exception handler, always use new transient scope to place Clean
9e2b9627
ES
43423 procedure.
43424
9e94c78f 434252001-10-11 Pascal Obry <obry@gnat.com>
cfac6e9f
PO
43426
43427 * Makefile.in:
43428 (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
43429 (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
43430 (GNATLS_RTL_OBJS): add g-crc32.o
43431 (GNATMAKE_RTL_OBJS): add g-crc32.o
f8e0aa73 43432
cfac6e9f
PO
43433 * ali-util.adb:
43434 (CRC_Match): new function.
f8e0aa73 43435 (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
cfac6e9f
PO
43436 instead of the previous simple checksum algorithm.
43437 (Time_Stamp_Mismatch): use CRC_Match for comparison.
43438 (Set_Source_Table): idem.
f8e0aa73 43439
cfac6e9f 43440 * ali-util.ads:
f8e0aa73 43441 (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
cfac6e9f
PO
43442 instead of simple checksum.
43443 (CRC_Match): new function.
43444 (CRC_Error): new constant.
f8e0aa73
AJ
43445
43446 * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
43447 a CRC now and not a simple checksum. A CRC uses lower-case hex
cfac6e9f 43448 letters, fixes ambiguity in parsing.
f8e0aa73
AJ
43449
43450 * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
cfac6e9f 43451 is what this variable will store.
f8e0aa73 43452
cfac6e9f 43453 * bcheck.adb: Change reference to chechsum in comments by CRC.
f8e0aa73
AJ
43454 (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
43455 rename All_Checksum_Match to All_CRC_Match. Change due to API
43456 renaming since now GNAT does not use a simple checksum but a
cfac6e9f 43457 CRC using GNAT.CRC32.
f8e0aa73
AJ
43458
43459 * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
cfac6e9f 43460 now and not anymore a simple checksum.
f8e0aa73
AJ
43461
43462 * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
cfac6e9f 43463 places.
f8e0aa73 43464
cfac6e9f 43465 * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
f8e0aa73 43466
cfac6e9f
PO
43467 * scans.adb:
43468 (Restore_Scan_State): rename Checksum to CRC.
43469 (Save_Scan_State): idem.
f8e0aa73 43470
cfac6e9f
PO
43471 * scans.ads:
43472 With GNAT.CRC32.
43473 (Checksum): rename to CRC.
43474 (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
f8e0aa73
AJ
43475
43476 * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
cfac6e9f 43477 GNAT.CRC32). Update copyright notice.
f8e0aa73
AJ
43478
43479 * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
cfac6e9f 43480 GNAT.CRC32). Update copyright notice.
f8e0aa73 43481
cfac6e9f
PO
43482 * scn.adb:
43483 (Accumulate_Checksum): removed.
43484 (Update): new procedure. Add a wide-character into the CRC.
f8e0aa73 43485
cfac6e9f
PO
43486 * sinput-l.adb:
43487 (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
f8e0aa73 43488 (Load_File): fix initialization of S (change Source_Checksum to
cfac6e9f 43489 Source_CRC)
f8e0aa73
AJ
43490
43491 * sinput-p.adb (Load_Project_File): rename Source_Checksum to
cfac6e9f 43492 Source_CRC in S initialization.
f8e0aa73 43493
cfac6e9f 43494 * sinput.adb (Source_Checksum): renamed to Source_CRC.
f8e0aa73 43495
cfac6e9f
PO
43496 * sinput.ads (Source_Checksum): renamed to Source_CRC.
43497 Update comments for the CRC.
f8e0aa73 43498
cfac6e9f 43499 * types.adb (Hex): Use lowercase for the letter part.
f8e0aa73
AJ
43500
43501 * types.ads (Get_Hex_String): Returns the hexadecimal representation
43502 for a word. This is currently used only for CRC. In previous version,
43503 the checksum was using a representation with all letter being
43504 upper-case. With the new implementation (using CRC) we do not remove
43505 the 32th bit of the CRC, so we can have an upper-case starting letter
43506 in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
43507 It is ambigous since the CRC was optional and could be followed by
43508 options like EB, EE. So now this routines uses lower-case letter for
43509 the hexadecimal representation. Strange enough only lower case letters
cfac6e9f 43510 where checked in Scan_ALI (even if this was not a possible case).
f8e0aa73 43511
cfac6e9f 43512 * gnatvsn.ads (Library_Version): changed to 3.15a.
f8e0aa73
AJ
43513
43514 * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
cfac6e9f 43515 for the compiler.
f8e0aa73
AJ
43516
43517 * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
cfac6e9f 43518 for the compiler.
f8e0aa73 43519
cfac6e9f
PO
43520 * ali-util.adb: Redo previous change to avoid using word CRC everywhere
43521 Add 2001 to copyright notice
43522 (Accumulate_Checksum): Modify to use System.CRC32.
f8e0aa73
AJ
43523
43524 * ali-util.ads: Redo changes of previous revision to continue to use
cfac6e9f 43525 the word Checksum. Add 2001 to copyright notice.
f8e0aa73 43526
cfac6e9f
PO
43527 * ali.adb: Undo some of previous changes, not needed.
43528 Keep the change for lower case letters in the checksum.
f8e0aa73 43529
cfac6e9f
PO
43530 * ali.ads: Undo previous change not needed.
43531
43532 * bcheck.adb: Undo most of previous change, not needed.
43533 But do use Checksums_Match for checksum comparison.
f8e0aa73 43534
cfac6e9f
PO
43535 * gnatls.adb: Undo most of previous change, not needed.
43536 But do use Checksums_Match for comparing checksums.
f8e0aa73 43537
cfac6e9f 43538 * lib-load.adb: Undo previous change, not needed.
f8e0aa73 43539
cfac6e9f 43540 * lib-writ.adb: Undo previous change, not needed.
f8e0aa73
AJ
43541
43542 * lib-writ.ads: Document that checksums use lower case,
cfac6e9f 43543 not upper case letters.
f8e0aa73 43544
cfac6e9f 43545 * scans.adb: Undo previous change, not needed
f8e0aa73 43546
cfac6e9f 43547 * scans.ads: Undo previous change, not needed.
f8e0aa73 43548
cfac6e9f 43549 * scn-nlit.adb: Undo previous changes, not needed.
f8e0aa73 43550
cfac6e9f 43551 * scn-slit.adb: Undo previous change, not needed. Fix header format.
f8e0aa73 43552
cfac6e9f
PO
43553 * scn.adb:
43554 (Accumulate_Checksum): Use System.CRC32.
43555 (Initialize_Checksum): New procedure.
43556 Remove other changes of previous revision.
f8e0aa73 43557
cfac6e9f 43558 * sinput-p.adb: Undo previous change, not needed.
f8e0aa73 43559
cfac6e9f
PO
43560 * sinput.adb: Undo previous change, not needed.
43561
43562 * sinput-l.adb: Undo previous change, not needed.
f8e0aa73
AJ
43563
43564 * sinput.ads: Undo previous change, not needed. Keep only comment
cfac6e9f 43565 on new checksum algorithm
f8e0aa73 43566
cfac6e9f
PO
43567 * Makefile.in: Add s-crc32 as needed, remove g-crc32.
43568 Also remove a-tags and a-stream from GNAT sources.
f8e0aa73 43569
cfac6e9f 43570 * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
f8e0aa73 43571
cfac6e9f
PO
43572 * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
43573
4d6d06a5
GB
435742001-10-11 Geert Bosch <bosch@gnat.com>
43575
43576 * einfo.h: Regenerate.
43577
43578 * nmake.ads: Regenerate.
43579
43580 * nmake.adb: Regenerate.
43581
43582 * sinfo.h: Regenerate.
43583
43584 * treeprs.adb: Regenerate.
43585
c97412e2
GB
435862001-10-10 Geert Bosch <bosch@gnat.com>
43587
43588 * gnat-style.texi: New file describing coding guidelines for Ada.
f8e0aa73 43589
9e94c78f 435902001-10-10 Ed Schonberg <schonber@gnat.com>
b83018ca 43591
f8e0aa73 43592 * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
b83018ca
ES
43593 is Flag174.
43594
e834fe1f
GB
435952001-10-10 Geert Bosch <bosch@gnat.com>
43596
43597 * snames.ads: Add new names for project facility.
43598
43599 * snames.adb: Update to reflect snames.ads changes.
43600
43601 * snames.h: Update to reflect snames.ads changes.
43602
9e94c78f 436032001-10-10 Vincent Celier <celier@gnat.com>
b30668b7
VC
43604
43605 * make.adb:
43606 (Add_Switches): reflect the changes for the switches attributes
43607 Default_Switches indexed by the programming language,
43608 Switches indexed by the file name.
43609 (Collect_Arguments_And_Compile): Idem.
43610 Reflect the attribute name changes.
f8e0aa73 43611
b30668b7
VC
43612 * prj-attr.adb:
43613 (Initialisation_Data): Change the names of some packages and
43614 attributes.
43615 (Initialize): process case insensitive associative arrays.
f8e0aa73 43616
b30668b7
VC
43617 * prj-attr.ads:
43618 (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
f8e0aa73 43619
b30668b7
VC
43620 * prj-dect.adb:
43621 (Parse_Attribute_Declaration): For case insensitive associative
43622 arrays, set the index string to lower case.
f8e0aa73 43623
b30668b7
VC
43624 * prj-env.adb:
43625 Reflect the changes of the project attributes.
f8e0aa73 43626
b30668b7
VC
43627 * prj-nmsc.adb:
43628 Replace Check_Naming_Scheme by Ada_Check and
43629 Language_Independent_Check.
f8e0aa73 43630
b30668b7
VC
43631 * prj-nmsc.ads:
43632 Replaced Check_Naming_Scheme by 2 procedures:
43633 Ada_Check and Language_Independent_Check.
f8e0aa73 43634
b30668b7
VC
43635 * prj-proc.adb:
43636 (Process_Declarative_Items): For case-insensitive associative
43637 arrays, set the index string to lower case.
43638 (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
43639 Prj.Nmsc.Check_Naming_Scheme.
f8e0aa73 43640
b30668b7
VC
43641 * prj-tree.adb:
43642 (Case_Insensitive): New function
43643 (Set_Case_Insensitive): New procedure
f8e0aa73 43644
b30668b7
VC
43645 * prj-tree.ads:
43646 (Case_Insensitive): New function
43647 (Set_Case_Insensitive): New procedure
43648 (Project_Node_Record): New flag Case_Insensitive.
f8e0aa73 43649
b30668b7
VC
43650 * prj-util.adb:
43651 (Value_Of): new function to get the string value of a single
43652 string variable or attribute.
f8e0aa73 43653
b30668b7
VC
43654 * prj-util.ads:
43655 (Value_Of): new function to get the string value of a single
43656 string variable or attribute.
f8e0aa73 43657
b30668b7
VC
43658 * prj.adb:
43659 (Ada_Default_Spec_Suffix): New function
43660 (Ada_Default_Impl_Suffix): New function
43661 Change definitions of several constants to reflect
43662 new components of record types.
f8e0aa73 43663
b30668b7
VC
43664 * prj.ads:
43665 (Naming_Data): Change several components to reflect new
43666 elements of naming schemes.
43667 (Project_Data): New flags Sources_Present and
43668 Language_Independent_Checked.
43669 (Ada_Default_Spec_Suffix): New function.
43670 (Ada_Default_Impl_Suffix): New function.
f8e0aa73 43671
b30668b7
VC
43672 * snames.ads:
43673 Modification of predefined names for project manager: added
43674 Implementation, Specification_Exceptions, Implementation_Exceptions,
43675 Specification_Suffix, Implementation_Suffix, Separate_Suffix,
43676 Default_Switches, _Languages, Builder, Cross_Reference,
43677 Finder. Removed Body_Part, Specification_Append, Body_Append,
43678 Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
43679 Gnatlink.
f8e0aa73 43680
b30668b7
VC
43681 * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
43682 Add comments.
f8e0aa73 43683
b30668b7
VC
43684 * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
43685 not that it is Nil_Variable_Value.
f8e0aa73 43686
b30668b7
VC
43687 * prj.ads: Add ??? for uncommented declarations
43688
9e94c78f 436892001-10-10 Ed Schonberg <schonber@gnat.com>
662e57b4 43690
f8e0aa73
AJ
43691 * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
43692 constant, do not indicate possible modification, so that gigi can
662e57b4
ES
43693 treat it as a bona fide constant.
43694
9e94c78f 436952001-10-10 Robert Dewar <dewar@gnat.com>
72e4357f
RD
43696
43697 * sem_prag.adb: Add processing for pragma External.
f8e0aa73 43698
72e4357f 43699 * snames.ads: Add entry for pragma External.
f8e0aa73 43700
72e4357f 43701 * par-prag.adb: Add pragma External.
f8e0aa73 43702
72e4357f
RD
43703 * snames.adb: Updated to match snames.ads.
43704
9e94c78f 437052001-10-10 Ed Schonberg <schonber@gnat.com>
7bc1c7df
ES
43706
43707 * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
43708 a dynamic task if the allocator appears in an indexed assignment
43709 or selected component assignment.
f8e0aa73
AJ
43710
43711 * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
43712 For a dynamic task in an assignment statement, use target of
7bc1c7df
ES
43713 assignment to generate meaningful name.
43714
9e94c78f 437152001-10-10 Ed Schonberg <schonber@gnat.com>
c84700e7 43716
f8e0aa73 43717 * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
c84700e7
ES
43718 a generic package.
43719
43720 * einfo.ads: Body_Entity is also defined for generic package.
43721 Documentation change only
f8e0aa73
AJ
43722
43723 * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
43724 others_choice for a discriminated component initialization,
43725 convert discriminant references into the corresponding discriminals.
43726
43727 * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
43728 only if original type is private and expression has to be wrapped
c84700e7 43729 in a conversion.
f8e0aa73
AJ
43730
43731 * checks.adb:
43732 (Apply_Constraint_Check): Do not perform length check
c84700e7 43733 if expression is an aggregate with only an others_choice.
f8e0aa73 43734 (Length_N_Cond): two references to the same in_parameter
c84700e7
ES
43735 (typically the discriminal in an init_proc) denote the same value.
43736 Two useful optimization uncovered by bugfixes above.
43737
9e94c78f 437382001-10-10 Robert Dewar <dewar@gnat.com>
d8d80dcd 43739
f8e0aa73 43740 * xeinfo.adb: Change int to char in translation of enumeration types.
d8d80dcd
RD
43741 This fixes a problem in the C representation of component alignment.
43742 Add 2001 to copyright notice
43743
9e94c78f 437442001-10-10 Richard Kenner <kenner@gnat.com>
a8fee948 43745
f8e0aa73 43746 * decl.c: (validate_size): Do check size of object of integral type
a8fee948
RK
43747 if it is a packed array type.
43748
9e94c78f 437492001-10-10 Richard Kenner <kenner@gnat.com>
c2d7fe59 43750
f8e0aa73 43751 * decl.c: (gnat_to_gnu_entity, case object): Also materialize
c2d7fe59
RK
43752 VAR_DECL for constant if not Is_Public but -O0.
43753
fb75e100
RK
437542001-10-10 Richard Kenner <kenner@gnat.com>
43755
43756 * misc.c (struct lang_hooks): Add new initializer to match GCC change.
43757
1724557a
GB
437582001-10-10 Geert Bosch <bosch@gnat.com>
43759
f8e0aa73 43760 * xnmake.adb (XNmake): Fix handling of -s/-b options. No longer
1724557a
GB
43761 use '/' as switch character, allowing for absolute file names.
43762
9f2f9eb6
JM
437632001-10-09 Joseph S. Myers <jsm28@cam.ac.uk>
43764
43765 * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
43766 FSF address.
43767
8fecf41d
GB
437682001-10-08 Geert Bosch <bosch@gnat.com>
43769
43770 * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
43771 Automatically build utilities when files need to be regenerated.
43772
589f1edf
GB
437732001-10-08 Geert Bosch <bosch@gnat.com>
43774
43775 * xsnames.adb: New utility for updating snames.ads and snames.adb
43776
67f28219
ZW
437772001-10-08 Zack Weinberg <zack@codesourcery.com>
43778
43779 * Make-lang.in (ADAFLAGS): Add -W -Wall.
43780 (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
43781 (gnat1): Also depend on attribs.o.
43782 (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
43783 * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
43784 (ADAC): Set to @ADAC@ in stage1, $(CC) later.
43785 (ADAFLAGS): Add -W -Wall.
43786 (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
43787 take out CFLAGS.
43788
43789 (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
43790 s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
43791 s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
43792 Use $(ADAC), not $(CC), as compilation command.
43793
43794 (gnattools): Depend directly on tools to build, don't use
43795 recursive make.
43796 (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
43797
43798 * einfo.h, sinfo.h: New files (autogenerated).
43799
295ef2bb
RH
438002001-10-08 Richard Henderson <rth@redhat.com>
43801
43802 * comperr.adb (Abort_In_Progress): New.
43803 (Compiler_Abort): Use it to prevent recursion.
43804
9e94c78f 438052001-10-08 Robert Dewar <dewar@gnat.com>
5c736541
RD
43806
43807 * atree.adb: Set Error_Posted in Error node, helps error recovery.
67f28219
ZW
43808
43809 * par-endh.adb (Output_End_Expected): We should also not test
5c736541 43810 Error_Posted on the Error node, since now it is always set.
67f28219
ZW
43811
43812 * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
5c736541 43813 to help error recovery. Part of general work on 9407-004.
67f28219 43814
5c736541 43815 * par.adb: Add ??? for misuse of error
67f28219 43816
5c736541
RD
43817 * sem_res.adb:
43818 (Resolve): Defend against Error, fixes 9407-003.
43819 (Resolve_Discrete_Subtype_Indication): Defend against Error.
67f28219
ZW
43820
43821 * sinfo.ads (N_Error): Now has Etype field (which will be set
5c736541
RD
43822 to Any_Type to help error recovery).
43823
9e94c78f 438242001-10-08 Richard Kenner <kenner@gnat.com>
a153ae15
RK
43825
43826 * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
43827 Consistently set MEM attributes from expression; fixes
43828 bootstrap failure on x86.
43829
9e94c78f 438302001-10-08 Geert Bosch <bosch@gnat.com>
743f3c7b
GB
43831
43832 * 5oosinte.adb: Add 2001 to copyright notice.
43833
9e94c78f 438342001-10-08 Geert Bosch <bosch@gnat.com>
210c4ef4
GB
43835
43836 * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
43837
43838 * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
43839
cc712abf
JM
438402001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
43841
43842 * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
43843
9e94c78f 438442001-10-05 Geert Bosch <bosch@gnat.com>
4c4abc0f
GB
43845
43846 * adaint.h: Small formatting fix.
43847
7f50e2e3
GB
438482001-10-04 Geert Bosch <bosch@gnat.com>
43849
43850 * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
43851 Arg is int, not FILE *, in dummy version of functions.
67f28219 43852
7f50e2e3
GB
43853 * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
43854 Arg is int, not FILE *.
43855
5d1a9698
GB
438562001-10-04 Geert Bosch <bosch@gnat.com>
43857
43858 * 3lsoccon.ads: Added file, missed with initial check ins.
67f28219 43859
5d1a9698
GB
43860 * 4lintnam.ads: Fix header format.
43861 Change Linux to GNU/Linux.
67f28219 43862
5d1a9698
GB
43863 * 5iosinte.adb: Change Linux to GNU/Linux.
43864
43865 * 5iosinte.ads: Change Linux to GNU/Linux.
67f28219 43866
5d1a9698 43867 * 5itaprop.adb: Change Linux to GNU/Linux.
67f28219 43868
5d1a9698
GB
43869 * 5itaspri.ads: Change Linux to GNU/Linux.
43870 Update copyright notice.
67f28219 43871
5d1a9698 43872 * 5lintman.adb: Change Linux to GNU/Linux.
67f28219 43873
5d1a9698 43874 * 5lml-tgt.adb: Change Linux to GNU/Linux.
67f28219 43875
5d1a9698 43876 * 5losinte.ads: Change Linux to GNU/Linux.
67f28219 43877
5d1a9698 43878 * 5lsystem.ads: Change Linux to GNU/Linux.
67f28219 43879
5d1a9698 43880 * 5qosinte.adb: Change Linux to GNU/Linux.
67f28219 43881
5d1a9698 43882 * 5qosinte.ads: Change Linux to GNU/Linux.
67f28219 43883
5d1a9698 43884 * 5qparame.ads: Change Linux to GNU/Linux.
67f28219 43885
5d1a9698 43886 * 5qtaprop.adb: Change Linux to GNU/Linux.
67f28219 43887
5d1a9698
GB
43888 * 5qtaspri.ads: Change Linux to GNU/Linux.
43889 Add 2001 to copyright notice.
67f28219 43890
5d1a9698
GB
43891 * 5vintman.ads: Change Linux to GNU/Linux.
43892 Fix header format. Add 2001 to copyright notice.
67f28219 43893
5d1a9698 43894 * g-soccon.ads: Change Linux to GNU/Linux.
67f28219 43895
5d1a9698
GB
43896 * g-trasym.ads: Change Linux to GNU/Linux.
43897 Add 2001 to copyright notice.
67f28219 43898
5d1a9698 43899 * memtrack.adb: Change Linux to GNU/Linux.
67f28219 43900
5d1a9698
GB
43901 * s-intman.ads: Change Linux to GNU/Linux.
43902 Add 2001 to copyright notice. Fix header format.
67f28219 43903
5d1a9698 43904 * s-stache.adb: Change Linux to GNU/Linux.
67f28219 43905
5d1a9698 43906 * adaint.c: Change Linux to GNU/Linux.
67f28219 43907
5d1a9698 43908 * cio.c: Change Linux to GNU/Linux.
67f28219 43909
5d1a9698 43910 * cstreams.c: Change Linux to GNU/Linux.
67f28219 43911
5d1a9698 43912 * init.c: Change Linux to GNU/Linux.
67f28219 43913
5d1a9698 43914 * gmem.c: Change Linux to GNU/Linux.
67f28219 43915
5d1a9698
GB
43916 * tracebak.c: Change Linux to GNU/Linux.
43917
43918
c25ca2d7
GB
439192001-10-02 Geert Bosch <bosch@gnat.com>
43920
43921 * misc.c (insert_default_attributes): Add dummy version.
This page took 6.307141 seconds and 5 git commands to generate.