]> gcc.gnu.org Git - gcc.git/blame - gcc/ada/ChangeLog
[multiple changes]
[gcc.git] / gcc / ada / ChangeLog
CommitLineData
46ff89f3
AC
12009-04-08 Ed Schonberg <schonberg@adacore.com>
2
3 * inline.adb (Back_End_Cannot_Inline): Do not mark a body as inlineable
4 by the back-end if it contains a call to a subprogram without a
5 previous spec that is declared in the same unit.
6
7 * errout.ads: Update comments on uses of dirs
8
92009-04-08 Robert Dewar <dewar@adacore.com>
10
11 * exp_ch4.adb (Expand_Concatenate): Make sure nodes are properly typed
12
812f574f
AC
132009-04-08 Tristan Gingold <gingold@adacore.com>
14
15 * sem_prag.adb: Restrict pragma Thread_Local_Storage to library level
16 variables.
17 Set Has_Gigi_Rep_Item flag to TLS variables (to ease gigi work).
18
192009-04-08 Vincent Celier <celier@adacore.com>
20
21 * prj-nmsc.adb:
22 (Add_Source): Add the mapping of the unit name to source file name in
23 the Unit_Sources_HT hash table, if the unit name is not null.
24
25 * prj.adb (Reset): Reset hash table Tree.Unit_Sources_HT
26
27 * prj.ads (Unit_Sources_Htable): New hash table instantiation
28 (Project_Tree_Data): New component Unit_Sources_HT
29
4c8a5bb8
AC
302009-04-08 Thomas Quinot <quinot@adacore.com>
31
32 * sem_ch8.adb: Minor reformatting.
33 Minor code reorganization.
34
352009-04-08 Robert Dewar <dewar@adacore.com>
36
37 * snames.h, einfo.adb, einfo.ads, sem_prag.adb, snames.adb,
38 snames.ads, freeze.adb, par-prag.adb: Add implementation of
39 pragma Thread_Local_Storage, setting new flag
40 Has_Pragma_Thread_Local_Storage in corresponding entities.
41
ecc4ddde
AC
422009-04-08 Emmanuel Briot <briot@adacore.com>
43
44 * prj.ads: Update comment on switches file
45
46 * prj-nmsc.adb: Code clean up. Use renaming clauses.
47
482009-04-08 Robert Dewar <dewar@adacore.com>
49
50 * exp_ch4.adb (Expand_Concatenate): Further fixes to bounds handling
51
522009-04-08 Thomas Quinot <quinot@adacore.com>
53
54 * ali-util.adb: Minor comment fix
55
562009-04-08 Ed Schonberg <schonberg@adacore.com>
57
58 * sem_ch8.adb (Analyze_Use_Type): Improve error message when clause
59 appears in a context clause, and the enclosing package is mentioned in
60 a limited_with_clause.
61 (Use_One_Type): Reject clause if type is still incomplete.
62
a29262fd
AC
632009-04-08 Emmanuel Briot <briot@adacore.com>
64
65 * prj-nmsc.adb (Check_File, Process_Sources_In_Multi_Language_Mode):
66 avoid copies of Source_Data variables when possible, since these
67 involve calls to memcpy() which are done too many times.
68
692009-04-08 Robert Dewar <dewar@adacore.com>
70
71 * exp_ch4.adb (Expand_Concatenate): Clean up code
72
a2dc5812
AC
732009-04-07 Thomas Quinot <quinot@adacore.com>
74
75 * exp_ch4.adb (Expand_Concatenate): Add missing conversion to index
76 type for the case of concatenating a constrained array indexed by an
77 enumeration type.
78
792009-04-07 Ed Schonberg <schonberg@adacore.com>
80
81 * sem_ch6.adb (Check_Conformance): when checking conformance of an
82 operation that overrides an abstract operation inherited from an
83 interface, return False if only one of the controlling formals is an
84 access parameter.
85
862009-04-07 Ed Schonberg <schonberg@adacore.com>
87
88 * sem_ch8.adb (Analyze_Object_Renaming): additional error messages
89 mandated by AI05-105.
90
912009-04-07 Vincent Celier <celier@adacore.com>
92
93 * prj-nmsc.adb (Get_Mains): Warn if a main is an empty string
94
952009-04-07 Thomas Quinot <quinot@adacore.com>
96
97 * usage.adb: Minor fix in usage message.
98
99 * sem_ch10.adb (Remove_Homonyms): Fix subtype of formal in body to
100 match declaration; the correct subtype is Node_Id, not Entity_Id,
101 because the expected node kind is an identifier, not a defining
102 identifier.
103
104 * switch-c.adb: Minor reformatting.
105
106 * uintp.adb: Minor reformatting.
107
1082009-04-07 Robert Dewar <dewar@adacore.com>
109
110 * exp_ch13.adb: Minor reformatting
111
0ac73189
AC
1122009-04-07 Robert Dewar <dewar@adacore.com>
113
114 * sem_warn.adb (Check_Infinite_Loop_Warning.Test_Ref): Add defence
115 against missing parent.
116
1172009-04-07 Thomas Quinot <quinot@adacore.com>
118
119 * xoscons.adb: Minor reformatting
120
1212009-04-07 Robert Dewar <dewar@adacore.com>
122
123 * rtsfind.ads: Remove obsolete string concatenation entries
124
1252009-04-07 Robert Dewar <dewar@adacore.com>
126
127 * exp_ch4.adb (Expand_Concatenate): Redo handling of bounds
128
1292009-04-07 Ed Schonberg <schonberg@adacore.com>
130
131 * sem_ch10.adb (Check_Body_Required): Handle properly imported
132 subprograms.
133
1342009-04-07 Gary Dismukes <dismukes@adacore.com>
135
136 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case
137 Attribute_Address): When Init_Or_Norm_Scalars is True and the object
138 is of a scalar or string type then suppress the setting of the
139 expression to Empty.
140
141 * freeze.adb (Warn_Overlay): Also emit the warnings about default
142 initialization for the cases of scalar and string objects when
143 Init_Or_Norm_Scalars is True.
144
1732c156
AC
1452009-04-07 Bob Duff <duff@adacore.com>
146
147 * s-secsta.ads, g-pehage.ads, s-fileio.ads: Minor comment fixes
148
1492009-04-07 Bob Duff <duff@adacore.com>
150
151 * gnat_rm.texi, s-fileio.adb (System.File_IO.Open): New feature: A
152 Form parameter of Text_Translation=No allows binary mode for Text_IO
153 files.
154
155 * gnat_rm.texi: Document Form parameter Text_Translation=xxx.
156
1572009-04-07 Javier Miranda <miranda@adacore.com>
158
159 * exp_ch5.adb (Expand_Assign_Array): Add implicit conversion when
160 processing the bounds for bit packed arrays or VM target machines.
161
f16d05d9
AC
1622009-04-07 Thomas Quinot <quinot@adacore.com>
163
164 * g-sothco.ads (Int_Access): Remove extraneous access type (use
165 anonymous access instead).
166 (Get_Socket_From_Set): Fix incorrectly reverted formals
167 Last and Socket to match the underlying C routine.
168
ad1536a1 169 * g-socket.adb, g-socket.ads
f16d05d9
AC
170 (Get): Use named parameter associations instead of positional ones in
171 call go Get_Socket_From_Set, since this routine has two formals of the
172 same type.
ad1536a1 173 (Image): New procedure.
f16d05d9
AC
174
175 * g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
176 g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi.adb, g-socthi.ads:
177 (C_Ioctl, Syscall_Ioctl): use "access C.int" instead of "Int_Access"
178 for type of Arg formal.
179
180 * sem_warn.adb: Minor reformatting
181
1822009-04-07 Ed Schonberg <schonberg@adacore.com>
183
184 * sem_util.adb (Has_Tagged_Component): Fix typo in loop that iterates
185 over record components.
186
1872009-04-07 Nicolas Roche <roche@adacore.com>
188
189 * gsocket.h:
190 Don't include resolvLib.h on VxWorks 6 (kernel and rtp). This library
191 has disappeared between VxWorks 6.4 and VxWorks 6.5
192 In RTP mode use time.h instead of times.h
193
1942009-04-07 Robert Dewar <dewar@adacore.com>
195
196 * exp_ch4.adb (Expand_N_Op_Concat): Improve lower bound handling
197
1982009-04-07 Kevin Pouget <pouget@adacore.com>
199
200 * exp_dist.adb: Modify Build_From_Any_Fonction procedure to correct
201 expanded code for constrained types.
202
2032009-04-07 Ed Schonberg <schonberg@adacore.com>
204
205 * sem_ch4.adb (Analyze_Overloaded_Selected_Component): implement
206 AI05-105: in an object renaming declaration, anonymousness is a name
207 resolution rule.
208
209 * sem_ch8.adb (Analyze_Object_Renaming): Ditto.
210
2112009-04-07 Arnaud Charlet <charlet@adacore.com>
212
213 * g-comlin.adb (Expansion): Fix old regression: also return directory
214 names when matching.
215
2fc05e3d
AC
2162009-04-07 Robert Dewar <dewar@adacore.com>
217
218 * exp_ch4.adb:
219 (Expand_N_Op_Concat): Call Expand_Concatenate for all cases
220 (Expand_Concatenate): New name for Expand_Concatenate_String which has
221 been rewritten to handle all types.
222 (Expand_Concatenate_Other): Remove
223
2242009-04-07 Ed Schonberg <schonberg@adacore.com>
225
226 * lib-xref.adb (Generate_Reference): A default subprogram in an
227 instance appears within the tree for the instance, but generates an
228 implicit reference in the ALI.
229
fdac1f80
AC
2302009-04-07 Javier Miranda <miranda@adacore.com>
231
232 * sem_ch3.adb (Build_Derived_Record_Type): When processing a tagged
233 derived type that has discriminants, propagate the list of interfaces
234 to the corresponding new base type. In addition, propagate also
235 attribute Limited_Present (found working in this patch).
236
2372009-04-07 Robert Dewar <dewar@adacore.com>
238
239 * exp_ch4.adb: Rewrite concatenation expansion.
240
8dbd1460
AC
2412009-04-07 Ed Schonberg <schonberg@adacore.com>
242
243 * sem_ch8.adb (Restore_Scope_Stack): First_Private_Entity is only
244 relevant to packages.
245
2462009-04-07 Robert Dewar <dewar@adacore.com>
247
248 * sem_attr.adb: Minor reformatting
249
250 * sem_ch6.adb: Minor reformatting
251
2ddc2000
AC
2522009-04-07 Tristan Gingold <gingold@adacore.com>
253
254 * socket.c: Add more protections against S_resolvLib_ macros.
255
2562009-04-07 Thomas Quinot <quinot@adacore.com>
257
258 * sem_attr.adb: Minor reformatting
259
2602009-04-07 Ed Schonberg <schonberg@adacore.com>
261
262 * sem_ch6.adb (New_Overloaded_Entity): New predicate
263 Is_Overriding_Alias to handle properly types that inherit two homonym
264 operations that have distinct dispatch table entries.
265
06a16f58
AC
2662009-04-07 Emmanuel Briot <briot@adacore.com>
267
268 * s-regexp.adb (Create_Mapping): Ignore excaped open parenthesis when
269 looking for the end of a parenthesis group
270
2712009-04-07 Tristan Gingold <gingold@adacore.com>
272
273 * gsocket.h Don't #include resolvLib.h if __RTP__ is defined.
274
275 * socket.c Don't use resolvLib_ macros if not defined.
276
df46b832
AC
2772009-04-07 Robert Dewar <dewar@adacore.com>
278
279 * g-socket.adb: Minor reformatting.
280
281 * g-socthi-mingw.adb: Minor reformatting
282
283 * g-sothco.ads: Minor reformatting
284
285 * exp_ch4.adb:
286 (Expand_Concatenate_String): Complete rewrite to generate efficient code
287 inline instead of relying on external library routines.
288
289 * s-strops.ads, s-sopco5.ads, s-sopco5.adb, s-sopco4.ads, s-sopco4.adb,
290 s-sopco3.ads, s-sopco3.adb, s-strops.adb: Note that this unit is now
291 obsolescent
292
2932009-04-07 Ed Schonberg <schonberg@adacore.com>
294
295 * sem_attr.adb:
296 (Eval_Attribute): for attributes of array objects that are not strings,
297 attributes are not static if nominal subtype of object is unconstrained.
298
2992009-04-07 Ed Schonberg <schonberg@adacore.com>
300
301 * sem_ch6.adb (New_Overloaded_Entity): If two implicit homonym
302 operations for a type T in an instance do not override each other,
303 when T is derived from a formal private type, the corresponding
304 operations inherited by a type derived from T outside
305 of the instance do not override each other either.
306
3dd9959c
AC
3072009-04-07 Robert Dewar <dewar@adacore.com>
308
309 (Osint.Fail): Change calling sequence to have one string arg
310 (Make.Make_Failed): Same change
311 All callers are adjusted to use concatenation
312
3132009-04-07 Robert Dewar <dewar@adacore.com>
314
315 * exp_ch4.adb: Fix documentation typo
316
3172009-04-07 Robert Dewar <dewar@adacore.com>
318
319 * tbuild.ads: Minor reformatting
320
3212009-04-07 Javier Miranda <miranda@adacore.com>
322
323 * exp_disp.adb (Make_DT): Avoid the generation of the OSD_Table
324 when compiling under ZFP runtime.
325
3262009-04-07 Robert Dewar <dewar@adacore.com>
327
328 * g-comlin.adb: Minor reformatting
329
3302009-04-07 Thomas Quinot <quinot@adacore.com>
331
332 * socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
333 g-socthi-vxworks.ads, g-socthi-mingw.adb, g-socthi-mingw.ads,
334 g-socthi.adb, g-socthi.ads, g-socket.adb, g-socket.ads, g-sothco.ads:
335 Remove dynamic allocation of Fd_Set in Socket_Set_Type objects.
336
dcd8728b
RD
3372009-04-07 Robert Dewar <dewar@adacore.com>
338
339 * gnat_ugn.texi: Document -gnatDnn/-gnatGnn
340
341 * opt.ads (Sprint_Line_Limit): New parameter
342
343 * sprint.adb: Usa Sprint_Line_Limit instead of Line_Limit throughout
344
345 * switch-c.adb: Recognize -gnatDnnn and -gnatGnnn switches
346
347 * usage.adb: Output information for -gnatGnn -gnatDnn
348
3492009-04-07 Robert Dewar <dewar@adacore.com>
350
351 * make.adb: Minor reformatting
352
3532009-04-07 Robert Dewar <dewar@adacore.com>
354
355 * mlib-tgt-specific-vms-alpha.adb: Minor reformatting
356
3572009-04-07 Robert Dewar <dewar@adacore.com>
358
359 * mlib-tgt-specific-vms-ia64.adb: Minor reformatting
360
c27f2f15
RD
3612009-04-07 Robert Dewar <dewar@adacore.com>
362
363 * checks.adb:
364 Remove Assume_Valid parameter from In_Subrange_Of calls
365
366 * sem_eval.adb:
367 (Is_Subrange_Of): Remove Assume_Valid parameter, not needed
368 (Is_In_Range): Remove incorrect use of Assume_Valid
369 (Is_Out_Of_Range): Remove incorrect use of Assume_Valid
370
371 * sem_eval.ads:
372 (Is_Subrange_Of): Remove Assume_Valid parameter, not needed
373 (Is_In_Range): Documentation cleanup
374 (Is_Out_Of_Range): Documentation cleanup
375
376 * gnat_rm.texi:
377 Add documentation for Assume_No_Invalid_Values pragma
378
379 * sem_ch12.adb: Minor reformatting
380
381 * sem_ch6.adb: (Check_Conformance): Avoid cascaded errors
382
383 * sem_prag.adb: Improve error message.
384
385 * gnatchop.adb, osint.ads, sinput.adb, sinput.ads, styleg.adb:
386 LF/CR no longer recognized as line terminator
387
388 * switch.ads: Minor documentation improvement
389
390 * vms_data.ads: Minor reformatting
391
c800f862
RD
3922009-04-07 Robert Dewar <dewar@adacore.com>
393
394 * checks.adb (Determine_Range): Add Assume_Valid parameter
395
396 * checks.ads (Determine_Range): Add Assume_Valid parameter
397
398 * errout.adb (Error_Msg_NEL): Use Suppress_Loop_Warnings rather than
399 Is_Null_Loop to suppress warnings in a loop body.
400
401 * exp_ch4.adb:
402 (Rewrite_Comparison): Major rewrite to accomodate invalid values
403
404 * exp_ch5.adb:
405 (Expand_N_Loop_Statement): Delete loop known not to execute
406
407 * opt.ads:
408 (Assume_No_Invalid_Values): Now set to False, and as documented, this
409 fully enables the proper handling of invalid values.
410
411 * sem_attr.adb:
412 New calling sequence for Is_In_Range
413
414 * sem_ch5.adb:
415 (Analyze_Iteration_Scheme): Accomodate possible invalid values
416 in determining if a loop range is null.
417
418 * sem_eval.adb:
419 (Is_In_Range): Add Assume_Valid parameter
420 (Is_Out_Of_Range): Add Assume_Valid_Parameter
421 (Compile_Time_Compare): Major rewrite to accomodate invalid values and
422 also to do more accurate and complete range analysis, catching more
423 cases.
424
425 * sem_eval.ads:
426 (Is_In_Range): Add Assume_Valid parameter
427 (Is_Out_Of_Range): Add Assume_Valid_Parameter
428
429 * sem_util.adb:
430 New calling sequence for Is_In_Range
431
432 * sinfo.adb:
433 (Suppress_Loop_Warnings): New flag
434
435 * sinfo.ads:
436 (Is_Null_Loop): Update documentation
437 (Suppress_Loop_Warnings): New flag
438
439 * gnat_ugn.texi: Document -gnatB switch
440
9d00840d
AC
4412009-04-07 Arnaud Charlet <charlet@adacore.com>
442
443 * gnatvsn.ads: Bump version number.
444
5f143024
AC
4452009-04-07 Thomas Quinot <quinot@adacore.com>
446
447 * exp_ch3.adb: Minor rewording (comments)
448
4492009-04-07 Robert Dewar <dewar@adacore.com>
450
451 * exp_disp.adb: Minor reformatting
452
d5859bf4
EB
4532009-04-07 Eric Botcazou <ebotcazou@adacore.com>
454
455 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Test the
456 underlying type.
457 * gcc-interface/trans.c (lvalue_required_p): Likewise.
458
c86f07f6
EB
4592009-04-07 Eric Botcazou <ebotcazou@adacore.com>
460
461 * gcc-interface/trans.c (Attribute_to_gnu) <Max_Size_In_Storage_Elmts>:
462 Do not convert the result. Remove obsolete comment.
463
2d5be6c1
EB
4642009-04-07 Eric Botcazou <ebotcazou@adacore.com>
465
466 * gcc-interface/trans.c (establish_gnat_vms_condition_handler): Clear
467 DECL_CONTEXT.
468 (Subprogram_Body_to_gnu): Fix pasto.
469
10069d53
EB
4702009-04-07 Eric Botcazou <ebotcazou@adacore.com>
471
472 * gcc-interface/gigi.h (standard_datatypes): Remove ADT_void_type_decl.
473 (void_type_decl_node): Remove.
474 (init_gigi_decls): Likewise.
475 (gnat_install_builtins): Declare.
476 (record_builtin_type): Likewise.
477 (create_type_stub_decl): Likewise.
478 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Void>: Use void_type.
479 (gnat_to_gnu_entity) <E_Array_Type>: Make fat and thin pointer types
480 artificial.
481 <E_Array_Subtype>: Use the index types, not only their name, in the
482 record giving the names of the bounds, if any.
483 For a packed array type, make it artificial only if the base type
484 was artificial as well. Remove redundant statement.
485 (gnat_to_gnu_entity) <E_Incomplete_Type>: Do not create TYPE_DECL for
486 dummy types.
487 Use create_type_stub_decl to build the TYPE_STUB_DECL of types.
488 (rest_of_type_decl_compilation_no_defer): Likewise.
489 * gcc-interface/misc.c (gnat_printable_name): Add missing guard.
490 * gcc-interface/utils.c (make_dummy_type): Always create TYPE_STUB_DECL
491 and use create_type_stub_decl to build it.
492 (gnat_pushdecl): Rewrite condition.
493 (gnat_install_builtins): Remove bogus declaration.
494 (record_builtin_type): New function.
495 (finish_record_type): Use create_type_stub_decl to build TYPE_STUB_DECL
496 of types.
497 (create_type_stub_decl): New function.
498 (create_type_decl): Assert that the type is not dummy. If the type
499 hasn't been named yet, equate the TYPE_STUB_DECL to the created node.
500 (build_vms_descriptor32): Do not create TYPE_DECL for the descriptor.
501 (build_vms_descriptor): Likewise.
502 (init_gigi_decls): Delete and move bulk of code to...
503 * gcc-interface/trans.c (gigi): ...here. Use record_builtin_type.
504 (emit_range_check): Add gnat_node parameter.
505 (emit_index_check): Likewise.
506 (emit_check): Likewise.
507 (build_unary_op_trapv): Likewise.
508 (build_binary_op_trapv): Likewise.
509 (convert_with_check): Likewise.
510 (Attribute_to_gnu): Adjust calls for above changes.
511 (call_to_gnu): Likewise.
512 (gnat_to_gnu): Likewise.
513 (assoc_to_constructor): Likewise.
514 (pos_to_constructor): Likewise.
515 (Sloc_to_locus): Set BUILTINS_LOCATION for Standard_Location nodes.
516 (process_type): Do not create TYPE_DECL for dummy types.
517
229077b0
EB
5182009-04-07 Eric Botcazou <ebotcazou@adacore.com>
519
1e17ef87
EB
520 * gcc-interface/decl.c (gnat_to_gnu_entity): Reorder local variables.
521 * gcc-interface/trans.c: Fix formatting throughout. Fix comments.
522 * gcc-interface/utils.c: Fix comments.
523
5242009-04-07 Eric Botcazou <ebotcazou@adacore.com>
525
526 * gcc-interface/decl.c (compile_time_known_address_p): Rewrite and
527 move around.
229077b0
EB
528 (gnat_to_gnu_type): Move around.
529 (get_unpadded_type): Likewise.
1e17ef87
EB
530 * gcc-interface/utils.c (update_pointer_to): Use synthetic macro.
531 Tidy comments.
229077b0 532
aa1aa786
EB
5332009-04-07 Eric Botcazou <ebotcazou@adacore.com>
534
535 * gcc-interface/trans.c (check_for_eliminated_entity): New function.
536 (Attribute_to_gnu): Invoke it for Access- and Address-like attributes.
537 (call_to_gnu): Invoke it instead of manually checking.
538
63787194
EB
5392009-04-04 Eric Botcazou <ebotcazou@adacore.com>
540
541 * gcc-interface/utils.c (finish_record_type): Force structural equality
542 checks if the record type is discriminated.
543
d236ace7
EB
5442009-03-31 Eric Botcazou <ebotcazou@adacore.com>
545
546 * system-linux-alpha.ads (Functions_Return_By_DSP): Remove.
547 * system-linux-mips.ads (Functions_Return_By_DSP): Likewise.
548 * system-linux-mipsel.ads (Functions_Return_By_DSP): Likewise.
549 * system-linux-s390.ads (Functions_Return_By_DSP): Likewise.
550 * system-linux-s390x.ads (Functions_Return_By_DSP): Likewise.
551 * system-linux-sparc.ads (Functions_Return_By_DSP): Likewise.
552 * system-linux-sparcv9.ads (Functions_Return_By_DSP): Likewise.
553
bd9f68e0
PB
5542009-03-30 Paolo Bonzini <bonzini@gnu.org>
555
d7be99f1
EB
556 * gcc-interface/decl.c (maybe_pad_type): Use TREE_OVERFLOW instead
557 of TREE_CONSTANT_OVERFLOW.
bd9f68e0 558
8ce94e44
JM
5592009-03-30 Joseph Myers <joseph@codesourcery.com>
560
561 PR rtl-optimization/323
562 * gcc-interface/misc.c (gnat_post_options): Set
563 flag_excess_precision_cmdline. Give an error for
564 -fexcess-precision=standard for processors where the option is
565 significant.
566
d9223014
L
5672009-03-27 H.J. Lu <hongjiu.lu@intel.com>
568
569 PR c/39323
570 * gcc-interface/utils.c (create_field_decl): Use "unsigned int"
571 on bit_align.
572
76761bbd
OH
5732009-03-11 Olivier Hainque <hainque@adacore.com>
574
575 * gcc-interface/trans.c (gnat_to_gnu) <case N_Slice>: In range
576 checks processing, remove unintended TREE_TYPE walk on index type.
577
39ae51e0
EB
5782009-03-01 Eric Botcazou <ebotcazou@adacore.com>
579
580 PR ada/39264
581 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do no
582 call make_packable_type on fat pointer types.
583 <E_Array_Subtype>: Likewise.
584 <E_Record_Subtype>: Call make_packable_type on all record types
585 except for fat pointer types.
586 (make_packable_type): Likewise.
587 (gnat_to_gnu_field): Likewise.
588
7d01864f
EB
5892009-02-28 Eric Botcazou <ebotcazou@adacore.com>
590
591 * gcc-interface/Makefile.in (cygwin/mingw): Revert accidental
67901d32 592 EH_MECHANISM change made on 2007-12-06.
7d01864f 593
a760c977
AS
5942009-02-26 Andreas Schwab <schwab@suse.de>
595
4c354194 596 PR ada/39172
a760c977 597 * Makefile.in (srcdir): Set to @top_srcdir@ instead of @srcdir@.
a760c977
AS
598 * gcc-interface/Makefile.in: Change all uses of $(srcdir),
599 $(fsrcdir) and $(fsrcpfx) to add ada subdir.
600 (AWK): Substitute.
601 (target_cpu_default): Substitute.
602
054efbba
LG
6032009-02-25 Laurent GUERBY <laurent@guerby.net>
604
975a4fd6 605 PR ada/39221
a760c977
AS
606 * a-teioed.adb (Expand): Fix Result overflow.
607
2692d7f5
LG
6082009-02-25 Laurent GUERBY <laurent@guerby.net>
609
a760c977
AS
610 * gcc-interface/Makefile.in: Fix multilib handling for
611 sparc64-linux.
612
ea675ec3
RO
6132009-02-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
614
615 * s-oscons-tmplt.c [__osf__ && !_SS_MAXSIZE]: Undef AF_UNIX6.
616
e98c0739
L
6172009-02-18 H.J. Lu <hongjiu.lu@intel.com>
618
619 * gcc-interface/misc.c (gnat_post_options): Turn off warn_psabi.
620
70f5fc7c
EB
6212009-02-16 Eric Botcazou <ebotcazou@adacore.com>
622
623 * gcc-interface/deftarg.c: Remove.
624
794511d2 6252009-02-10 Olivier Hainque <hainque@adacore.com>
e98c0739 626 Eric Botcazou <ebotcazou@adacore.com>
794511d2
EB
627
628 * gcc-interface/decl.c (enum alias_set_op): New enumeration.
629 (copy_alias_set): Rename into...
630 (relate_alias_sets): ...this. Add third parameter OP. Retrieve the
631 underlying array of unconstrained arrays for the new type as well.
632 If the old and new alias sets don't conflict, make one a subset of
633 the other as per the OP parameter.
634 (gnat_to_gnu_entity): Adjust calls to copy_alias_set.
635 <E_Record_Type>: Do not copy the alias set for derived types.
636 For all types, make the alias set of derived types a superset of
637 that of their parent type.
638 (make_aligning_type): Adjust calls to copy_alias_set.
639 (make_packable_type): Likewise.
640 * gcc-interface/trans.c (gnat_to_gnu)<N_Validate_Unchecked_Conversion>:
641 Check for alias set conflict instead of strict equality to issue the
642 warning.
643
c3734896
EB
6442009-02-09 Eric Botcazou <ebotcazou@adacore.com>
645
646 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
647 Set TYPE_NONALIASED_COMPONENT on the array type only if appropriate.
648 (copy_alias_set): Assert that arrays have the same aliasing settings.
649 (substitute_in_type) <ARRAY_TYPE>: Copy TYPE_NONALIASED_COMPONENT.
650
9a58d4d2
EB
6512009-02-08 Eric Botcazou <ebotcazou@adacore.com>
652
653 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
654 Set TYPE_NONALIASED_COMPONENT on the array type.
655
d0ec4c99
LG
6562009-01-31 Laurent GUERBY <laurent@guerby.net>
657
658 * gcc-interface/Makefile.in: Fix mipsel linux handling.
a760c977 659
4dcb8fd1
JJ
6602009-01-16 Jakub Jelinek <jakub@redhat.com>
661
662 * gcc-interface/Makefile.in: Fix multilib handling for
663 powerpc64-linux.
664
3b9c1abd
EB
6652009-01-12 Eric Botcazou <ebotcazou@adacore.com>
666
667 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Really strip
668 only useless conversions around renamed objects.
669
13318d2f
EB
6702009-01-11 Eric Botcazou <ebotcazou@adacore.com>
671
672 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Put
673 the _Tag field before any discriminants in the field list.
674 (components_to_record): Remove obsolete comment.
675
6f9f0ce3
JJ
6762008-12-09 Jakub Jelinek <jakub@redhat.com>
677
678 PR ada/38450
679 * gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE.
680 * gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type):
681 Likewise.
682
9ff4a9da 6832008-12-05 Sebastian Pop <sebastian.pop@amd.com>
250d2fb5
JJ
684
685 PR bootstrap/38262
686 * gcc-interface/Make-lang.in (gnat1): Add BACKENDLIBS, remove GMPLIBS.
687
f9805f52
EB
6882008-11-29 Eric Botcazou <ebotcazou@adacore.com>
689
690 PR ada/30827
691 * g-comver.adb (Ver_Len_Max): Fix inconsistency.
692
2ddc34ba
EB
6932008-11-27 Eric Botcazou <ebotcazou@adacore.com>
694
695 * gcc-interface/decl.c: Fix various nits.
696
58612565
EB
6972008-11-20 Eric Botcazou <ebotcazou@adacore.com>
698
699 * gcc-interface/utils.c (init_gigi_decls): Fix type mismatch.
700
e66e5d9e
EB
7012008-11-16 Eric Botcazou <ebotcazou@adacore.com>
702
703 PR ada/38127
d74b4b00
EB
704 * gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Do not
705 special-case boolean types. Propagate the name.
e66e5d9e
EB
706 * gcc-interface/targtyps.c: Tweak comment.
707
7348f18c
GB
7082008-11-15 Geert Bosch <bosch@adacore.com>
709
710 * gcc-interface/trans.c (emit_check): Put back a final save_expr
711 to prevent exponential expansion during gimplification.
712
708bceb7
EB
7132008-11-15 Eric Botcazou <ebotcazou@adacore.com>
714
715 * gcc-interface/lang-specs.h: Expand -coverage and reorder switches.
716
a5b8aacd
EB
7172008-11-15 Eric Botcazou <ebotcazou@adacore.com>
718
719 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force constants
720 initialized to a static constant to be statically allocated even if
721 they are of a padding type, provided the original type also has
722 constant size.
723
4364e851
LG
7242008-11-15 Laurent Guerby <laurent@guerby.net>
725
726 PR ada/37993
727 * gcc-interface/Makefile.in: Add multilib handling for x86_64
728 on darwin.
729 * system-darwin-x86_64.ads: New file.
730
255e5b04
OH
7312008-11-13 Olivier Hainque <hainque@adacore.com>
732
733 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>:
734 Turn Ada Pure on subprograms back into GCC CONST when eh constructs
735 are explicit to the middle-end. Tidy.
736
82d3b03a
EB
7372008-11-09 Eric Botcazou <ebotcazou@adacore.com>
738
739 * gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
740 (MINUS_NOMOD_EXPR): Likewise.
741 * gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make
742 unreachable.
743 <PLUS_NOMOD_EXPR>: New case.
744 <MINUS_NOMOD_EXPR>: Likewise.
745 * gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and-
746 assignment statement instead of using an increment operator.
747
f5026442
RO
7482008-11-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
749
750 * system-irix-n64.ads: New file.
751 * gcc-interface/Makefile.in (mips-sgi-irix6*): Support O32 and N64
752 multilibs.
753
7542008-11-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
755
756 PR ada/37681
757 * system-solaris-x86_64.ads: New file.
758 * gcc-interface/Makefile.in (*86-solaris2*): Support x86_64 multilib.
759
7fee6a39 7602008-11-07 Bechir Zalila <bechir.zalila@gmail.com>
e98c0739 761 Eric Botcazou <ebotcazou@adacore.com>
7fee6a39
BZ
762
763 PR ada/34289
764 * lib.ads: (Enable_Switch_Storing): Declare.
765 * lib.adb: (Enable_Switch_Storing): New procedure.
766 * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea.
767 * make.adb: (Compile_Sources.Compile): Add -gnatea as first option.
768 (Display): Never display -gnatea
769 * gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez.
770
9ed0e483
TQ
7712008-11-07 Thomas Quinot <quinot@adacore.com>
772
773 * gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check
774 for empty range in original base type, not converted result type.
775
58e94443
GB
7762008-11-07 Geert Bosch <bosch@adacore.com>
777
778 * gcc-interface/trans.c (build_binary_op_trapv): Convert arguments
779 and result for call to __gnat_mulv64.
780
a7c43bbc
EB
7812008-11-07 Eric Botcazou <ebotcazou@adacore.com>
782
783 * gcc-interface/trans.c: Fix formatting nits.
784
2575024c
GB
7852008-11-07 Geert Bosch <bosch@adacore.com>
786
787 * gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting
788 overflow check for constant result.
789
4ae39383
GB
7902008-11-07 Geert Bosch <bosch@adacore.com>
791
792 * gcc-interface/trans.c (build_binary_op_trapv): Use more efficient
793 overflow check for addition/subtraction if neither operand is constant.
794
6818f0fc
EB
7952008-11-06 Eric Botcazou <ebotcazou@adacore.com>
796
797 * gcc-interface/Makefile.in (SPARC/Solaris): Use a common set of
798 files for the target-dependent part of the runtime.
799 (SPARC/Linux): Likewise.
800
8d3323de
EB
8012008-11-06 Eric Botcazou <ebotcazou@adacore.com>
802
803 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: If not
804 optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging
805 purposes.
806
baf6e6a8
EB
8072008-11-06 Eric Botcazou <ebotcazou@adacore.com>
808
809 * gcc-interface/misc.c (gnat_printable_name): Always return a copy
810 in GC memory.
811
8b659f79
EB
8122008-11-06 Eric Botcazou <ebotcazou@adacore.com>
813
814 PR ada/19419
815 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>:
816 Generate a call to memmove for an assignment between overlapping
817 array slices.
818
358ef7fb
AK
8192008-11-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
820
821 PR target/37977
822 * gcc-interface/Makefile.in: Add multilib handling for
823 s390-linux and s390x-linux.
824
7134e605
JJ
8252008-10-24 Jakub Jelinek <jakub@redhat.com>
826
827 * gcc-interface/Make-lang.in (check-ada-subtargets): Depend on
828 check-acats-subtargets and check-gnat-subtargets.
829 (check_acats_targets): New variable.
830 (check-acats-subtargets, check-acats%): New targets.
831 (check-acats): If -j is used and CHAPTERS is empty, run the testing
832 in multiple make goals, possibly parallel, and afterwards run
833 dg-extract-results.sh to merge the sum and log files.
834
82f7c45f
GB
8352008-10-17 Geert Bosch <bosch@adacore.com>
836
837 * gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion
838 to use only a single check instead of three, and avoid unnecessary
839 COMPOUND_EXPR.
840 (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
841 creating more opportunities for optimizations.
842
0adef32b
JJ
8432008-10-13 Jakub Jelinek <jakub@redhat.com>
844
845 PR middle-end/37601
846 * gcc-interface/utils.c (gnat_types_compatible_p): Handle
847 NULL TYPE_DOMAIN.
848
9cf18af8
EB
8492008-10-07 Eric Botcazou <ebotcazou@adacore.com>
850
851 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
852 dealing with volatileness to after code dealing with renaming.
853
e84319a3
EB
8542008-10-06 Eric Botcazou <ebotcazou@adacore.com>
855
856 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks.
857 * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
858
afcea859
EB
8592008-10-06 Eric Botcazou <ebotcazou@adacore.com>
860
861 * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
862 (unchecked_convert): Use it to disable problematic folding with
863 VIEW_CONVERT_EXPR in the general case. Always disable it for the
864 special VIEW_CONVERT_EXPR built for integral types and cope with
865 its addressability issues by preserving the first conversion.
866
9e81dbc7
AS
8672008-10-01 Andreas Schwab <schwab@suse.de>
868
869 * system-linux-ppc64.ads: New file.
870 * gcc-interface/Makefile.in: Add multilib handling for
871 powerpc-linux.
872
bb3da4f2
EB
8732008-09-26 Eric Botcazou <ebotcazou@adacore.com>
874
875 * decl.c (gnat_to_gnu_entity) <object>: Cap the alignment promotion
876 to that of ptr_mode instead of word_mode.
877
8f5730b9
EB
8782008-09-26 Eric Botcazou <ebotcazou@adacore.com>
879
880 PR ada/5911
881 * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support.
882
3ca37eb7
ST
8832008-09-25 Samuel Tardieu <sam@rfc1149.net>
884
885 PR ada/37641
886 * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA
887 instead of deprecated FILE_WRITE_PROPERTIES.
888
22868cbf
OH
8892008-09-22 Olivier Hainque <hainque@adacore.com>
890
891 * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they
892 are never assigned, volatile entities are not constant for code
893 generation purposes.
894
7193e639
LG
8952008-09-21 Laurent Guerby <laurent@guerby.net>
896
9e81dbc7 897 PR ada/5911
7193e639
LG
898 * gcc-interface/Makefile.in: Add multilib handling for x86_64
899 and sparc.
900 * system-linux-sparcv9.ads: New file.
9e81dbc7 901
7fda1596
EB
9022008-09-20 Eric Botcazou <ebotcazou@adacore.com>
903
904 * exp_dbug.ads: Document new convention for the XVZ variable.
905 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate
906 debug info if necessary for the type padding the component type.
907 <E_Array_Subtype>: Likewise.
908 (maybe_pad_type): Emit the XVZ variable in units.
909 * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
910 (Subprogram_Body_to_gnu): Set the source line of the subprogram's node
911 on statements generated to initialize the parameter attributes cache.
912 Set the source line of the end label of the body on the special return
913 statement built for a procedure with copy-in copy-out parameters.
914
d84b344a
EB
9152008-09-20 Eric Botcazou <ebotcazou@adacore.com>
916
917 PR ada/37585
918 * gcc-interface/utils.c (create_subprog_decl): Disable inlining for
919 inlined external functions if they contain a nested function not
920 declared inline.
921
4db26d6c
JH
9222008-09-18 Jan Hubicka <jh@suse.cz>
923
924 * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
925 (end_subprog_body): Do not set DECL_INLINE.
926
03e74118
PR
9272008-09-17 Pascal Rigaux <pixel@mandriva.com>
928
929 PR ada/21327
930 * gnat_ugn.texi: Use proper format in direntry.
931
6a7a3f31
EB
9322008-09-15 Eric Botcazou <ebotcazou@adacore.com>
933
934 * gcc-interface/trans.c (gigi): Declare the name of the compilation
935 unit as the first global name.
936
f67894ed
JH
9372008-09-14 Jan Hubicka <jh@suse.cz>
938
6a7a3f31 939 * gcc-interface/Make-lang.in (gnat1): Add CFLAGS.
f67894ed 940
16b05213
RW
9412008-09-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
942
943 * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads,
944 bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb,
945 exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
946 exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
947 exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads,
948 g-diopit.adb, g-socket.ads, gcc-interface/decl.c,
949 gcc-interface/gigi.h, gcc-interface/trans.c,
950 lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads,
951 opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads,
952 s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads,
953 s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
954 sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
955 sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
956 sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads,
957 sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in
958 comments.
959 * gnathtml.pl: Fix typos.
960
1011d8a2
JS
9612008-09-10 Joel Sherrill <joel.sherrill@oarcorp.com>
962
963 * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb.
964 * s-osinte-rtems.ads: Add shared hardware interrupt adapter
965 layer. RTEMS binds to OS provided adapter routines so there are
966 no modifications to s-osinte-rtems.adb.
967
e5c73177
AC
9682008-09-09 Arnaud Charlet <charlet@adacore.com>
969 Joel Sherrill <joel.sherrill@oarcorp.com>
970
971 * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb.
972
973 * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb
974
975 * s-interr-hwint.adb: New file.
976
977 * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions
978 needed by s-interr-hwint.adb.
979
980 * s-osinte-vxworks-kernel.adb: New file.
981
56cc5928
JS
9822008-09-05 Joel Sherrill <joel.sherrill@oarcorp.com>
983
984 * s-stchop-rtems.adb: Add file missed in early commit. Already
985 referenced in gcc-interface/Makefile.in.
986
21bacb7e
TQ
9872008-08-30 Thomas Quinot <quinot@adacore.com>
988
989 * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
990 be built even without a separate libada directory.
991
5b2da948
AC
9922008-08-22 Arnaud Charlet <charlet@adacore.com>
993
994 * lib-xref.ads: Fix typo in subprogram reference definition.
995
9962008-08-22 Robert Dewar <dewar@adacore.com>
997
c9f1fdfe
RD
998 * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix
999 to avoid warning.
5b2da948 1000
c9f1fdfe 1001 * g-trasym.adb: Ditto
5b2da948
AC
1002
1003 * s-utf_32.adb (Get_Category): Fix obvious typo
1004
1005 * s-wwdcha.adb: Minor code reorganization
1006 Remove dead code
1007
4351c21b
AC
10082008-08-22 Robert Dewar <dewar@adacore.com>
1009
1010 * checks.adb (Determine_Range): Deal with values that might be invalid
1011
e5c73177
AC
1012 * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New
1013 configuration switches.
4351c21b
AC
1014
1015 * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values
1016
1017 * sem_prag.adb: Implement pragma Assume_No_Default_Values
1018
1019 * snames.adb, snames.ads, snames.h:
1020 Add entries for pragma Assume_No_Invalid_Values
1021
1022 * switch-c.adb: Add processing for -gnatB switch
1023
1024 * usage.adb: Add entry for flag -gnatB (no bad invalid values)
1025
10262008-08-22 Javier Miranda <miranda@adacore.com>
1027
1028 * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the
1029 init procedure all the expanded code associated with the spec of
1030 task types and protected types.
1031
2743d81d
AC
10322008-08-22 Gary Dismukes <dismukes@adacore.com>
1033
1034 * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the
1035 component expression copies rather than directly setting Etype and
1036 Is_Static_Expression.
1037
10382008-08-22 Gary Dismukes <dismukes@adacore.com>
1039
1040 * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of
1041 private types to allow for types derived from a private type with
1042 preelaborable initialization, but return False for a private extension
1043 (unless it has the pragma).
1044
10452008-08-22 Robert Dewar <dewar@adacore.com>
1046
1047 * opt.ads: Minor code reorganization (put entries in alpha order)
1048
a5ad3248
AC
10492008-08-22 Pascal Obry <obry@adacore.com>
1050
1051 * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking
1052 spawn.
1053
6eca32ba
GB
10542008-08-22 Geert Bosch <bosch@adacore.com>
1055
1056 * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
1057 (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0
1058
1c7717c3
AC
10592008-08-22 Doug Rupp <rupp@adacore.com>
1060
1061 * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call
1062 __gnat_set_features.
1063
1064 * init.c
1065 (__gnat_set_features): New function.
1066 (__gnat_features_set): New tracking variable.
1067 (__gl_no_malloc_64): New feature global variable
1068
10692008-08-22 Ed Schonberg <schonberg@adacore.com>
1070
1071 * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant
1072 use_type_clause in an instance.
1073
10742008-08-22 Bob Duff <duff@adacore.com>
1075
1076 * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds.
1077
10782008-08-22 Robert Dewar <dewar@adacore.com>
1079
1080 * exp_ch6.adb: Minor reformatting
1081
1082 * exp_ch7.adb: Minor reformatting
1083
1084 * exp_ch7.ads: Put routines in proper alpha order
1085
1086 * exp_dist.adb: Minor reformatting
1087
10882008-08-22 Vincent Celier <celier@adacore.com>
1089
1090 * prj.ads: Minor comment update
1091
10922008-08-22 Robert Dewar <dewar@adacore.com>
1093
1094 * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack
1095
10962008-08-22 Ed Schonberg <schonberg@adacore.com>
1097
1098 * exp_tss.adb:
1099 (Base_Init_Proc): For a protected subtype, use the base type of the
1100 corresponding record to locate the propoer initialization procedure.
1101
11022008-08-22 Robert Dewar <dewar@adacore.com>
1103
1104 * checks.adb:
1105 (In_Subrange_Of): New calling sequence
1106 (Determine_Range): Prepare for new processing using base type
1107
1108 * exp_ch4.adb:
1109 (Compile_Time_Compare): Use new calling sequence
1110
1111 * exp_ch5.adb:
1112 (Compile_Time_Compare): Use new calling sequence
1113
1114 * sem_eval.adb:
1115 (Compile_Time_Compare): New calling sequence allows dealing with
1116 invalid values.
1117 (In_Subrange_Of): Ditto
1118
1119 * sem_eval.ads:
1120 (Compile_Time_Compare): New calling sequence allows dealing with
1121 invalid values.
1122 (In_Subrange_Of): Ditto
1123
11242008-08-22 Pascal Obry <obry@adacore.com>
1125
1126 * adaint.c: Fix possible race condition on win32_wait().
1127
048e5cef
BD
11282008-08-22 Bob Duff <duff@adacore.com>
1129
1130 * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb,
1131 exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
1132 exp_intr.adb, exp_ch3.adb: Rename:
1133 Exp_Ch7.Controlled_Type => Needs_Finalization
1134 Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part
1135 Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type =>
1136 Has_Controlled_Parts
1137 (Has_Some_Controlled_Component): Fix bug in array case.
1138
da2f5d14
AC
11392008-08-22 Robert Dewar <dewar@adacore.com>
1140
1141 * sem_ch8.adb: Minor reformatting
1142
11432008-08-22 Kevin Pouget <pouget@adacore.com>
1144
1145 * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and
1146 Shared_Var_Close procedure specifications from package spec to package body.
1147
1148 * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen,
1149 RE_Shared_Var_WOpen entries.
1150
1151 * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in
1152 Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures.
1153
11542008-08-22 Eric Botcazou <ebotcazou@adacore.com>
1155
1156 * init.c: adjust EH support code on Alpha/Tru64 as well.
1157
1158 * raise-gcc.c: Add back a couple of comments.
1159
11602008-08-22 Ed Schonberg <schonberg@adacore.com>
1161
1162 * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is
1163 involved and the return type is class-wide, use the type of the expression
1164 for the generated access type. Suppress useless discriminant checks on the
1165 allocator.
1166
11672008-08-22 Bob Duff <duff@adacore.com>
1168
1169 * exp_ch7.adb: Minor comment fix
1170
1171 * exp_ch6.ads: Minor comment fix
1172
1dcdbfab
AC
11732008-08-22 Thomas Quinot <quinot@adacore.com>
1174
1175 * sem_ch8.adb: Minor reformatting
1176 Minor code reorganization (introduce subprogram to factor duplicated
1177 code).
1178
11792008-08-22 Sergey Rybin <rybin@adacore.com>
1180
1181 * gnat_ugn.texi: Change the description of gnatcheck default rule
1182 settings.
1183
11842008-08-22 Eric Botcazou <ebotcazou@adacore.com>
1185
1186 * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX,
1187 Solaris, FreeBSD, VxWorks and PowerPC/Linux. For x86{-64}/Linux,
1188 do not adjust the PC anymore.
1189 (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise
1190 on AIX, HP-UX, Solaris, FreeBSD and VxWorks.
1191
1192 * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo
1193 instead of _Unwind_GetIP.
1194
11952008-08-22 Gary Dismukes <dismukes@adacore.com>
1196
1197 * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate
1198 with a range is transformed into a positional aggregate, any copied
1199 component literals should be marked Is_Static_Expression.
1200
1201 * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as
1202 not being known at at compile time when Configurable_Run_Time_Mode is
1203 true.
1204
12052008-08-22 Robert Dewar <dewar@adacore.com>
1206
1207 * exp_attr.adb:
1208 (Expand_N_Attribute_Reference): No validity checking on OUT parameter of
1209 Read or Input attribute.
1210
0d4aed99
AC
12112008-08-22 Ed Schonberg <schonberg@adacore.com>
1212
1213 * sem_ch8.adb (Use_One_Type): when checking which of two use_type
1214 clauses in related units is redundant, if one of the units is a package
1215 instantiation, use its instance_spec to determine which unit is the
1216 ancestor of the other.
1217
12182008-08-22 Javier Miranda <miranda@adacore.com>
1219
1220 * exp_attr.adb (Expand_N_Attribute_Reference): In case of access
1221 attributes add missing support to handle designated types that come
1222 from the limited view.
1223
1224 * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion.
1225
12262008-08-22 Sergey Rybin <rybin@adacore.com>
1227
1228 * vms_data.ads: Add entry for new gnatcheck -mNNN option
1229
1230 * gnat_ugn.texi: Add description for gnatcheck option '-m'
1231
5d41bf55
AC
12322008-08-22 Sergey Rybin <rybin@adacore.com>
1233
1234 * gnat_ugn.texi: Update the gnatcheck subsection for metric rules
1235 acoording to the latest changes in the metric rule interface
1236
12372008-08-22 Vincent Celier <celier@adacore.com>
1238
1239 * make.adb (Check.File_Not_A_Source_Of): New Boolean function
1240 (Check): Check if the file names registered in the ALI file for the
1241 spec, the body and each of the subunits are the ones expected.
1242
12432008-08-22 Robert Dewar <dewar@adacore.com>
1244
1245 * g-catiio.adb: Code cleanup.
1246
9299a27c
AC
12472008-08-20 Vincent Celier <celier@adacore.com>
1248
1249 * make.adb (Gnatmake): Remove extra space in version line
1250
1251 * ali.adb:
1252 (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit,
1253 as the name may already have been entered in the table by the Project
1254 Manager.
1255
12562008-08-20 Jose Ruiz <ruiz@adacore.com>
1257
1258 * errno.c (__get_errno, __set_errno for MaRTE): Transform then into
1259 weak symbols so we use the version provided by MaRTE when available.
1260
12612008-08-20 Emmanuel Briot <briot@adacore.com>
1262
1263 * g-catiio.ads, g-catiio.adb:
1264 (Value): Avoid an unnecessary system call to Clock in most cases.
1265 This call is only needed when only the time is provided in the string,
1266 and ignored in all other cases. This is more efficient.
1267
12682008-08-20 Eric Botcazou <ebotcazou@adacore.com>
1269
1270 * raise-gcc.c: Fix formatting nits.
1271
5e5dc75a
RD
12722008-08-20 Robert Dewar <dewar@adacore.com>
1273
1274 * sem_ch13.adb:
1275 (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
1276 non-existing component clause.
1277
1278 * exp_ch5.adb: Minor reformatting
1279
1280 * g-comlin.adb: Minor reformatting
1281
1282 * make.adb: Minor reformatting
1283
1284 * prj-proc.adb: Minor reformatting
1285
1286 * stylesw.ads: Minor reformatting
1287
235f4375
AC
12882008-08-20 Vincent Celier <celier@adacore.com>
1289
1290 * make.adb (Gnatmake_Switch_Found): New Boolean global variable
1291 (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable
1292 (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler
1293 defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False
1294 and a switch is not recognized by gnatmake.
1295 (Gnatmake): Implement new scheme for gnatmake switches and global
1296 compilation switches.
1297 (Switches_Of): Try successively Switches (<file name>),
1298 Switches ("Ada"), Switches (others) and Default_Switches ("Ada").
1299
13002008-08-20 Ed Schonberg <schonberg@adacore.com>
1301
1302 * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to
1303 implement style check that overriding operations are explicitly marked
1304 at such.
1305
1306 * style.ads (Missing_Overriding): new procedure that provides interface
1307 to previous one.
1308
1309 * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check
1310 that the declaration or body of overriding operations carries an
1311 explicit overriding indicator.
1312
1313 * sem_ch8.adb
1314 (Analyze_Subprogram_Renaming): if operation is overriding, check whether
1315 explicit indicator should be present.
1316
1317 * sem_ch6.adb (Verify_Overriding_Indicator,
1318 Check_Overriding_Indicator): If operation is overriding, check whether
1319 declaration and/or body of subprogram should be present
1320
7486d8e0
AC
13212008-08-20 Vincent Celier <celier@adacore.com>
1322
1323 * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for
1324 gprbuild when casing is MixedCase, whatever the casing of the letters
1325 in the file name.
1326
13272008-08-20 Gary Dismukes <dismukes@adacore.com>
1328
1329 * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to
1330 creating dummy init proc.
1331 (Requires_Init_Proc): Return False in the case No_Default_Initialization
1332 is in force and the type does not have associated default
1333 initialization. Move test of Is_Public (with tests of restrictions
1334 No_Initialize_Scalars and No_Default_Initialization) to end, past tests
1335 for default initialization.
1336
13372008-08-20 Jerome Lambourg <lambourg@adacore.com>
1338
1339 * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part
1340 of any alias or prefix but having attached parameters (as \"-O2\").
1341
fe5dbc2c
AC
13422008-08-20 Robert Dewar <dewar@adacore.com>
1343
1344 * s-fileio.adb: Minor reformatting
1345
13462008-08-20 Thomas Quinot <quinot@adacore.com>
1347
1348 * exp_strm.adb (Build_Elementary_Input_Call,
1349 Build_Elementary_Write_Call): Fix incorrect condition in circuitry that
1350 selects the stream attribute routines for long float types.
1351
13522008-08-20 Vincent Celier <celier@adacore.com>
1353
1354 * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data
1355
1356 * prj.ads (Array_Data): Add a component Location
1357
13582008-08-20 Ed Schonberg <schonberg@adacore.com>
1359
1360 * sem_prag.adb:
1361 (Analyze_Pragma, case Obsolescent): Add entity information on the pragma
1362 argument for ASIS and navigation use.
1363
13642008-08-20 Ed Schonberg <schonberg@adacore.com>
1365
1366 * einfo.ads: Add comment.
1367
13682008-08-20 Bob Duff <duff@adacore.com>
1369
1370 * sem_eval.ads: Minor comment fix.
1371
13722008-08-20 Bob Duff <duff@adacore.com>
1373
1374 * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant
1375 folding. We were folding things like "False and then ...", but not
1376 "X and then ..." where X is a constant whose value is known at compile
1377 time.
1378
13792008-08-20 Hristian Kirtchev <kirtchev@adacore.com>
1380
1381 * exp_ch5.adb (Controlled_Type): New routine.
1382 (Expand_N_Extended_Return_Statement): When generating a move of the
1383 final list in extended return statements, check the type of the
1384 function and in the case of double expanded return statements, the type
1385 of the returned object.
1386 (Expand_Simple_Function_Return): Perform an interface conversion when
1387 the type of the returned object is an interface and the context is an
1388 extended return statement.
1389
13902008-08-20 Ed Schonberg <schonberg@adacore.com>
1391
1392 * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type
1393 and the full view is visible, set flag on full view as well.
1394
13952008-08-20 Thomas Quinot <quinot@adacore.com>
1396
1397 * g-comlin.adb: Minor reformatting
1398 Minor code reorganization.
1399
1400 * freeze.adb: Minor reformatting
1401
14022008-08-20 Vincent Celier <celier@adacore.com>
1403
1404 * prj-nmsc.adb (Check_File): An excluded Ada source file may be a
1405 source of another project.
1406
14072008-08-20 Pascal Obry <obry@adacore.com>
1408
1409 * s-os_lib.ads: Minor reformatting.
1410
c4075a15
AC
14112008-08-20 Arnaud Charlet <charlet@adacore.com>
1412
1413 * gnatvsn.ads: Minor reformatting.
1414
0dd8a0b1
AC
14152008-08-20 Arnaud Charlet <charlet@adacore.com>
1416
1417 * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads,
1418 system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb,
1419 g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads,
1420 mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb,
1421 exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads,
1422 g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb,
1423 s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb,
1424 sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb,
1425 s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads,
1426 g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb,
1427 g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb,
1428 g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads,
1429 live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb,
1430 g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads,
1431 s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb,
1432 g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads,
1433 s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads,
1434 g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb,
1435 osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb,
1436 system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads,
1437 i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads,
1438 s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads,
1439 a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads,
1440 s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb,
1441 a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads,
1442 g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb,
1443 a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c,
1444 a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb,
1445 lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads,
1446 s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads,
1447 par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads,
1448 a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb,
1449 system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads,
1450 s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads,
1451 a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb,
1452 mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb,
1453 s-poosiz.adb, link.c: Fix copyright notice.
1454
f4857d6e
AC
14552008-08-20 Arnaud Charlet <charlet@adacore.com>
1456
1457 * g-comlin.ads: Update comments.
1458
8b4261b3
AC
14592008-08-20 Ed Schonberg <schonberg@adacore.com>
1460
1461 * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag.
1462
14632008-08-20 Gary Dismukes <dismukes@adacore.com>
1464
1465 * exp_ch11.adb:
1466 (Expand_Exception_Handlers): Call Make_Exception_Handler instead of
1467 Make_Implicit_Exception_Handler when rewriting an exception handler with
1468 a choice parameter, and pass the handler's Sloc instead of that of the
1469 handled sequence of statements. Make_Implicit_Exception_Handler sets the
1470 Sloc to No_Location (unless debugging generated code), which we don't
1471 want for the case of a user handler.
1472
c6084ae0
AC
14732008-08-20 Robert Dewar <dewar@adacore.com>
1474
1475 * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field
9e81dbc7 1476
c6084ae0
AC
1477 * sem_ch13.adb:
1478 (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are
1479 now labeled as info msgs, not warnings.
1480
1481 * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler
1482
1483 * usage.adb: Minor change to avoid overlong line for -gnatwz/Z
1484
1485 * a-textio.adb: Remove redundant test.
1486
1487 * a-witeio.adb: Minor code reorganization
1488 Remove redundant test found working on another issue
1489
1490 * a-ztexio.adb: Minor code reorganization
1491 Remove redundant test found working on another issue
1492
14932008-08-20 Thomas Quinot <quinot@adacore.com>
1494
1495 * s-fileio.adb (Open) Use C helper function to determine whether a
1496 given errno value corresponds to a "file not found" error.
1497
1498 * sysdep.c (__gnat_is_file_not_found_error): New C helper function.
1499
15002008-08-20 Jose Ruiz <ruiz@adacore.com>
1501
1502 * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno
1503 to get access to the per-task errno variable.
1504 (__set_errno for MaRTE): Do not redefine this function here since it is
1505 already defined in MaRTE.
1506
15072008-08-20 Tristan Gingold <gingold@adacore.com>
1508
1509 * gnat_ugn.texi: Gcov is not supported on static library on AIX.
1510
6e7f835f
AC
15112008-08-20 Robert Dewar <dewar@adacore.com>
1512
1513 * freeze.adb: Minor reformatting
1514
1515 * g-comlin.adb: Minor reformatting
1516
1517 * g-socket.adb: Minor reformatting
1518
1519 * g-socthi-mingw.adb: Minor reformatting
1520
1521 * g-stheme.adb: Minor reformatting
1522
2af92e28
ES
15232008-08-20 Ed Schonberg <schonberg@adacore.com>
1524
1525 * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads,
1526 exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
1527 confusion between partial and full views of an ancestor of the context
1528 type when the parent is a private extension declared in a parent unit,
1529 and full views are available for the context type.
1530
79a14178 15312008-08-18 Samuel Tardieu <sam@rfc1149.net>
9e81dbc7 1532 Robert Dewar <dewar@adacore.com>
79a14178
ST
1533
1534 PR ada/30827
1535 * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the
1536 version string.
1537 Move comment in the right place.
1538 * g-comver.adb (Version): Look for a zero-termination in
1539 addition to a closing parenthesis.
1540
b9b2405f
ST
15412008-08-18 Samuel Tardieu <sam@rfc1149.net>
1542
1543 * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb,
1544 * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
1545 * sem_prag.adb, sem_util.adb, sem_warn.adb: Use
1546 Is_Package_Or_Generic_Package instead of hand-crafted tests.
1547
51c16e29
ST
15482008-08-18 Samuel Tardieu <sam@rfc1149.net>
1549
1550 PR ada/15808
1551 * sem_ch6.adb (Check_Private_Overriding): Check for generic packages
1552 as well.
1553
c8bbc9ef
AL
15542008-08-17 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1555
1556 * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.
1557
e650b83a
EB
15582008-08-16 Eric Botcazou <ebotcazou@adacore.com>
1559
1560 * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
1561 for back-copy statements in lieu of that of the actual.
1562
b38f3813
EB
15632008-08-16 Eric Botcazou <ebotcazou@adacore.com>
1564
1565 PR ada/20548
1566 * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
12f89f6c 1567 setjmp test consistently. Adjust for new behavior of flag_stack_check.
b38f3813 1568 * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
12f89f6c 1569 test of flag_stack_check. Adjust for new behavior of flag_stack_check.
b38f3813 1570
2d14501c
ST
15712008-08-13 Samuel Tardieu <sam@rfc1149.net>
1572
1573 PR ada/36777
1574 * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New.
1575 * sem_attr.adb (Check_Type): The current instance of a protected
1576 object is not a type name.
1577 (Analyze_Access_Attribute): Accept instances of protected objects.
1578 (Analyze_Attribute, Attribute_Address clause): Ditto.
1579 * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite
1580 the prefix as being the current instance if needed.
1581
62641193
DS
15822008-08-12 Danny Smith <danyssmith@users.sourceforge.net>
1583
0490fbb8
EB
1584 * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]:
1585 Remove duplicate s-win32.o. Add s-winext.o.
62641193 1586
2a04ce75
DS
15872008-08-12 Danny Smith <danyssmith@users.sourceforge.net>
1588
1589 * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM
1590 with SOSC.SOCK__STREAM.
1591 * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with
1592 SOSC.MSG_OOB.
1593
269b85b7
JS
15942008-08-11 Joel Sherrill <joel.sherrill@oarcorp.com>
1595
1596 * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it.
1597 * gsocket.h, socket.c: Update to support RTEMS.
1598 * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross.
1599
abcbd24c 16002008-08-10 Samuel Tardieu <sam@rfc1149.net>
9e81dbc7 1601 Robert Dewar <dewar@adacore.com>
abcbd24c
ST
1602
1603 * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of
1604 left argument even when right argument is 0.
1605 (Expand_N_Op_Mod): Ditto when right argument is 1.
1606 (Expand_N_Op_Multiply): Ditto when any argument is 0.
1607 (Expand_N_Op_Rem): Ditto when right argument is 1.
1608
98e48a7f
MLI
16092008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1610
1611 * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
1612 by warn_unused.
9e81dbc7 1613
70d904ca
ES
16142008-08-08 Ed Schonberg <schonberg@adacore.com>
1615
1616 * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
1617 from Freeze_Entity. Used to generate cross-reference information for
1618 types declared in generic packages.
1619
cfb53555
TQ
16202008-08-08 Thomas Quinot <quinot@adacore.com>
1621
1622 * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a
1623 compatibility shim.
1624
a3ea9137
AC
16252008-08-08 Thomas Quinot <quinot@adacore.com>
1626
1627 * gsocket.h:
1628 On Windows, include <errno.h> and redefine only selected errno values
1629 from their <winsock2.h> definitions.
1630
1631 * s-osinte-freebsd.ads: Minor reformatting
1632
1633 * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting
1634
1635 * g-soccon.ads: New file.
1636
1637 * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
1638 g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
1639 g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
1640 g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
1641 unit, to allow building software that depends on this internal unit
1642 with both older and newer compilers.
1643
16442008-08-08 Robert Dewar <dewar@adacore.com>
1645
1646 * s-strxdr.adb: Minor reformatting
1647
16482008-08-08 Bob Duff <duff@adacore.com>
1649
1650 * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
1651 checking for integer operations (including division by zero)", which
1652 is wrong -- divide by zero is not part of overflow checking.
1653 Also added misc clarification about what check-suppression means.
1654
1655 * gnat_rm.texi: Clarify the meaning of pragma Suppress.
1656
16572008-08-08 Jerome Lambourg <lambourg@adacore.com>
1658
1659 * g-comlin.adb (Add_Switch): Handle addition of switches at the
1660 begining of the command line.
1661 (Append, Add): Renaming of Append to Add as this now allows addition
1662 at the begining of the list.
9e81dbc7 1663
a3ea9137
AC
1664 * g-comlin.ads (Add_Switch): Handle addition of switches at the
1665 begining of the command line.
1666
16672008-08-08 Thomas Quinot <quinot@adacore.com>
1668
1669 * g-sercom.ads:
1670 (Name): Document application scope (only legacy PC serial ports on
1671 Linux and Windows).
1672
15d2e2d4
TQ
16732008-08-08 Thomas Quinot <quinot@adacore.com>
1674
1675 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
1676 previous change, not needed after all.
1677
51e4c4b9
AC
16782008-08-08 Ed Schonberg <schonberg@adacore.com>
1679
1680 * exp_ch4.adb (Expand_Allocator_Expression): add check if null
1681 exclusion indicator is present
1682
16832008-08-08 Robert Dewar <dewar@adacore.com>
1684
1685 * g-comlin.adb: Minor code reorganization
1686 Minor reformatting
1687
1688 * g-comlin.ads: Minor reformatting
1689
1690 * s-fileio.adb: Minor reformatting
1691
1692 * sem_attr.adb: Minor code reorganization (use Nkind_In)
1693 Minor reformatting
1694
6f371a2e
ST
16952008-08-06 Samuel Tardieu <sam@rfc1149.net>
1696
1697 * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
1698 with s-oscons-tmplt.i.
1699
6a69bcf4
ST
17002008-08-06 Samuel Tardieu <sam@rfc1149.net>
1701
1702 * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.
1703
ef9e1eff
AC
17042008-08-06 Ed Schonberg <schonberg@adacore.com>
1705
1706 * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
1707 of incomplete type.
1708
1709 * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
1710 of a formal parameter of an incomplete type. Improve error message for
1711 other improper uses of incomplete types.
1712
17132008-08-06 Robert Dewar <dewar@adacore.com>
1714
1715 * gnat_ugn.texi: Clarify -gnato documentation
1716
17172008-08-06 Thomas Quinot <quinot@adacore.com>
1718
1719 * gcc-interface/Makefile.in,
1720 g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
1721 g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
1722 g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
1723 g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
1724 g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
1725 g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
1726 g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
1727 g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
1728 g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
1729 Remove GNAT.Sockets.Constants. This internal package is replaced by
1730 System.OS_Constants.
1731
e93d146b
TQ
17322008-08-06 Thomas Quinot <quinot@adacore.com>
1733
1734 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
1735 Remove obsolete targets referencing gen-soccon
1736 When generating s-oscons.ads, use a file name that includes the
1737 THREAD_KIND, to ensure that the (potentially different) version from a
1738 previous build with a different threads flavour does not get reused.
1739
c6aecf3b
AC
17402008-08-06 Thomas Quinot <quinot@adacore.com>
1741
1742 * sem_res.adb: Minor reformatting
1743
1744 * s-fileio.adb (Open): When file open operation fails, raise Name_Error
1745 only when the operating system reports a non-existing file or directory
1746 (ENOENT), otherwise raise Name_Error.
1747
1748 * exp_ch11.adb: Minor reformatting
1749
17502008-08-06 Ed Schonberg <schonberg@adacore.com>
1751
1752 * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
1753 incomplete, add the access_to_subprogram type to the list of private
1754 dependents only if the incomplete type will be completed in the current
1755 scope.
1756 (Build_Discriminant_Constraints): If the type of the discriminant is
1757 access_to_variable, reject a constraint that is access_to_constant.
1758
6594c0f3
AC
17592008-08-06 Thomas Quinot <quinot@adacore.com>
1760
1761 * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
1762 g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
1763 g-sttsne-dummy.ads: New files.
1764
1765 * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
1766 with pragma Unimplemented_Unit for sockets packages on Nucleus.
1767
17682008-08-06 Pascal Obry <obry@adacore.com>
1769
1770 * adaint.c: Another fix for ACL support on Windows.
1771
17722008-08-06 Javier Miranda <miranda@adacore.com>
1773
1774 * exp_disp (Expand_Interface_Actuals): Adds missing support for
1775 expansion of calls to subprograms using selected components.
1776
17772008-08-06 Ed Schonberg <schonberg@adacore.com>
1778
1779 * sem_res.adb (Resolve_Call): Use base type to determine whether a
1780 dereference is needed because a subtype of an access_to_subprogram is
1781 simply an access-subtype
1782
17832008-08-06 Jerome Lambourg <lambourg@adacore.com>
1784
1785 * g-comlin.adb (Set_Command_Line): Now that aliases can contain
1786 parameters, always specify the expected separator.
1787
f9325b03
AC
17882008-08-06 Thomas Quinot <quinot@adacore.com>
1789
1790 * xnmake.adb: Use new XUtil package for platform independent text
1791 output.
1792
17932008-08-06 Vincent Celier <celier@adacore.com>
1794
1795 * gnat_ugn.texi: Document compiler switch -gnateG
1796
17972008-08-06 Quentin Ochem <ochem@adacore.com>
1798
1799 * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
1800 in the case of an empty pattern size.
1801 (Compute_Result): Do not do any computation in the case of an empty
1802 pattern size.
1803 (Report_Result): Fixed computation of the overflow guard.
1804
18052008-08-06 Ed Schonberg <schonberg@adacore.com>
1806
1807 * g-awk.adb (Finalize): Do not use directly objects of the type in the
1808 finalization routine to prevent elaboration order anomalies in new
1809 finalization scheme.
1810
18112008-08-06 Ed Schonberg <schonberg@adacore.com>
1812
1813 * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
1814 declaration for the same type.
1815
18162008-08-06 Thomas Quinot <quinot@adacore.com>
1817
1818 * sem.adb: Minor rewording (comment)
1819
18202008-08-06 Jerome Lambourg <lambourg@adacore.com>
1821
1822 * g-comlin.adb (Define_Switch, Get_Switches): New.
1823 (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
1824 ungrouping switches.
1825 (For_Each_Simple_Switch): Allow more control over parameters handling.
1826 This generic method now allows ungrouping of switches with parameters
1827 and switches with more than one letter after the prefix.
1828 (Set_Command_Line): Take care of switches that are prefixed with a
1829 switch handling parameters without delimiter (-gnatya and -gnaty3 for
1830 example).
1831 (Add_Switch, Remove_Switch): Handle parameters possibly present inside
1832 a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
1833 the operation.
1834 (Start, Alias_Switches, Group_Switches): Take care of parameters
1835 possibly present inside a group.
1836
1837 * g-comlin.ads (Define_Switch): New method used to define a list of
1838 expected switches, that are necessary for correctly ungrouping switches
1839 with more that one character after the prefix.
1840 (Get_Switches): Method that builds a getopt string from the list of
1841 switches as set previously by Define_Switch.
1842 (Add_Switch, Remove_Switch): New versions of the methods, reporting the
1843 status of the operation. Also allow the removal of switches with
1844 parameters only.
1845 (Command_Line_Configuration_Record): Maintain a list of expected
1846 switches.
1847
f0a631aa
DR
18482008-08-06 Doug Rupp <rupp@adacore.com>
1849
1850 * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
1851 TARGET_MALLOC64 clear.
1852
1853 * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
1854 if TARGET_MALLOC64 clear.
1855
1856 * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
1857 (TARGET_MALLC64): New macro. Default to clear.
1858
31fcb30f
DR
18592008-08-06 Doug Rupp <rupp@adacore.com>
1860
1861 * gcc-interface/utils2.c (snames.h) Include
1862 (TARGET_ABI_OPEN_VMS): Initialize.
1863 (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
1864 for Convention C.
1865
ea08fcdc
AC
18662008-08-06 Ed Schonberg <schonberg@adacore.com>
1867
1868 * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
1869 null exclusion in a discriminant declaration
1870
1871 * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
1872 indicators when type is not an access type.
1873
1874 * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
1875 indicators when type is not an access type.
1876
18772008-08-06 Javier Miranda <miranda@adacore.com>
1878
1879 * exp_disp (Expand_Interface_Conversion): Freeze the entity associated
1880 with the target interface before expanding the code of the interface
1881 conversion.
1882
aecf0203
AC
18832008-08-05 Ed Schonberg <schonberg@adacore.com>
1884
1885 * freeze.adb:
1886 (Freeze_Entity): A deferred constant does not violate the restriction
9e81dbc7 1887 No_Default_Initialization,
aecf0203
AC
1888
1889 * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
1890 can carry a null exclusion indicator, and on which an error may be
1891 posted if the indicator is redundant.
1892
1893 * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
1894 does not apply to a subtype mark that already excludes null.
1895
1896 * sem_ch12.adb (Formal_Object_Declaration): Verify that a null
1897 exclusion does not apply to a subtype mark that already excludes null.
1898
18992008-08-05 Thomas Quinot <quinot@adacore.com>
1900
1901 * Makefile.rtl: Compile s-oscons.ads as part of the runtime library.
1902
19032008-08-05 Doug Rupp <rupp@adacore.com>
1904
1905 * vms_data.ads: Translation for /POINTER_SIZE qualifier.
1906
434d3cf1
AC
19072008-08-05 Thomas Quinot <quinot@adacore.com>
1908
1909 * gsocket.h: Make this file includable in a Nucleus environment, which
1910 does not support sockets.
1911
1912 * socket.c: Remove Nucleus-specific hack.
1913
19142008-08-05 Pascal Obry <obry@adacore.com>
1915
1916 * adaint.c: Remove support for readable attribute on vxworks and nucleus
1917
19182008-08-05 Ed Schonberg <schonberg@adacore.com>
1919
1920 * sem_attr.adb:
1921 (Analyze_Attribute, case 'Result): handle properly the case where some
1922 operand of the expression in a post-condition generates a transient
1923 block.
1924
1925 * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
1926 right-hand side when it is an anonymous access_to_subprogram, to force
1927 static accessibility check when needed.
1928
49331b42
AC
19292008-08-05 Sergey Rybin <rybin@adacore.com>
1930
1931 * gnat_ugn.texi: Changing the description of the gnatcheck metrics
1932 rule according to the change in the rule option.
1933 Add documentation for -gnatw.b/-gnatw.B
1934
19352008-08-05 Robert Dewar <dewar@adacore.com>
1936
1937 * ug_words: Add entries for -gnatw.b/-gnatw.B
1938
1939 * vms_data.ads: Add entries for -gnatw.b/-gnatw.B
1940
21f560ba
VC
19412008-08-05 Vincent Celier <celier@adacore.com>
1942
1943 * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
1944 (File).
9e81dbc7 1945
21f560ba
VC
1946 * a-ztdeio.adb: Ditto.
1947
43540ec6
AC
19482008-08-05 Pascal Obry <obry@adacore.com>
1949
1950 * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
1951 readable attribute.
1952
19532008-08-05 Vincent Celier <celier@adacore.com>
1954
1955 * s-wchwts.adb:
1956 (Wide_String_To_String): Returns a String with the same 'First as its
1957 parameter S.
1958 (Wide_Wide_String_To_String): Ditto
9e81dbc7 1959
43540ec6
AC
1960 * s-wchwts.ads:
1961 (Wide_String_To_String): Document that the lowest index of the returned
1962 String is equal to S'First.
1963
2d4d7e29
TQ
19642008-08-05 Thomas Quinot <quinot@adacore.com>
1965
1966 * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.
1967
1968 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
1969 s-oscons.ads
1970
4ae23b62
AC
19712008-08-05 Robert Dewar <dewar@adacore.com>
1972
1973 * opt.ads (Warn_On_Biased_Representation): New flag
9e81dbc7 1974
4ae23b62
AC
1975 * sem_ch13.adb:
1976 (Analyze_Attribute_Definition_Clause): Issue warning when biased
1977 representation is required.
1978 (Minimum_Size): Don't allow biasing if enum rep clause case
9e81dbc7 1979
4ae23b62
AC
1980 * sem_warn.adb:
1981 (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
1982 (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
9e81dbc7 1983
4ae23b62
AC
1984 * usage.adb: Add lines for -gnatw.b/B switches
1985
19862008-08-05 Pascal Obry <obry@adacore.com>
1987
1988 * a-coinve.adb: Reorder the code to avoid uninitialized warning.
1989
1990 * adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
1991
19922008-08-05 Thomas Quinot <quinot@adacore.com>
1993
1994 * socket.c: Minor reformatting.
1995
ba3fa650
AC
19962008-08-05 Robert Dewar <dewar@adacore.com>
1997
1998 * sem_ch3.adb: Minor reformatting
1999
2000 * prj-nmsc.adb: Minor reformatting
2001
20022008-08-05 Ed Schonberg <schonberg@adacore.com>
2003
2004 * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
2005 visibility check on the component type if the simple test fails.
2006
c775e4a1
AC
20072008-08-05 Jose Ruiz <ruiz@adacore.com>
2008
2009 * init.c (__gnat_install_handler for linux): If we are building the
2010 Xenomai run time then we need to do two additional things: avoid
2011 memory swapping and transform the Linux environment task into a native
2012 Xenomai task.
2013
2014 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
2015 time): Use interface to Xenomai native skin and avoid linux-specific
2016 way of setting CPU affinity.
2017 (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
2018
20192008-08-05 Bob Duff <duff@adacore.com>
2020
2021 * checks.ads: Minor comment fix
2022
20232008-08-05 Thomas Quinot <quinot@adacore.com>
2024
2025 * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
2026 g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
2027 CS8.
2028
20292008-08-05 Robert Dewar <dewar@adacore.com>
2030
2031 * mlib.adb: Minor code reorganization
2032 Minor reformatting
2033
2034 * make.adb: Minor reformatting
2035
2036 * prj-attr.ads: Minor reformatting
2037
2038 * s-os_lib.adb: Minor reformatting
2039
2040 * s-fileio.adb: Minor code reorganization
2041 Minor reformatting
2042
2043 * prj.ads: Minor reformatting
2044
20452008-08-05 Bob Duff <duff@adacore.com>
2046
2047 * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
2048 unresolved initial value of "null", because it causes implicitly
2049 generated "=" operators to be ambiguous, and because this type should
2050 not be passed to gigi.
2051
0df218a9
AC
20522008-08-05 Vincent Celier <celier@adacore.com>
2053
2054 * mlib.adb: Update comments.
2055
2056 * make.adb (Switches_Of): Check for Switches (others), before checking
2057 for Default_Switches ("Ada").
2058 (Gnatmake): Use Builder'Switches (others) in preference to
2059 Builder'Default_Switches ("Ada") if there are several mains.
2060
2061 * prj-attr-pm.adb:
2062 (Add_Attribute): Add component Others_Allowed in Attribute_Record
2063 aggregate.
2064
2065 * prj-attr.adb:
2066 Add markers to indicates that attributes Switches allow others as index
2067 (Others_Allowed_For): New Boolean function, returning True for
2068 attributes with the mark.
2069 (Initialize): Recognize optional letter 'O' as the marker for
2070 associative array attributes where others is allowed as the index.
2071
2072 * prj-attr.ads:
2073 (Others_Allowed_For): New Boolean function
2074 (Attribute_Record): New Boolean component Others_Allowed
9e81dbc7 2075
0df218a9
AC
2076 * prj-dect.adb:
2077 (Parse_Attribute_Declaration): For associative array attribute where
2078 others is allowed as the index, allow others as an index.
2079
2080 * prj-nmsc.adb:
2081 (Process_Binder): Skip associative array attributes with index others
2082 (Process_Compiler): Ditto
2083
2084 * prj-util.adb:
2085 (Value_Of (Index, In_Array)): Make no attempt to put in lower case when
2086 index is All_Other_Names.
2087
2088 * prj.ads:
2089 (All_Other_Names): New constant
2090
2091 * prj-proc.adb:
2092 (Process_Declarative_Items): Skip associative array attribute when index
2093 is reserved word "others".
2094
20952008-08-05 Vasiliy Fofanov <fofanov@adacore.com>
2096
2097 * gen-oscons.c: Adapt for VMS where termios.h is not available.
2098
c7d920ad
TQ
20992008-08-05 Thomas Quinot <quinot@adacore.com>
2100
2101 * a-rttiev.adb: Minor reformatting (comments)
2102
2103 * gen-soccon.c: Rename to gen-oscons.c
2104
2105 * gen-oscons.c: New file. Now generate System.OS_Constants instead of
2106 GNAT.Sockets.Constants.
2107 Add new constants for GNAT.Serial_Communications and System.File_IO.
2108
8b79ad42
AC
21092008-08-05 Javier Miranda <miranda@adacore.com>
2110
2111 * sem_util.adb (Collect_Interfaces_Info): Minor reformating.
2112 * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
2113 implementation of this routine has been simplified.
2114
21152008-08-05 Pascal Obry <obry@adacore.com>
2116
2117 * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
2118 Set_Read_Only Win32 implementation.
2119
99e81db6
TQ
21202008-08-05 Thomas Quinot <quinot@adacore.com>
2121
2122 * exp_strm.adb: Minor reformatting (comments)
2123
2124 * sem_ch12.adb: Minor reformatting.
2125
dce86910
AC
21262008-08-05 Robert Dewar <dewar@adacore.com>
2127
2128 * sem_ch3.adb: Minor reformatting
2129
2130 * checks.adb: Minor reformatting
2131
21322008-08-05 Thomas Quinot <quinot@adacore.com>
2133
2134 * tbuild.ads (New_External_Name): Update spec to reflect relaxed
2135 restriction on Prefix.
2136
21372008-08-05 Jerome Lambourg <lambourg@adacore.com>
2138
2139 * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
2140 methods needed to handle switch sections when building a command line.
2141 (Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
2142 Current_Section): New public methods or methods modified to handle
2143 building command lines with sections.
2144 (Set_Command_Line): Take into account sections when analysing a switch
2145 string.
2146 (Start): Sort the switches by sections before iterating the command line
2147 elements.
9e81dbc7 2148
dce86910
AC
2149 * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
2150 Is_New_Section, Current_Section): New methods or methods modified to
2151 handle building command lines with sections.
2152
21532008-08-05 Ed Schonberg <schonberg@adacore.com>
2154
2155 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
2156 discriminants, indicate that the corresponding object declaration has
2157 no initialization, to prevent spurious warnings when the access type is
2158 null-excluding.
2159
21602008-08-05 Ed Schonberg <schonberg@adacore.com>
2161
2162 * sem_res.adb (Resolve_Call): If this is a call to the predefined
2163 Abort_Task, warn if the call appears within a protected operation.
2164
52fb73c2
AC
21652008-08-04 Robert Dewar <dewar@adacore.com>
2166
2167 * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
2168
21692008-08-04 Ed Schonberg <schonberg@adacore.com>
2170
2171 * sem_ch3.adb:
2172 (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
2173 anonymous access to protected subprogram that is the return type of the
2174 specification of a subprogram body.
2175
2176 * sem_ch6.adb:
2177 (Analyze_Subprogram_Body): if the return type is an anonymous access to
2178 subprogram, freeze it now to prevent access anomalies in the back-end.
2179
2180 * exp_ch9.adb: Minor code cleanup.
2181 Make sure that new declarations are inserted into the tree before
2182 analysis (from code reading).
2183
21842008-08-04 Robert Dewar <dewar@adacore.com>
2185
2186 * exp_ch5.adb:
2187 (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
2188 at point of return.
2189
367a9e66
AC
21902008-08-04 Thomas Quinot <quinot@adacore.com>
2191
2192 * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
2193
21942008-08-04 Vasiliy Fofanov <fofanov@adacore.com>
2195
2196 * g-soccon-mingw.ads: Fix value for MSG_WAITALL
2197
21982008-08-04 Javier Miranda <miranda@adacore.com>
2199
2200 * sem_prag.adb (Process_Convention): Add missing support for
2201 N_Private_Extension_Declaration nodes.
2202
22032008-08-04 Robert Dewar <dewar@adacore.com>
2204
2205 * exp_ch4.adb: Minor reformatting
2206
a07c3593
AC
22072008-08-04 Pascal Obry <obry@adacore.com>
2208
2209 * adaint.h: Add missing prototype.
2210
2211 * adaint.c: Refine support for Windows file attributes.
2212
22132008-08-04 Robert Dewar <dewar@adacore.com>
2214
2215 * sem_res.adb:
2216 (Valid_Conversion): Catch case of designated types having different
2217 sizes, even though they statically match.
2218
22192008-08-04 Javier Miranda <miranda@adacore.com>
2220
2221 * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
2222 added in previous patch to handle access to subprograms.
2223
22242008-08-04 Robert Dewar <dewar@adacore.com>
2225
2226 * freeze.adb:
2227 (Freeze_Entity): Only check No_Default_Initialization restriction for
2228 constructs that come from source
2229
22302008-08-04 Thomas Quinot <quinot@adacore.com>
2231
2232 * exp_ch6.adb: Minor comment fix.
2233
2234 * sem_ch4.adb: Minor reformatting.
2235
d559d5c6
AC
22362008-08-04 Robert Dewar <dewar@adacore.com>
2237
2238 * sem_res.adb: (Large_Storage_Type): Improve previous change.
2239
22402008-08-04 Pascal Obry <obry@adacore.com>
2241
2242 * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
2243 file attributes.
2244
b1c11e0e
JM
22452008-08-04 Javier Miranda <miranda@adacore.com>
2246
2247 * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
2248 for N_Formal_Object_Declaration nodes. Adding kludge required by
2249 First_Formal to provide its functionality with access to functions.
2250 (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
2251 for anonymous access types returned by functions.
2252
2253 * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
2254 conversion of null-excluding access types (required only once to force
2255 the generation of the required runtime check).
2256
2257 * sem_type.adb (Covers): minor reformating
2258
2259 * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
2260 with internally generated nodes. Avoid generating the error inside init
2261 procs.
2262
2263 * sem_res.adb (Resolve_Membership_Test): Minor reformating.
2264 (Resolve_Null): Generate the null-excluding check in case of assignment
2265 to a null-excluding object.
2266 (Valid_Conversion): Add missing support for anonymous access to
2267 subprograms.
2268
2269 * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
2270 anonymous access types whose designated type is an itype. This case
2271 occurs with anonymous access to protected subprograms types.
2272 (Analyze_Return_Type): Add missing support for anonymous access to
2273 protected subprogram.
2274
2275 * sem_eval.adb (Subtypes_Statically_Match): In case of access to
2276 subprograms addition of missing check on matching convention. Required
2277 to properly handle access to protected subprogram types.
2278
2279 * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
2280 null excluding access types.
2281
b282ab37
AC
22822008-08-04 Ed Schonberg <schonberg@adacore.com>
2283
2284 * sem_ch12.adb: Add comments
2285
2286 * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
2287 access type and the allocator is not initialized, warn rather than
2288 reporting an error.
2289
22902008-08-04 Robert Dewar <dewar@adacore.com>
2291
2292 * exp_ch4.adb: Minor reformatting
2293
2294 * exp_dist.adb: Minor reformatting
2295
2296 * g-comlin.adb: Minor reformatting
2297
22982008-08-04 Gary Dismukes <dismukes@adacore.com>
2299
2300 * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
2301 target to the type of the aggregate in the case where the target object
2302 is class-wide.
2303
2304 * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
2305 result type is class-wide and inherently limited, and the expression
2306 has a specific type, create a return object of the specific type, for
2307 more efficient handling of returns of build-in-place aggregates (avoids
2308 conversions of the class-wide return object to the specific type on
2309 component assignments).
2310
2311 * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
2312 about a type mismatch for a class-wide function with a return object
2313 having a specific type when the object declaration doesn't come from
2314 source. Such an object can result from the expansion of a simple return.
2315
23162008-08-04 Vasiliy Fofanov <fofanov@adacore.com>
2317
2318 * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
2319
2320 * gcc-interface/Makefile.in: Use 64bit-specific system files when
2321 compiling for 64bit windows.
2322
54838d1f
AC
23232008-08-04 Jerome Lambourg <lambourg@adacore.com>
2324
2325 * g-comlin.adb (Group_Switches): Preserve the switch order when
2326 grouping and allow switch grouping of switches with more than one
2327 character extension (e.g. gnatw.x).
2328 (Args_From_Expanded): Remove this now obsolete method.
2329
23302008-08-04 Ed Schonberg <schonberg@adacore.com>
2331
2332 * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
2333 chain at once, to ensure that type is properly decorated for back-end,
2334 when allocator appears within a loop.
2335
23362008-08-04 Kevin Pouget <pouget@adacore.com>
2337
2338 * snames.h, snames.adb, snames.ads:
2339 Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
2340
2341 * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
2342 Build_To_Any_Call and Build_TypeCode_Call procedures.
2343
2344 * exp_attr.adb, sem_attr.adb: Add corresponding cases.
2345
2346 * rtsfind.ads: Add corresponding names.
2347
2348 * tbuild.adb: Update prefix restrictions to allow '_' character.
2349
819fad69
AC
23502008-08-04 Doug Rupp <rupp@adacore.com>
2351
2352 * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
2353 * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
2354 * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
2355 use it. Calculate pointer range overflow using 64bit types.
2356
23572008-08-04 Ed Schonberg <schonberg@adacore.com>
2358
2359 * sem_ch3.adb (Access_Definition): A formal object declaration is a
2360 legal context for an anonymous access to subprogram.
2361
2362 * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
2363 indirect call, report success to the caller to include possible
2364 interpretation.
2365
2366 * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
2367 check when the type
2368 of the extended return is an anonymous access_to_subprogram type.
2369
2370 * sem_res.adb:
2371 (Resolve_Call): Insert a dereference if the type of the subprogram is an
2372 access_to_subprogram and the context requires its return type, and a
2373 dereference has not been introduced previously.
2374
23752008-08-04 Arnaud Charlet <charlet@adacore.com>
2376
2377 * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
2378 gnatcheck support in GPS.
2379
23802008-08-04 Vincent Celier <celier@adacore.com>
2381
2382 * mlib.adb (Create_Sym_Links): Create relative symbolic links when
2383 requested
2384
a037f912
VC
23852008-08-04 Vincent Celier <celier@adacore.com>
2386
2387 * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
2388 variable, but don't check the resulting value as it has no impact on
2389 the processing.
9e81dbc7 2390
a037f912
VC
2391 * opt.ads:
2392 (Generate_Processed_File): New Boolean flag, set to True in the compiler
2393 when switch -gnateG is used.
9e81dbc7 2394
a037f912
VC
2395 * prep.adb:
2396 (Preprocess): new Boolean out parameter Source_Modified. Set it to True
2397 when the source is modified by the preprocessor and there is no
2398 preprocessing errors.
9e81dbc7 2399
a037f912 2400 * prep.ads (Preprocess): new Boolean out parameter Source_Modified
9e81dbc7 2401
a037f912
VC
2402 * sinput-l.adb:
2403 (Load_File): Output the result of preprocessing if the source text was
2404 modified.
9e81dbc7 2405
a037f912 2406 * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
9e81dbc7 2407
a037f912 2408 * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
9e81dbc7 2409
a037f912 2410 * ug_words: Add VMS equivalent for -gnateG
9e81dbc7 2411
a037f912
VC
2412 * vms_data.ads:
2413 Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
2414
bdc33a55
AC
24152008-08-04 Doug Rupp <rupp@adacore.com>
2416
2417 * gcc-interface/utils2.c:
2418 (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
2419 in 32bit descriptor.
2420
24212008-08-04 Robert Dewar <dewar@adacore.com>
2422
2423 * par-ch10.adb: Minor reformatting
2424
2425 * i-cobol.adb: Minor reformatting.
2426
24272008-08-04 Ed Schonberg <schonberg@adacore.com>
2428
2429 * sem_ch3.adb (Access_Definition): Create an itype reference for an
2430 anonymous access return type of a regular function that is not a
2431 compilation unit.
2432
24332008-08-04 Vincent Celier <celier@adacore.com>
2434
2435 * prj-attr.adb: New Builder attribute Global_Compilation_Switches
9e81dbc7 2436
bdc33a55 2437 * snames.adb: New standard name Global_Compilation_Switches
9e81dbc7 2438
bdc33a55
AC
2439 * snames.ads: New standard name Global_Compilation_Switches
2440
2441 * make.adb: Correct spelling error in comment
2442
24432008-08-04 Arnaud Charlet <charlet@adacore.com>
2444
2445 * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
2446 target.
2447
24482008-08-04 Thomas Quinot <quinot@adacore.com>
2449
2450 * sem_ch10.adb: Minor comment fix.
2451
fc1b906a
AC
24522008-08-04 Robert Dewar <dewar@adacore.com>
2453
2454 * restrict.adb: Improved messages for restriction warnings
2455
2456 * restrict.ads: Improved messages for restriction messages
2457
2458 * s-rident.ads (Profile_Name): Add No_Profile
2459
24602008-08-04 Robert Dewar <dewar@adacore.com>
2461
2462 * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
2463
24642008-08-04 Robert Dewar <dewar@adacore.com>
2465
2466 * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
2467
24682008-08-04 Vincent Celier <celier@adacore.com>
2469
2470 * prj-proc.adb:
2471 (Copy_Package_Declarations): When inheriting package Naming from a
2472 project being extended, do not inherit source exception names.
2473
24742008-08-04 Ed Schonberg <schonberg@adacore.com>
2475
2476 * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
2477 list of declaration to find previous subprogram, do not go to the
2478 original node of a generic unit.
2479
d2143736
EB
24802008-08-02 Eric Botcazou <ebotcazou@adacore.com>
2481
2482 * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
2483 New case. Convert BOOLEAN_TYPE operation to the default integer type.
2484
a981c964
EB
24852008-08-01 Eric Botcazou <ebotcazou@adacore.com>
2486
2487 * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
2488 * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
2489 and adjust for above renaming.
2490 * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
2491 gnu_expr_alt_type parameter. Convert the expression to it instead
2492 of changing its type in place.
2493 (build_function_stub): Adjust call to above function.
2494
8df2e902
EB
24952008-08-01 Eric Botcazou <ebotcazou@adacore.com>
2496
2497 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
2498 code. Do not get full definition of deferred constants with address
2499 clause for a use. Do not ignore deferred constant definitions with
2500 address clause. Ignore constant definitions already marked with the
2501 error node.
2502 <object>: Remove obsolete comment. For a deferred constant with
2503 address clause, get the initializer from the full view.
2504 * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
2505 Rework and remove obsolete comment.
2506 <N_Object_Declaration>: For a deferred constant with address clause,
2507 mark the full view with the error node.
2508 * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
2509 formatting nits.
2510
585df50b
AC
25112008-08-01 Hristian Kirtchev <kirtchev@adacore.com>
2512
2513 * rtsfind.ads: Add block IO versions of stream routines for Strings.
9e81dbc7 2514
585df50b
AC
2515 * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
2516 sem_prag.adb, snames.adb, snames.ads, snames.h,
2517 par-prag.adb: Undo previous stream related changes.
9e81dbc7 2518
585df50b 2519 * s-rident.ads: Add new restriction No_Stream_Optimizations.
9e81dbc7 2520
585df50b
AC
2521 * s-ststop.ads, s-ststop.adb: Comment reformatting.
2522 Define enumeration type to designate different IO mechanisms.
2523 Enchance generic package Stream_Ops_Internal to include an
2524 implementation of Input and Output.
2525
2526 * exp_attr.adb (Find_Stream_Subprogram): If restriction
2527 No_Stream_Optimization is active, choose the default byte IO
2528 implementations of stream attributes for Strings.
2529 Otherwise use the corresponding block IO version.
2530
2eee5152 25312008-08-01 Olivier Hainque <hainque@adacore.com>
9e81dbc7 2532
585df50b
AC
2533 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
2534 turn Ada Pure into GCC const, now implicitely implying nothrow as well.
2535
25362008-08-01 Robert Dewar <dewar@adacore.com>
2537
2538 * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
2539 convert plain identifier into defining identifier.
2eee5152 2540
2b747305
AC
25412008-08-01 Robert Dewar <dewar@adacore.com>
2542
2543 * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
2544 warnings
2545
2546 * lib-xref.adb: Add error defense.
2547
25482008-08-01 Bob Duff <duff@adacore.com>
2549
2550 * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
2551
0c246603
AC
25522008-08-01 Gary Dismukes <dismukes@adacore.com>
2553
2554 * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
2555 correct accessibility levels. In the "when others" case, retrieve the
2556 access level of the Etype of Prev rather than Prev_Orig, because the
2557 original exression has not always been analyzed.
2558
25592008-08-01 Robert Dewar <dewar@adacore.com>
2560
2561 * prj-nmsc.adb: Minor reformatting
2562
2563 * sem_ch4.adb: Minor reformatting
2564 Minor code reorganization
2565
2566 * prj.ads: Minor reformatting
2567
2568 * s-os_lib.adb: Minor reformatting
2569
2570 * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
2571 half encodings
2572
2573 * scans.ads: Minor reformatting.
2574
2575 * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
2576 (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
2577
2578 * sem_res.adb:
2579 (Resolve_Call): Check violation of No_Specific_Termination_Handlers
2580
2581 * sem_ch12.adb: Minor comment reformatting
2582
2583 * par-ch3.adb (P_Type_Declaration): Properly handle missing type
2584 keyword
2585
1cb17b78
AC
25862008-08-01 Robert Dewar <dewar@adacore.com>
2587
2588 * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
2589 generating code
2590
25912008-08-01 Ed Schonberg <schonberg@adacore.com>
2592
2593 * checks.adb (Apply_Float_Conversion_Check): If the expression to be
2594 converted is a real literal and the target type has static bounds,
2595 perform the conversion exactly to prevent floating-point anomalies on
2596 some targets.
2597
25982008-08-01 Vincent Celier <celier@adacore.com>
2599
2600 * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
9e81dbc7 2601
1cb17b78 2602 * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
9e81dbc7 2603
1cb17b78
AC
2604 * prj.adb (Object_Exist_For): Use Object_Generated, not
2605 Objects_Generated that is removed and was never modified anyway.
2606
2607 * prj.ads:
2608 (Path_Syntax_Kind): New enumeration type
2609 (Language_Config): New component Path_Syntax, defaulted to Host.
2610 Components PIC_Option and Objects_Generated removed, as they are not
2611 used.
2612
2613 * snames.adb: New standard name Path_Syntax
9e81dbc7 2614
1cb17b78
AC
2615 * snames.ads: New standard name Path_Syntax
2616
26172008-08-01 Vincent Celier <celier@adacore.com>
2618
2619 * mlib-utl.adb:
2620 (Adalib_Path): New variable to store the path of the adalib directory
2621 when procedure Specify_Adalib_Dir is called.
2622 (Lib_Directory): If Adalib_Path is not null, return its value
2623 (Specify_Adalib_Dir): New procedure
9e81dbc7 2624
1cb17b78
AC
2625 * mlib-utl.ads (Specify_Adalib_Dir): New procedure
2626
26272008-08-01 Ed Schonberg <schonberg@adacore.com>
2628
2629 * sem_prag.adb:
2630 (Check_Precondition_Postcondition): If not generating code, analyze the
2631 expression in a postcondition that appears in a subprogram body, so that
2632 it is properly decorated for ASIS use.
2633
26342008-08-01 Gary Dismukes <dismukes@adacore.com>
2635
2636 * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
2637 Orig_Prev to Prev in the case where the actual is N_Function_Call or
2638 N_Identifier. This was interfering with other cases that are rewritten
2639 as N_Identifier, such as allocators, resulting in passing of the wrong
2640 accessibility level, and based on testing this code is apparently no
2641 longer needed at all.
2642
26432008-08-01 Ed Schonberg <schonberg@adacore.com>
2644
2645 * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
2646 procedure call whose prefix
2647 is a parameterless function call that returns an access_to_procedure.
2648
d1b4f87d
AC
26492008-08-01 Jose Ruiz <ruiz@adacore.com>
2650
2651 * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
2652 for RTX. Adding a suffix that is incremented at each iteration.
2653
26542008-08-01 Robert Dewar <dewar@adacore.com>
2655
2656 * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
2657 Raise_Exception
2658
26592008-08-01 Jerome Lambourg <lambourg@adacore.com>
2660
2661 * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
2662 paths, which are authorized by Windows but can lead to errors when used
2663 elsewhere.
2664
cfb02ad1
AC
26652008-08-01 Ed Schonberg <schonberg@adacore.com>
2666
2667 * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
2668 a pending instantiation for the body of a subprogram that is to be
2669 inlined.
2670
2671 * sem_ch12.adb:
2672 (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
2673
2674 * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
2675 create a pending instance for its body, so that calls to the subprogram
2676 can be inlined by the back-end.
2677
26782008-08-01 Jose Ruiz <ruiz@adacore.com>
2679
2680 * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
2681 rts-rtx-w32).
2682
e1bb4e71
AC
26832008-08-01 Robert Dewar <dewar@adacore.com>
2684
2685 * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
2686
26872008-08-01 Doug Rupp <rupp@adacore.com>
2688
2689 * gnat_rm.texi: Document new mechanism Short_Descriptor.
9e81dbc7 2690
e1bb4e71
AC
2691 * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
2692 mechanism values.
2693
2694 * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2695 mechanism and Short_Descriptor mechanism values.
2696
2697 * snames.adb (preset_names): Add short_descriptor entry.
2698
2699 * snames.ads: Add Name_Short_Descriptor.
2700
2701 * types.h: Add new By_Short_Descriptor mechanism values.
2702
2703 * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2704 mechanism and Short_Descriptor mechanism values.
2705
2706 * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
2707 values.
2708 (Descriptor_Codes): Modify range for new mechanism values.
2709
2710 * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
2711 mechanism values.
2712
2713 * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
2714 (gnat_to_gnu_param): Handle By_Short_Descriptor.
2715
2716 * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
2717 (build_vms_descriptor32): New prototype.
2718 (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
2719
2720 * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
2721 argument in call fill_vms_descriptor.
2722
2723 * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
2724 build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
9e81dbc7 2725 (build_vms_descriptor): Renamed from build_vms_descriptor64.
e1bb4e71
AC
2726 (convert_vms_descriptor32): New function.
2727 (convert_vms_descriptor64): New function.
2728 (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
2729 descriptors.
2730
2731 * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
2732 no longer needed.
2733
27342008-08-01 Jose Ruiz <ruiz@adacore.com>
2735
2736 * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
2737 nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
2738 name.
2739
bca3ab79
AC
27402008-08-01 Jose Ruiz <ruiz@adacore.com>
2741
2742 * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
2743 current directory so only fully qualified names are allowed.
2744
27452008-08-01 Robert Dewar <dewar@adacore.com>
2746
2747 * gnat_ugn.texi:
2748 Minor editing, remove uncomfortable use of semicolon
2749
2750 * s-ststop.adb: Add some ??? comments
2751
2752 * sem_ch10.adb: Minor reformatting
2753
2754 * snames.ads:
2755 Minor comment fixes, some pragmas were not properly
2756 categorized in the comments, documentation change only
2757
2758 * xref_lib.adb: Minor reformatting
2759
2760 * sinput.adb: Minor reformatting
2761
2762 * gnatchop.adb: Minor reformatting
2763
2764 * sem_util.ads: Minor reformatting.
2765
2766 * opt.ads: Minor documentation fix
2767
2768 * scng.adb: Minor reformatting
2769
2770 * prj-part.adb: Update comments
2771
27722008-08-01 Ed Schonberg <schonberg@adacore.com>
2773
2774 * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
2775 tagged synchronized type, use corresponding record type.
2776
27772008-08-01 Doug Rupp <rupp@adacore.com>
2778
2779 * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
2780 dummy transfer address for debugging.
9e81dbc7 2781
bca3ab79
AC
2782 * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
2783
2784 * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
2785
4c5a0615
EB
27862008-07-31 Eric Botcazou <ebotcazou@adacore.com>
2787
2788 * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
2789 * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
2790
964771d9
AC
27912008-07-31 Pascal Obry <obry@adacore.com>
2792
2793 * prj-nmsc.adb: Keep Object and Exec directory casing.
2794
27952008-07-31 Jose Ruiz <ruiz@adacore.com>
2796
2797 * system-rtx-rtss.ads
2798 Change the default stack size. It is important to set the commit part.
9e81dbc7 2799
964771d9
AC
2800 * s-taprop-rtx.adb
2801 (Initialize): Get the clock resolution.
2802 (RT_Resolution): Return the clock resolution that is indicated by the
2803 system.
2804
2805 * s-parame-vxworks.adb
2806 Document that this body is used for RTX in RTSS (kernel) mode.
2807
2808 * gcc-interface/Makefile.in
2809 (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
2810 s-parame-vxworks.adb body in order to have reasonable stack sizes in
2811 RTX RTSS kernel mode. Virtual memory is not used in that case, so we
2812 cannot ask for too big values.
2813
28142008-07-31 Robert Dewar <dewar@adacore.com>
2815
2816 * exp_aggr.adb: Minor reformatting
2817
2818 * makeutl.adb: Minor reformatting
2819
2820 * prj-env.adb: Minor reformatting
2821
1e0f7ffb
AC
28222008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2823
2824 * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
2825 tagged type is completed by a concurrent type.
2826
28272008-07-31 Gary Dismukes <dismukes@adacore.com>
2828
2829 * sem_aggr.adb:
2830 (Resolve_Record_Aggregate): Bypass error that a type without
2831 components must have a "null record" aggregate when compiling for Ada
2832 2005, since it's legal to give an aggregate of form (others => <>)
2833 for such a type.
2834
fa4bc5ab
AC
28352008-07-31 Javier Miranda <miranda@adacore.com>
2836
2837 * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
2838 handle synchronized types. Required to handle well the object.operation
2839 notation applied to synchronized types.
2840
28412008-07-31 Quentin Ochem <ochem@adacore.com>
2842
2843 * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
2844 anymore - just used internally.
2845 Added handling of very small tasks - when the theoretical size is
2846 already full at the point of the call.
2847 (Report_Result): Fixed result computation, Stack_Used_When_Filling does
2848 not need to be added to the result.
2849
28502008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2851
2852 * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
2853 corresponding spec is a primitive wrapper. Update comment.
2854
28552008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2856
2857 * bindgen.adb Comment reformatting. Update the list of run-time globals.
2858 (Gen_Adainit_Ada): Add the declaration, import and value set for
2859 configuration flag Canonical_Streams.
2860 (Gen_Adainit_C): Add the declaration and initial value of external
2861 symbol __gl_canonical_streams.
9e81dbc7 2862
fa4bc5ab 2863 * init.c: Update the list of global values computed by the binder.
9e81dbc7 2864
fa4bc5ab 2865 * opt.ads: Add flag Canonical_Streams.
9e81dbc7 2866
fa4bc5ab
AC
2867 * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
2868 semantically handled pragmas.
9e81dbc7 2869
fa4bc5ab
AC
2870 * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
2871 (Analyze_Pragma): Add case for pragma Canonical_Streams.
9e81dbc7 2872
fa4bc5ab 2873 * snames.adb: Add character value for name Canonical_Streams.
9e81dbc7 2874
fa4bc5ab
AC
2875 * snames.ads:
2876 Add Name_Canonical_Streams to the list of configuration pragmas.
2877 Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
9e81dbc7 2878
fa4bc5ab 2879 * snames.h: Add a definition for Pragma_Canonical_Streams.
9e81dbc7 2880
fa4bc5ab
AC
2881 * s-ststop.adb:
2882 Add a flag and import to seize the value of external symbol
2883 __gl_canonical_streams. Update comment and initial value of constant
2884 Use_Block_IO.
9e81dbc7 2885
fa4bc5ab 2886 * gnat_rm.texi: Add section of pragma Canonical_Streams.
9e81dbc7 2887
fa4bc5ab
AC
2888 * gnat_ugn.texi:
2889 Add pragma Canonical_Streams to the list of configuration pragmas.
2890
28912008-07-31 Ed Schonberg <schonberg@adacore.com>
2892
2893 * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
2894 has the form A.B.C and B is a unit renaming, analyze its compilation
2895 unit and add a with_clause on A.b to the context.
2896
f32b9cd1
AC
28972008-07-31 Vincent Celier <celier@adacore.com>
2898
2899 * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
2900 return the empty string, instead of raising Constraint_Error.
2901
29022008-07-31 Gary Dismukes <dismukes@adacore.com>
2903
2904 * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
9e81dbc7 2905
f32b9cd1
AC
2906 * checks.adb (Apply_Accessibility_Check): Insert the check on
2907 Insert_Node.
9e81dbc7 2908
f32b9cd1
AC
2909 * exp_attr.adb:
2910 (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
2911 to new parameter Insert_Node on call to Apply_Accessibility_Check.
2912 Necessary to distinguish the insertion node because the dereferenced
2913 formal may come from a rename, but the check must be inserted in
2914 front of the attribute.
9e81dbc7 2915
f32b9cd1
AC
2916 * exp_ch4.adb:
2917 (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
2918 call to Apply_Accessibility_Check.
2919 (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
2920 on call to Apply_Accessibility_Check.
2921 Minor reformatting
2922
29232008-07-31 Javier Miranda <miranda@adacore.com>
2924
2925 * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
2926 types when the candidate type is a synchronized type.
9e81dbc7 2927
f32b9cd1
AC
2928 * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
2929 types, and complete management of synchronized types adding missing
2930 code to handle formal that is a synchronized type.
9e81dbc7 2931
f32b9cd1
AC
2932 * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
2933 are not available and cause the compiler to blowup. Found compiling
2934 test with switch -gnatc
9e81dbc7 2935
f32b9cd1
AC
2936 * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
2937 Has_Correct_Formal_Mode plus code cleanup.
2938
e92c92b2
AC
29392008-07-31 Bob Duff <duff@adacore.com>
2940
2941 * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
2942 recognized as two end-of-lines, but it should be just one.
2943
29442008-07-31 Thomas Quinot <quinot@adacore.com>
2945
2946 * exp_ch9.adb: Minor reformatting
2947
2948 * tbuild.ads: Fix several occurrences of incorrectly referring to
2949 Name_Find as Find_Name.
2950
29512008-07-31 Ed Schonberg <schonberg@adacore.com>
2952
2953 * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
2954 and the context is an object declaration with non-static bounds, treat
2955 the aggregate as non-static.
2956
29572008-07-31 Vincent Celier <celier@adacore.com>
2958
2959 * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
2960 Move back spec of Parse_Single_Project to body, as it is not called
2961 outside of package Prj.Part.
2962 (Project_Data): Remove components Linker_Name, Linker_Path and
2963 Minimum_Linker_Options as they are no longer set.
2964 Remove function There_Are_Ada_Sources from package Prj and move code
2965 in the only place it was used, in Prj.Env.Set_Ada_Paths.
2966
ee5d7272
AC
29672008-07-31 Arnaud Charlet <charlet@adacore.com>
2968
2969 * mlib-utl.ads: Fix typo.
2970
29712008-07-31 Robert Dewar <dewar@adacore.com>
2972
2973 * sem_ch12.adb: Minor reformatting
2974
29752008-07-31 Sergey Rybin <rybin@adacore.com>
2976
2977 * gnat_ugn.texi: Change the description of the
2978 Overly_Nested_Control_Structures: now the rule always requires a
2979 positive parameter for '+R' option
2980
29812008-07-31 Thomas Quinot <quinot@adacore.com>
2982
2983 * g-pehage.adb: Minor reformatting
2984
29852008-07-31 Pascal Obry <obry@adacore.com>
2986
2987 * s-finimp.ads: Minor reformatting.
2988
29892008-07-31 Vincent Celier <celier@adacore.com>
2990
2991 * s-regexp.ads: Minor comment fix
2992
29932008-07-31 Arnaud Charlet <charlet@adacore.com>
2994
2995 * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
2996 so that we can compile this file successfully with -gnatc.
2997
29982008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2999
3000 * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
3001 of the type when looking for stream subprograms for type String,
3002 Wide_String and Wide_Wide_String.
9e81dbc7 3003
ee5d7272
AC
3004 * s-ststop.adb: Change the initialization expression of constant
3005 Use_Block_IO.
3006
30072008-07-31 Geert Bosch <bosch@adacore.com>
3008
3009 * arit64.c:
3010 New file implementing __gnat_mulv64 signed integer multiplication with
3011 overflow checking
3012
3013 * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
3014
3015 * gcc-interface/gigi.h:
3016 (standard_types): Add ADT_mulv64_decl
3017 (mulv64_decl): Define subprogram declaration for __gnat_mulv64
3018
3019 * gcc-interface/utils.c:
3020 (init_gigi_decls): Add initialization of mulv64_decl
3021
3022 * gcc-interface/trans.c:
3023 (build_unary_op_trapv): New function
3024 (build_binary_op_trapv): New function
3025 (gnat_to_gnu): Use the above functions instead of
3026 build_{unary,binary}_op
3027
3028 * gcc-interface/Makefile.in
3029 (LIBGNAT_SRCS): Add arit64.c
3030 (LIBGNAT_OBJS): Add arit64.o
3031
30322008-07-31 Vincent Celier <celier@adacore.com>
3033
3034 * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
3035 Linker'Default_Switches are declared. Warn if they are declared.
3036
30372008-07-31 Ed Schonberg <schonberg@adacore.com>
3038
3039 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
3040 Insert_Actions to place the pointer declaration in the code, rather
3041 than Insert_Before_And_Analyze, so that insertions of temporaries are
3042 kept in the proper order when transient scopes are present.
3043
3044
b38c3c9e
AC
30452008-07-31 Robert Dewar <dewar@adacore.com>
3046
3047 * einfo.adb (Spec_PPC): Now defined for generic subprograms
9e81dbc7 3048
b38c3c9e 3049 * einfo.ads (Spec_PPC): Now defined for generic subprograms
9e81dbc7 3050
b38c3c9e
AC
3051 * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
3052 subprogram case
3053
30542008-07-31 Vincent Celier <celier@adacore.com>
3055
3056 * s-os_lib.adb: Minor comment fix
3057
30582008-07-31 Ed Schonberg <schonberg@adacore.com>
3059
3060 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
3061 transfer pre/postconditions from generic copy to original tree, so that
3062 they will appear in each instance.
3063 (Process_PPCs): Do not transform postconditions into a procedure in a
3064 generic context, to prevent double expansion of check pragmas.
9e81dbc7 3065
b38c3c9e
AC
3066 * sem_attr.adb: In an instance, the prefix of the 'result attribute
3067 can be the renaming of the
3068 current instance, so check validity of the name accordingly.
3069
024238a2
AC
30702008-07-31 Robert Dewar <dewar@adacore.com>
3071
3072 * mlib-utl.ads: Minor reformatting
3073
30742008-07-31 Ed Schonberg <schonberg@adacore.com>
3075
3076 sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
3077 from context. This attribute must be usable in Ada95 mode.
3078 The attribute can appear in the body of a function marked
3079 Inline_Always, but in this case the postocondition is not enforced.
9e81dbc7 3080
024238a2
AC
3081 sem_prag.adb (Check_Precondition_Postcondition): within the expansion
3082 of an inlined call pre- and postconditions are legal
3083
30842008-07-31 Vincent Celier <celier@adacore.com>
3085
3086 * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
3087 were for gprmake only
3088
30892008-07-31 Robert Dewar <dewar@adacore.com>
3090
3091 * gnat_ugn.texi: Update -gnatN documentation.
3092
3093 * gnat_rm.texi: Add note about pre/postcondition
3094 pragmas not checked in conjunction with front-end inlining.
3095
035b2a77
AC
30962008-07-31 Robert Dewar <dewar@adacore.com>
3097
3098 * g-pehage.adb, g-pehage.ads: Minor reformatting
3099
31002008-07-31 Arnaud Charlet <charlet@adacore.com>
3101
3102 * mlib-utl.ads, prj-makr.ads: Add comments.
3103
636b71b9
AL
31042008-07-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
3105
9e81dbc7 3106 * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS)
636b71b9
AL
3107 [WINDOWS]: Add s-winext.o.
3108
01ddebf2
EB
31092008-07-30 Eric Botcazou <ebotcazou@adacore.com>
3110
3111 PR ada/36554
3112 * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
3113 * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
3114 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
3115 Set precision to 1 for subtype of BOOLEAN_TYPE.
3116 (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
3117 (make_type_from_size): Deal with BOOLEAN_TYPE.
3118 * gcc-interface/misc.c (gnat_print_type): Likewise.
3119 * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
3120 Set boolean_type_node as its translation in the table, as well
3121 as boolean_false_node for False and boolean_true_node for True.
3122 * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
3123 8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
3124 (create_param_decl): Deal with BOOLEAN_TYPE.
3125 (build_vms_descriptor): Likewise.
3126 (build_vms_descriptor64): Likewise.
3127 (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
3128
2a9cc4de
AC
31292008-07-30 Robert Dewar <dewar@adacore.com>
3130
3131 * exp_ch9.adb: Minor reformatting
3132
3133 * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
3134 if no primitive operation is found.
3135
3136 * exp_util.adb: (Find_Prim_Op): Add comments for previous change
3137
3138 * sem_ch8.adb: Minor reformatting
3139
31402008-07-30 Laurent Pautet <pautet@adacore.com>
3141
3142 * g-pehage.adb:
3143 Remove a limitation on the length of the words handled by the minimal
3144 perfect hash function generator.
3145
3146 * g-pehage.ads:
3147 Detail the use of subprograms Insert, Initialize, Compute and Finalize.
3148 Fix some typos.
3149
5cc6fa41
AC
31502008-07-30 Robert Dewar <dewar@adacore.com>
3151
3152 * gnatlink.adb: Minor reformatting
3153
31542008-07-30 Thomas Quinot <quinot@adacore.com>
3155
3156 * rtsfind.adb (Check_RPC): Check version consistency even when not
3157 generating RCI stubs. Provide more detailed error message in case of
3158 mismatch.
3159
31602008-07-30 Ed Schonberg <schonberg@adacore.com>
3161
3162 * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
3163 as a actual in an instance, check for a missing attribute to prevent
3164 program_error on an illegal program.
9e81dbc7 3165
5cc6fa41
AC
3166 * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
3167 error if primitive is not found, so that exception can be handled
3168 elsewhere on illegal programs.
3169
31702008-07-30 Robert Dewar <dewar@adacore.com>
3171
3172 * uintp.adb (UI_GCD): Fix potential overflow
3173
31742008-07-30 Hristian Kirtchev <kirtchev@adacore.com>
3175
3176 * einfo.adb: Flag245 is now used.
3177 (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
3178 check to include functions.
3179 (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
3180 (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
3181 include functions.
3182 (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
3183 to the list of displayed flags.
3184
3185 * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
3186 Wrapped_Entity. These two flags are now present in functions.
3187 New flag Is_Private_Primitive.
3188 (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
3189
3190 * exp_ch9.adb:
3191 (Build_Wrapper_Bodies): New subprogram.
3192 (Build_Wrapper_Body): The spec and body have been moved to in
3193 Build_Wrapper_ Bodies. Code cleanup.
3194 (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
3195 Wrappers are now generated for primitives declared between the private
3196 and full view of a concurrent type that implements an interface.
3197 (Build_Wrapper_Specs): New subprogram.
3198 (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
3199 creation mechanism with a call to Build_Wrapper_Bodies.
3200 (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
3201 wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
3202 (Expand_N_Task_Body): Replace the wrapper body creation
3203 mechanism with a call to Build_Wrapper_Bodies.
3204 (Expand_N_Task_Type_Declaration): Replace the wrapper spec
3205 creation mechanism with a call to Build_Wrapper_Specs.
3206 (Is_Private_Primitive_Subprogram): New subprogram.
3207 (Overriding_Possible): Code cleanup.
3208 (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
3209
3210 * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
3211
3212 * sem_ch3.adb: Add with and use clause for Exp_Ch9.
3213 (Process_Full_View): Build wrapper specs for all primitives
3214 that belong to a private view completed by a concurrent type
3215 implementing an interface.
9e81dbc7 3216
5cc6fa41
AC
3217 * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
3218 is a primitive of a
3219 concurrent type with a private view that implements an interface, try to
3220 find the proper spec.
3221 (Analyze_Subprogram_Declaration): Mark a subprogram as a private
3222 primitive if the type of its first parameter is a non-generic tagged
3223 private type.
3224 (Analyze_Subprogram_Specification): Code reformatting.
3225 (Disambiguate_Spec): New routine.
3226 (Find_Corresponding_Spec): Add a flag to controll the output of errors.
3227 (Is_Private_Concurrent_Primitive): New routine.
3228
3229 * sem_ch6.ads:
3230 (Find_Corresponding_Spec): Add a formal to control the output of errors.
3231
6ca2b0a0
DR
32322008-07-30 Doug Rupp <rupp@adacore.com>
3233
3234 * gigi.h (build_vms_descriptor64): New function prototype.
3235 (fill_vms_descriptor): Modified function prototype.
3236
3237 * utils.c (build_vms_descriptor64): New function.
3238
3239 * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
3240
3241 * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
3242 argument.
3243
3244 * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
3245 64bit and 32bit descriptor and save the 64bit version as an alternate
3246 TREE_TYPE in the parameter.
3247 (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
3248 thin pointer.
3249
3250 * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
3251
002b2ad6
AC
32522008-07-30 Robert Dewar <dewar@adacore.com>
3253
3254 * make.adb: Minor reformatting
3255
3256 * mlib-utl.adb: Minor reformatting
3257
3258 * osint.ads: Minor reformatting
3259
32602008-07-30 Jose Ruiz <ruiz@adacore.com>
3261
3262 * adaint.c
3263 (__gnat_file_exists): Do not use __gnat_stat for RTX.
3264 (__main for RTX in RTSS mode): Create this dummy procedure symbol to
3265 avoid the use of this symbol from libgcc.a in RTX kernel mode.
3266
3267 * cio.c
3268 (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
3269 the function RtPrintf for console output.
9e81dbc7 3270
002b2ad6 3271 * argv.c Do not use the environ variable for RTX.
9e81dbc7 3272
002b2ad6
AC
3273 * gnatlink.adb (gnatlink): The part that handles the --RTS option has
3274 been moved before the call to Osint.Add_Default_Search_Dirs in order
3275 to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
3276 from the appropriate run time.
9e81dbc7 3277
002b2ad6
AC
3278 * targparm.ads
3279 (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
3280 target is a RTSS module for RTX.
9e81dbc7 3281
002b2ad6
AC
3282 * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
3283 RTX_RTSS_Kernel_Module
3284 (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
3285
3286 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
3287 exception handling mechanism for Windows and RTX in Win32 mode, but
3288 not for RTX in kernel mode (RTSS).
3289 (LIBGNAT_SRCS): Remove ada.h
3290
00afcaa0
PB
32912008-07-30 Paolo Bonzini <bonzini@gnu.org>
3292
3293 * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
3294 T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
3295 (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
3296 * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
3297 X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
3298 ALL_ADA_CFLAGS): Remove.
3299 (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
3300 replace ALL_ADA_CFLAGS with ADA_CFLAGS.
3301 (GCC_CFLAGS): Remove X_CFLAGS.
3302 (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
3303 (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
3304 (ADA_CFLAGS): Substitute.
3305
a7dafa20
LG
33062008-07-30 Laurent Guerby <laurent@guerby.net>
3307
9e81dbc7
AS
3308 PR ada/5911
3309 * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
3310 Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
3311 Replace stamp-gnatlib* by stamp-gnatlib*-rts.
3312 * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
3313 by stamp-gnatlib2-rts.
3314
70b1e376
RW
33152008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3316
3317 PR documentation/15479
3318 * gnat-style.texi: Remove AdaCore copyright statement and GPL
3319 statement for GNAT. Add @copying stanza, use it. Update to
3320 GFDL 1.2. Do not list GFDL as Invariant Section, do not list
3321 title as Front-Cover Text.
3322 * gnat_rm.texi: Likewise.
3323 * gnat_ugn.texi: Likewise.
3324
343eba42
JH
33252008-07-29 Jan Hubicka <jh@suse.cz>
3326
3327 * trans.c (process_inlined_subprograms): Remove tree_really_inline
3328 check.
3329
ebf5ba04
AC
33302008-07-29 Arnaud Charlet <charlet@adacore.com>
3331
3332 * gcc-interface: New directory.
3333
3334 * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
3335 utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
3336 config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
3337 to gcc-interface subdirectory.
3338
46897370
AL
33392008-07-29 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
3340
3341 * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
3342
e90acd93
JH
33432008-07-28 Jan Hubicka <jh@suse.cz>
3344
3345 * misc.c (gnat_post_options): Do not set flag_no_inline.
3346
726a989a
RB
33472008-07-28 Richard Guenther <rguenther@suse.de>
3348
3349 Merge from gimple-tuples-branch.
3350
3351 2008-07-22 Olivier Hainque <hainque@adacore.com>
3352
3353 * gigi.h (end_subprog_body): New ELAB_P argument, saying if
3354 this is called for an elab proc to be discarded if empty.
3355 * utils.c (end_subprog_body): Honor ELAB_P.
3356 (build_function_stub): Adjust call to end_subprog_body.
3357 * trans.c (Subprogram_Body_to_gnu): Likewise.
3358 (gigi): Reorganize processing of elab procs to prevent
3359 gimplifying twice, using the new end_subprog_body argument.
3360
3361 2008-07-19 Richard Guenther <rguenther@suse.de>
3362
3363 * Make-lang.in (trans.o): Add tree-iterator.h dependency.
3364 (utils.o): Likewise.
3365 * trans.c: Include tree-iterator.h.
3366 (gnat_gimplify_expr): Adjust prototype. Fix typo.
3367 (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
3368 (set_expr_location_from_node): Likewise.
3369 (gigi): Tuplify.
3370 * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
3371 of GENERIC_NEXT.
3372 * utils.c: Include tree-iterator.h.
3373 * gigi.h (gnat_gimplify_expr): Adjust prototype.
3374
3375 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
3376
3377 * trans.c: Include gimple.h instead of tree-gimple.h.
3378 * utils.c: Same.
3379
3380 2008-07-14 Aldy Hernandez <aldyh@redhat.com>
3381
3382 * trans.c (gnat_gimplify_expr): Use gimplify_assign.
3383
8ae3959e 33842008-07-25 Jan Hubicka <jh@suse.cz>
7e8b322a 3385
8ae3959e
EB
3386 * utils.c (end_subprog_body): Remove inline trees check.
3387 * misc.c (gnat_post_options): Do not set flag_inline_trees.
7e8b322a 3388
4a7bb85b
RO
33892008-07-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3390
3391 * raise-gcc.c: Move tsystem.h before tm.h.
3392
ec45d105
AC
33932008-07-20 Arnaud Charlet <charlet@adacore.com>
3394
3395 * gnathtml.pl: New file.
3396
95331614 33972008-07-19 Olivier Hainque <hainque@adacore.com>
8ae3959e 3398
95331614
OH
3399 * targtyps.c (get_target_default_allocator_alignment): Use
3400 MALLOC_ABI_ALIGNMENT.
3401
dd7ac716
OH
34022008-07-17 Olivier Hainque <hainque@adacore.com>
3403
3404 * adaint.c (__MINGW32__ section): Include ctype.h and define
3405 a fallback ISALPHA if IN_RTS.
9e81dbc7 3406 (__gnat_is_absolute_path): Use ISALPHA instead of isalpha.
dd7ac716 3407
a7a46bb2
OH
34082008-07-17 Olivier Hainque <hainque@adacore.com>
3409
3410 * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
3411 argument, to apply to references in addition to definitions. Prevent
3412 setting TREE_STATIC on externals.
3413 (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
3414
66bfd481
RW
34152008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3416
3417 PR documentation/15479
3418 * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
3419 Replace backets around optional parameters with @ovar
3420 where possible, use @r{[}, @r{]} otherwise.
3421 Replace some @r, @i, and @emph with @var where appropriate.
3422
7a803dd8
EB
34232008-07-02 Eric Botcazou <ebotcazou@adacore.com>
3424
3425 * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
3426
7d71283c
KG
34272008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3428
3429 * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
3430 -Wc++-compat warnings.
3431 * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
3432 __gnat_locate_exec_on_path): Likewise.
3433 * decl.c (annotate_value): Likewise.
3434 * misc.c (gnat_handle_option): Likewise.
3435 * trans.c (gnat_to_gnu, extract_encoding, decode_name,
3436 post_error_ne_tree): Likewise.
3437
d9338c67
EB
34382008-06-27 Eric Botcazou <ebotcazou@adacore.com>
3439
3440 * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
3441 version of its type, attempt to first convert its elements.
3442
b4b010ad
CP
34432008-06-26 Chris Proctor <chrisp_42@bigpond.com>
3444
3445 * Makefile.in: Fix *86 kfreebsd target specific pairs.
3446
0ee61065
ST
34472008-06-25 Samuel Tardieu <sam@rfc1149.net>
3448
3449 * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
3450
324ed5a6
EB
34512008-06-24 Eric Botcazou <ebotcazou@adacore.com>
3452
3453 * utils2.c (known_alignment): Derive the alignment from pointed-to
3454 types only if it is otherwise unknown.
3455 <INTEGER_CST>: Tidy.
3456 <MULT_EXPR>: Likewise.
3457 <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
3458 that of the base.
3459
2d31e498
JDA
34602008-06-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3461
3462 PR ada/36573
3463 * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
3464
6ccde948
RW
34652008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3466
3467 * gnat_rm.texi (Implementation Defined Characteristics)
3468 (Standard Library Routines): Use @smallexample for indented
3469 text. Drop Indentation outside examples.
3470 * gnat_ugn.texi: Likewise.
3471
d8612af2
OH
34722008-06-13 Olivier Hainque <hainque@adacore.com>
3473
3474 * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
3475 if undefined.
3476 (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
3477 realignment with force_align_arg_pointer attribute on foreign
3478 convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
9e81dbc7 3479
ca789c7f
OH
34802008-06-13 Olivier Hainque <hainque@adacore.com>
3481
3482 * utils.c (rest_of_record_type_compilation): When computing
3483 encodings for the components of a variable size type, early
3484 strip conversions on the current position expression to make
3485 sure it's shape is visible. Use remove_conversions for this
3486 purpose.
3487
1dd4a3e6
EB
34882008-06-12 Eric Botcazou <ebotcazou@adacore.com>
3489
3490 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
3491 constrained subtype of a discriminated type, discard the fields that
3492 are beyond its limits according to its size.
3493
12ae9b26
OH
34942008-06-10 Olivier Hainque <hainque@adacore.com>
3495
3496 * utils.c (create_subprog_decl): If this is for the 'main' entry
3497 point according to the asm name, redirect main_identifier_node.
3498
912cb442
EB
34992008-06-09 Eric Botcazou <ebotcazou@adacore.com>
3500
3501 * decl.c (components_to_record): Adjust the packedness for the
3502 qualified union as well.
3503
4a598c32
AC
35042008-06-09 Arnaud Charlet <charlet@adacore.com>
3505
3506 * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
3507 checks non fatal.
3508
4b92fd3c
ST
35092008-06-07 Samuel Tardieu <sam@rfc1149.net>
3510
3511 * sem_res.adb (Large_Storage_Type): A type is large if it
3512 requires as many bits as Positive to store its values and its
3513 bounds are known at compile time.
3514 * sem_ch13.adb (Minimum_Size): Note that this function returns
3515 0 if the size is not known at compile time.
3516
968c8001
OH
35172008-06-06 Nicolas Setton <setton@adacore.com>
3518 Olivier Hainque <hainque@adacore.com>
3519
3520 * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
3521 attribute, parallel descriptive type attached to another
3522 type for debug info generation purposes.
3523 * utils.c (add_parallel_type): New function, register
3524 parallel type to be attached to a type.
3525 (get_parallel_type): New function, fetch a registered
3526 parallel type, if any.
3527 (rest_of_record_type_compilation): Register the parallel
3528 type we make for variable size records.
3529 * gigi.h (add_parallel_type, get_parallel_type): Declare.
3530 * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
3531 parallel debug types we make.
3532 * trans.c (extract_encoding, decode_name): New functions.
3533 (gigi): If the DWARF attribute extensions are available, setup
3534 to use them.
3535 * lang.opt: Register language specific processing request
3536 for -gdwarf+.
3537 * misc.c (gnat_dwarf_extensions): New global variable. How much
3538 do we want of our DWARF extensions. 0 by default.
3539 (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
3540 (gnat_post_options): Map gnat_dwarf_extensions to the
3541 commonuse_gnu_debug_info_extensions for later processing.
9e81dbc7 3542
b30199b8
ST
35432008-06-04 Samuel Tardieu <sam@rfc1149.net>
3544
3545 * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
3546
30783513
RW
35472008-06-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3548
3549 * Makefile.in (common_tools): Fix typos in $(exeext) extension.
3550 * gnat_ugn.texi (Style Checking)
3551 (Adding the Results of Compiler Checks to gnatcheck Output)
3552 (Example of Binder Output File): Fix typos.
3553 * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
3554 exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
3555 s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
3556 s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
3557 sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
3558 sinfo.ads, utils.c: Fix typos in comments.
3559 * sem_ch6.adb, vms_data.ads: Fix typos in strings.
3560
fb8368fd
AC
35612008-05-29 Thomas Quinot <quinot@adacore.com>
3562
3563 * sem_eval.adb: Minor reformatting
3564
35652008-05-29 Ed Schonberg <schonberg@adacore.com>
3566
3567 * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
3568 is abstract, do not apply abstractness check on subprogram if this is
3569 a renaming declaration.
3570
35712008-05-29 Arnaud Charlet <charlet@adacore.com>
3572
3573 PR ada/864
3574 * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
3575 allow recognition of program suffix in addition to prefix.
9e81dbc7 3576
fb8368fd 3577 * gnatchop.adb (Locate_Executable): Add support for prefix.
9e81dbc7 3578
fb8368fd
AC
3579 * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
3580 mlib-utl.adb: Adjust calls to Program_Name.
3581
fff3f472
AC
35822008-05-29 Robert Dewar <dewar@adacore.com>
3583
3584 * sem_ch3.adb: Minor reformatting
3585 * sem_prag.adb: Minor reformatting
3586 * sem_res.adb: Minor reformatting
3587 * sinput-p.ads: Minor reformatting
3588
35892008-05-29 Javier Miranda <miranda@adacore.com>
3590
3591 * sem_util.adb:
3592 (Abstract_Interface_List): Add missing support for full type-declaration
3593 associated with synchronized types.
3594
35952008-05-29 Robert Dewar <dewar@adacore.com>
3596
3597 * sem_eval.adb (Is_Same_Value): Take care of several more cases
3598
acca98c0
AC
35992008-05-28 Ed Schonberg <schonberg@adacore.com>
3600
3601 * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
3602 access type, wrap the expression in a conversion to force an
3603 accessibility check.
3604
3605 * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
3606 accessibility checks even when expansion is disabled in order to
3607 generate messages in the presence of previous errors or in
3608 semantics-only mode.
3609
36102008-05-28 Eric Botcazou <ebotcazou@adacore.com>
3611
3612 * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
3613 * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
3614
36152008-05-28 Vincent Celier <celier@adacore.com>
3616
3617 PR ada/34446
3618 * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
3619 preprocessing expressions
3620
36212008-05-28 Vincent Celier <celier@adacore.com>
3622
3623 * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
3624 for preprocessing
9e81dbc7 3625
acca98c0
AC
3626 * sinput-p.ads: Minor comment update and reformatting
3627
36282008-05-28 Ed Schonberg <schonberg@adacore.com>
3629
3630 * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
3631 type has a deeper level than any master only when it is the type of an
3632 access parameter.
3633
8250171b
AC
36342008-05-28 Javier Miranda <miranda@adacore.com>
3635
3636 * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
3637
36382008-05-28 Javier Miranda <miranda@adacore.com>
3639
3640 * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
3641 * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
3642 * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
3643 Add code that was previously located in
3644 Find_Overridden_Synchronized_Primitive because it is only used here.
3645
36462008-05-28 Sergey Rybin <rybin@adacore.com>
3647
3648 * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
3649 Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
3650
00ea9517
RD
36512008-05-28 Robert Dewar <dewar@adacore.com>
3652
3653 * restrict.ads:
3654 Add missing restrictions, and properly label all GNAT defined ones
9e81dbc7 3655
00ea9517
RD
3656 * rtsfind.ads:
3657 Add entry for Ada_Real_Time.Timing_Events.Timing_Event
3658 Add entry for Ada.Task_Termination.Set_Specific_Handler
3659 Add entry for Ada.Task_Termination.Specific_Handler
9e81dbc7 3660
00ea9517
RD
3661 * s-rident.ads:
3662 Add missing restrictions and properly mark all gnat defined ones
9e81dbc7 3663
00ea9517
RD
3664 * sem_ch3.adb:
3665 (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
9e81dbc7 3666
00ea9517
RD
3667 * sem_res.adb:
3668 (Resolve_Call): Check violation of No_Specific_Termination_Handlers
3669
3670 * gnat_rm.texi: Add missing restrictions, and properly label all
3671 GNAT defined ones
3672
36732008-05-28 Robert Dewar <dewar@adacore.com>
3674
3675 * restrict.adb:
3676 (Check_Restriction): violation of restriction No_Finalization is
3677 treated as a serious error to stop expansion
3678
36792008-05-28 Robert Dewar <dewar@adacore.com>
3680
3681 * exp_util.adb: Minor reformatting
3682 * exp_util.ads: Minor reformatting.
3683
0b795892
AC
36842008-05-28 Arnaud Charlet <charlet@adacore.com>
3685
3686 * Make-lang.in: Remove gprmake.
3687
3688 * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
3689
5840819a
AC
36902008-05-28 Ed Schonberg <schonberg@adacore.com>
3691
3692 * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
3693 improper progenitor names, and avoid cascaded errors.
3694
36952008-05-28 Robert Dewar <dewar@adacore.com>
3696
3697 * gnat_rm.texi: Add note on Old giving warning when applied to constant
3698
3699 * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
3700 a constant
3701
37022008-05-28 Robert Dewar <dewar@adacore.com>
3703
3704 * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
3705 size
3706
37072008-05-28 Robert Dewar <dewar@adacore.com>
3708
3709 * exp_ch5.adb:
3710 (Expand_Simple_Function_Return): Copy unaligned result into temporary
3711
8c3dd7a8
JM
37122008-05-28 Javier Miranda <miranda@adacore.com>
3713
3714 * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
3715 for user-defined predefined primitives.
9e81dbc7 3716
8c3dd7a8
JM
3717 * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
3718 (Find_Overridden_Synchronized_Primitive): Ditto.
3719
3720 * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
3721
35b80405
AC
37222008-05-27 Arnaud Charlet <charlet@adacore.com>
3723
3724 * a-ststio.adb, s-direio.adb:
3725 Further code clean up of previous change.
3726 Update comments.
3727
37282008-05-27 Vincent Celier <celier@adacore.com>
3729
3730 * prj-nmsc.adb: Minor reformatting
3731
37322008-05-27 Bob Duff <duff@adacore.com>
3733
3734 * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
3735 untagged private type with a tagged full type, where the full type has
3736 a self reference, create the corresponding class-wide type early, in
3737 case the self reference is "access T'Class".
3738
37392008-05-27 Ed Schonberg <schonberg@adacore.com>
3740
3741 * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
3742 tasks and context is an object declaration. create master entity before
3743 expansion.
3744
37452008-05-27 Robert Dewar <dewar@adacore.com>
3746
3747 * mlib-prj.adb: Minor reformatting
3748
3749 * prj-part.adb: Minor reformatting
3750
3751 * prj.ads: Minor reformatting
3752
3753 * exp_ch3.adb: Minor reformatting.
3754
3755 * sem_ch3.ads: Minor reformatting
3756
3757 * sem_eval.adb: Minor reformatting
3758
d5c998a9
AC
37592008-05-27 Vincent Celier <celier@adacore.com>
3760
3761 * gnatcmd.adb:
3762 <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
3763
37642008-05-27 Ed Schonberg <schonberg@adacore.com>
3765
3766 * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
3767 tasks, create an activation chain now, before the expansion into
3768 assignments and build-in-place calls that require the presence of an
3769 activation chain.
3770 (Backend_Processing_Possible): If the component type is inherently
3771 limited, the aggregate must be expanded into individual built-in-place
3772 assignments.
3773
3774 * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
3775 determine whether an allocation extra parameter must be built, to
3776 handle case of a private type whose full type is a discriminated type
3777 with defaults.
3778
37792008-05-27 Bob Duff <duff@adacore.com>
3780
3781 * gnat_rm.texi:
3782 Document the new behavior regarding trampolines.
3783
37842008-05-27 Arnaud Charlet <charlet@adacore.com>
3785
3786 * a-direio.adb, a-sequio.adb: Replace address clause by
3787 unrestricted_access, simpler and compatible with .NET.
3788
37892008-05-27 Vincent Celier <celier@adacore.com>
3790
3791 * prj-part.adb:
3792 (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
3793 a project file, so that symbolic links are not resolved.
3794
37952008-05-27 Arnaud Charlet <charlet@adacore.com>
3796
3797 * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
3798 Replace heavy address clause by 'Unrestricted_Access, cleaner and more
3799 portable across GNAT targets, since this kind of address clause is not
3800 supported by VM back-ends (.NET/JGNAT).
3801
79d2a727
AC
38022008-05-27 Arnaud Charlet <charlet@adacore.com>
3803
3804 * bindgen.adb: Update comments.
9e81dbc7 3805
79d2a727
AC
3806 * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
3807
38082008-05-27 Vincent Celier <celier@adacore.com>
3809
3810 * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
3811 prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
3812 mlib-tgt.adb, prj-env.adb, prj-env.ads:
3813 (Path_Information): New record type
3814 Use component of type Path_Information when there are two paths, one in
3815 canonical format and one in display format.
3816 Update the project manager to these new components.
3817
0f99f391
AC
38182008-05-27 Robert Dewar <dewar@adacore.com>
3819
3820 * makeutl.adb: Minor reformatting
3821 * prj-nmsc.adb: Minor reformatting
3822 * s-stausa.adb: Minor reformatting
3823 * s-stausa.ads: Minor reformatting
3824 * sem_ch6.adb: Minor reformatting
3825
38262008-05-27 Thomas Quinot <quinot@adacore.com>
3827
3828 * sem_res.adb: Minor comment fixes
3829
d18af35f
AC
38302008-05-27 Thomas Quinot <quinot@adacore.com>
3831
3832 * makeutl.adb: Minor code reorganization
3833
3834 * exp_aggr.adb: Add ??? comment
3835 Fix typo
3836
3837 * exp_ch6.adb: Minor reformatting
3838
38392008-05-27 Quentin Ochem <ochem@adacore.com>
3840
3841 * s-stausa.adb (Initialize): Updated result initialization, and
3842 initialization of environment stack.
3843 (Fill_Stack): Improved computation of the pattern zone, taking into
3844 account already filled at the calling point.
3845 (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
3846 Measure and Overflow_Guard.
3847 (Report_Result): Fixed computation of the result using new fields of
3848 Stack_Analyzer.
9e81dbc7 3849
d18af35f
AC
3850 * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
3851 params by more explicit Stack_Size / Max_Pattern_Size params.
3852 (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
3853 Added Stack_Used_When_Filling field.
3854 (Task_Result): Replaced Measure / Overflow_Guard by more explicit
3855 Min_Measure and Max_Measure fields.
9e81dbc7 3856
d18af35f
AC
3857 * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
3858
38592008-05-27 Vincent Celier <celier@adacore.com>
3860
3861 * prj-nmsc.adb:
3862 (Check_File): Make sure that a unit that replaces the same unit in a
3863 project being extended is properly processed.
3864
38652008-05-27 Ed Schonberg <schonberg@adacore.com>
3866
3867 * sem_ch3.adb:
3868 (Get_Discr_Value): Remove obsolete code that failed to find the value
3869 of a discriminant for an inherited task component appearing in a type
3870 extension.
3871
38722008-05-27 Thomas Quinot <quinot@adacore.com>
3873
3874 (System.File_IO.{Close, Delete, Reset}):
3875 Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
9e81dbc7 3876
d18af35f
AC
3877 (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
3878 Pass File parameter by reference.
3879
aeff280b
AC
38802008-05-27 Vincent Celier <celier@adacore.com>
3881
3882 * prj-nmsc.adb:
3883 (Process_Sources_In_Multi_Language_Mode): Check that there are not two
3884 sources of the same project that have the same object file name.
3885 (Find_Explicit_Sources): Always remove a source exception that was not
3886 found.
3887
38882008-05-27 Thomas Quinot <quinot@adacore.com>
3889
3890 * sem_ch3.adb: Minor reformatting
3891
38922008-05-27 Ed Schonberg <schonberg@adacore.com>
3893
3894 * sem_ch6.adb:
3895 (Is_Interface_Conformant): Handle properly a primitive operation that
3896 overrides an interface function with a controlling access result.
3897 (Type_Conformance): If Skip_Controlling_Formals is true, when matching
3898 inherited and overriding operations, omit as well the conformance check
3899 on result types, to prevent spurious errors.
3900
39012008-05-27 Vincent Celier <celier@adacore.com>
3902
3903 * makeutl.ads, makeutl.adb:
3904 (Set_Location): New procedure
3905 (Get_Location): New function
3906 (Update_Main): New procedure
3907
7bf402c1
AC
39082008-05-27 Vincent Celier <celier@adacore.com>
3909
3910 * prj-nmsc.adb:
3911 (Check_Library): Allow standard project to be extended as a static
3912 library project.
3913 (Get_Mains): Do not inherit attribute Main in an extending library
3914 project.
3915
39162008-05-27 Eric Botcazou <ebotcazou@adacore.com>
3917
3918 * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
3919 * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
3920 * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
3921 * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
3922 * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
3923 * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
3924 * system-mingw.ads (Always_Compatible_Rep): Likewise.
3925 * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
3926 * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
3927 * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
9e81dbc7 3928
52268145
AC
39292008-05-27 Ed Schonberg <schonberg@adacore.com>
3930
3931 * sem_attr.adb: add guard to previous patch.
3932
39332008-05-27 Ed Schonberg <schonberg@adacore.com>
3934
3935 * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
3936 a synchronized tagged type, do not attempt to build dispatch table for
3937 full view. The table is built for the corresponding record type, which
3938 has its own declaration.
3939
39402008-05-27 Gary Dismukes <dismukes@adacore.com>
3941
3942 * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
3943 to the known type entity E, rather than setting it to Any_Type. Fixes
3944 possible blowup in function Base_Init_Proc, as called from Freeze_Entity
3945 for objects whose type had an illegal constraint.
3946
39472008-05-27 Vincent Celier <celier@adacore.com>
3948
3949 * gnat_ugn.texi:
3950 Add succinct documentation for attribute Excluded_Source_List_File
3951
39522008-05-27 Vincent Celier <celier@adacore.com>
3953
3954 * prj-attr.adb: Add new project level attribute Map_File_Option
9e81dbc7 3955
52268145 3956 * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
9e81dbc7 3957
52268145
AC
3958 * prj.ads: Minor reformatting and comment update
3959 (Project_Configuration): New component Map_File_Option
9e81dbc7 3960
52268145 3961 * snames.adb: New standard name Map_File_Option
9e81dbc7 3962
52268145
AC
3963 * snames.ads: New standard name Map_File_Option
3964
39652008-05-27 Vincent Celier <celier@adacore.com>
3966
3967 * xsnames.adb: Remove unused variable Oname
3968
39692008-05-27 Doug Rupp <rupp@adacore.com>
3970
3971 * exp_ch6.adb:
3972 (Expand_N_Function_Call): Fix comments. Minor reformatting.
3973
3974 * exp_vfpt.ads:
3975 (Expand_Vax_Foreign_Return): Fix comments.
3976
39772008-05-27 Thomas Quinot <quinot@adacore.com>
3978
3979 * exp_dist.adb: Minor reformating
3980
094d7cfa
AC
39812008-05-26 Gary Dismukes <dismukes@adacore.com>
3982
3983 * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
3984 No_Default_Initialization, which is now delayed until the freeze point
3985 of the object. Add a comment about deferral of the check.
9e81dbc7 3986
094d7cfa
AC
3987 * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
3988 on objects is moved here.
3989
39902008-05-26 Eric Botcazou <ebotcazou@adacore.com>
3991
3992 * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
3993 (Compare_Array_S16): Adjust for above change.
3994 * s-casi32.adb (Uword): Likewise.
3995 (Compare_Array_S32): Likewise.
3996 * s-casi64.adb (Uword): Likewise.
3997 (Compare_Array_S64): Likewise.
3998 * s-caun16.adb (Uhalf): Likewise.
3999 (Compare_Array_U16): Likewise.
4000 * s-caun32.adb (Uword): Likewise.
4001 (Compare_Array_U32): Likewise.
4002 * s-caun64.adb (Uword): Likewise.
4003 (Compare_Array_U64): Likewise.
9e81dbc7 4004
094d7cfa
AC
40052008-05-26 Robert Dewar <dewar@adacore.com>
4006
4007 * exp_ch6.adb: Add ??? comment for previous change
4008
4009 * exp_vfpt.adb: Minor reformatting
4010
4011 * exp_vfpt.ads: Add ??? comment for last change
4012
4013 * sem_attr.adb: Add some ??? comments for previous change
4014
4015 * s-vaflop.ads: Add comments for previous change
4016
40172008-05-26 Doug Rupp <rupp@adacore.com>
4018
4019 * s-vaflop-vms-alpha.adb:
4020 Remove System.IO use clause, to prevent spurious ambiguities when
4021 package is access through rtsfind.
4022
40232008-05-26 Sergey Rybin <rybin@adacore.com>
4024
4025 * tree_io.ads (ASIS_Version_Number): Update because of the changes
4026 made in front-end
4027
9019f3fc
AC
40282008-05-26 Ed Schonberg <schonberg@adacore.com>
4029
4030 * sem_attr.adb:
4031 (Resolve_Attribute, case 'address): S (A .. B)' address can be safely
4032 converted to S (A)'address only if A .. B is known to be a non-null
4033 range.
4034
40352008-05-26 Doug Rupp <rupp@adacore.com>
4036
4037 * s-vaflop.adb:
4038 (Return_D, Return_F, Return_G): New functions.
4039
4040 * s-vaflop.ads:
4041 (Return_D, Return_F, Return_G): New functions.
4042
4043 * exp_vfpt.adb:
4044 (Expand_Vax_Foreign_Return): New procedure
4045
4046 * exp_vfpt.ads:
4047 (Expand_Vax_Foreign_Return): New procedure
4048
4049 * rtsfind.ads:
4050 (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
4051 (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
4052
4053 * exp_ch6.adb:
4054 Import Exp_Vfpt
4055 (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
4056
4057 * s-vaflop-vms-alpha.adb:
4058 (Return_D, Return_F, Return_G): New functions.
4059
40602008-05-26 Gary Dismukes <dismukes@adacore.com>
4061
4062 * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
4063 init proc entity when there is actual default initialization associated
4064 with the component type, to avoid spurious errors on objects of scalar
4065 array types that are marked Is_Public when No_Default_Initialization
4066 applies.
4067
d693e39d
TQ
40682008-05-26 Thomas Quinot <quinot@adacore.com>
4069
4070 * rtsfind.ads, rtsfind.adb:
4071 (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
4072 (Check_RPC): Support per-PCS-kind API versioning.
9e81dbc7 4073
d693e39d
TQ
4074 exp_dist.ads, exp_dist.adb:
4075 (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
4076 (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
4077 library function Get_RACW.
4078 (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
4079 library function Get_Reference.
4080 (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
4081 through an intermediate Any.
4082 (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
4083 going through an intermediate Any.
9e81dbc7 4084
d693e39d
TQ
4085 * sem_dist.adb: Minor reformatting.
4086
ad89bc8d
AC
40872008-05-26 Javier Miranda <miranda@adacore.com>
4088
4089 * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
4090 (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
4091 (Is_Internal): Adding documentation on internal entities that have
4092 attribute Interface_Alias (old attribute Abstract_Interface_Alias)
4093
4094 * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
4095 (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
4096 Added assertion to force entities with this attribute to have
4097 attribute Is_Internal set to True.
4098 (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
4099
4100 * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
4101 renamed as Derive_Progenitor_Subprograms. In addition, its code is
4102 a new implementation.
4103 (Add_Interface_Tag_Components): Remove special management of
4104 synchronized interfaces.
4105 (Analyze_Interface_Declaration): Minor reformating
4106 (Build_Derived_Record_Type): Minor reformating
4107 (Check_Abstract_Overriding): Avoid reporting error in case of abstract
4108 predefined primitive inherited from interface type because the body of
4109 internally generated predefined primitives of tagged types are generated
4110 later by Freeze_Type
4111 (Derive_Subprogram): Avoid generating an internal name if the parent
4112 subprogram overrides an interface primitive.
4113 (Derive_Subprograms): New implementation that keeps separate the
4114 management of tagged types not implementing interfaces, from tagged
4115 types that implement interfaces.
4116 (Is_Progenitor): New implementation.
4117 (Process_Full_View): Add documentation
4118 (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
4119 by call to Derive_Progenitor_Subprograms.
4120
4121 * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
4122 (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
4123 Skip_Controlling_Formals.
4124
4125 * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
4126 (Check_Conventions): New implementation. Remove local subprogram
4127 Skip_Check. Remove formal Search_From of routine Check_Convention.
4128 (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
4129 Skip_Controlling_Formals.
4130 (New_Overloaded_Entity): Enable addition of predefined dispatching
4131 operations.
4132
4133 * sem_disp.ads
4134 (Find_Primitive_Covering_Interface): New subprogram.
4135
4136 * sem_disp.adb (Check_Dispatching_Operation): Disable registering
4137 the task body procedure as a primitive of the corresponding tagged
4138 type.
4139 (Check_Operation_From_Private_Type): Avoid adding twice an entity
4140 to the list of primitives.
4141 (Find_Primitive_Covering_Interface): New subprogram.
4142 (Override_Dispatching_Operation): Add documentation.
4143
4144 * sem_type.adb (Covers): Minor reformatings
4145
4146 * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
4147 Collect_Interfaces.
4148 Rename formal.
4149 (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
4150 (Implements_Interface): New subprogram.
4151 (Is_Parent): Removed.
4152 (Primitive_Names_Match): New subprogram.
4153 (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
4154 (Ultimate_Alias): New subprogram.
4155
4156 * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
4157 Collect_Interfaces.
4158 Remove special management for synchronized types. Rename formal. Remove
4159 internal subprograms Interface_Present_In_Parent and Add_Interface.
4160 (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
4161 on non-record types by code to return false in such case.
4162 (Implements_Interface): New subprogram.
4163 (Is_Parent): Removed. No special management is now required for
4164 synchronized types covering interfaces.
4165 (Primitive_Names_Match): New subprogram.
4166 (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
4167 (Ultimate_Alias): New subprogram.
4168
4169 * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
4170 Add internal entities associated with secondary dispatch tables to
4171 the list of tagged type primitives that are not interfaces.
4172 (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
4173 (Make_Predefined_Primitive_Specs): Code reorganization to improve
4174 the management of predefined equality operator. In addition, if
4175 the type has an equality function corresponding with a primitive
4176 defined in an interface type, the inherited equality is abstract
4177 as well, and no body can be created for it.
4178
4179 * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
4180 exp_util to exp_disp.
4181 (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
4182 an entity corresponds with one of the predefined primitives required
4183 to implement interfaces.
4184 Update copyright notice.
4185
4186 * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
4187 final check on abstract subprograms all the primitives associated with
4188 interface primitives because they must be visible in the public and
4189 private part.
4190 (Write_DT): Use Find_Dispatching_Type to locate the name of the
4191 interface type. This allows the use of this routine, for debugging
4192 purposes, when the tagged type is not fully decorated.
4193 (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
4194 Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
4195 (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
4196 entity corresponds with one of the predefined primitives required to
4197 implement interfaces.
4198
4199 * exp_util.adb (Find_Interface_ADT): New implementation
4200 (Find_Interface): Removed.
4201
4202 * sprint.adb (Sprint_Node_Actual): Generate missing output for the
4203 list of interfaces associated with nodes
4204 N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
4205
42062008-05-26 Thomas Quinot <quinot@adacore.com>
4207
4208 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
4209 condition for assignment to temporary.
4210
c878b2ef
AC
42112008-05-26 Ed Schonberg <schonberg@adacore.com>
4212
4213 * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
4214 checks on the upper bound if the index type is a modular type, to
4215 prevent wrap-around computations when size is close to upper bound of
4216 type.
4217
42182008-05-26 Robert Dewar <dewar@adacore.com>
4219
4220 * sem_ch3.adb: Minor reformatting
4221
39281edf
AC
42222008-05-26 Ed Schonberg <schonberg@adacore.com>
4223
4224 * sem_ch12.adb (Remove_Parent): Use specification of instance
4225 to retrieve generic parent,
4226 to handle properly the case where the instance is a child unit.
4227 Add guard to handle properly wrapper packages.
4228 Minor reformatting
4229
42302008-05-26 Thomas Quinot <quinot@adacore.com>
4231
4232 * sinfo.ads: Minor reformatting
4233
42342008-05-26 Hristian Kirtchev <kirtchev@adacore.com>
4235
4236 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
4237 Generate a tag check when the result subtype of a function, defined by
4238 an access definition, designates a specific tagged type.
4239 (Make_Tag_Check): New routine.
4240
d6ca724c
AC
42412008-05-26 Arnaud Charlet <charlet@adacore.com>
4242
4243 * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
4244
c654b659
EB
42452008-05-26 Eric Botcazou <ebotcazou@adacore.com>
4246
4247 * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
4248 (builtin_decl_for): Likewise.
4249 * trans.c (gigi): Likewise.
4250 * utils.c (def_builtin_1): Fix formatting.
4251
1c331d2d
AC
42522008-05-26 Hristian Kirtchev <kirtchev@adacore.com>
4253
4254 * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
4255 Create the statements which map a string name to protected or task
4256 entry indix.
4257
4258 * exp_ch9.adb: Add with and use clause for Stringt.
4259 Minor code reformatting.
4260 (Build_Entry_Names): New routine.
4261 (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
4262 for flag Build_Entry_Names which controls the allocation of the data
4263 structure for the string names of entries.
4264
4265 * exp_ch9.ads (Build_Entry_Names): New subprogram.
4266
4267 * exp_util.adb (Entry_Names_OK): New function.
4268
4269 * exp_util.ads (Entry_Names_OK): New function.
4270
4271 * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
4272 enumerations RE_Id and RE_Unit_Table.
4273
4274 * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
4275 (Free_Entry_Names_Array): New routine.
4276
4277 * s-taskin.ads: Comment reformatting.
4278 Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
4279 Add component Entry_Names to record Ada_Task_Control_Block.
4280 (Free_Entry_Names_Array): New routine.
4281
4282 * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
4283 dynamically allocate an array
4284 of string pointers. This structure holds string entry names.
4285 (Free_Entry_Names): New routine.
4286 (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
4287 (Set_Entry_Names): New routine.
4288
4289 * s-tassta.ads:
4290 (Create_Task): Add formal Build_Entry_Names. The flag is used to
4291 control the allocation of the data structure which stores entry names.
4292 (Set_Entry_Name): New routine.
4293
4294 * s-tpoben.adb:
4295 Add with and use clause for Ada.Unchecked_Conversion.
4296 (Finalize): Deallocate the entry names array.
4297 (Free_Entry_Names): New routine.
4298 (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
4299 create an array of string pointers to hold the entry names.
4300 (Set_Entry_Name): New routine.
4301
4302 * s-tpoben.ads:
4303 Add field Entry_Names to record Protection_Entries.
4304 (Initialize_Protection_Entries): Add formal Build_Entry_Names.
4305 (Set_Entry_Name): New routine.
4306
43072008-05-26 Vincent Celier <celier@adacore.com>
4308
4309 * prj-nmsc.adb:
4310 (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
4311
4312 * prj.ads:
4313 (Project_Configuration): New component Shared_Lib_Driver
4314
43152008-05-26 Ed Schonberg <schonberg@adacore.com>
4316
4317 * inline.adb:
4318 (Cleanup_Scopes): For a protected operation, transfer finalization list
4319 to protected body subprogram, to force cleanup actions when needed.
4320
43212008-05-26 Robert Dewar <dewar@adacore.com>
4322
4323 * sem_cat.adb: Minor reformatting
4324
4325 * gnatname.adb: Minor reformatting
4326
4327 * osint.ads: Minor reformatting
4328
4329 * s-carun8.ads: Minor reformatting
4330
4331 * g-heasor.ads: Minor comment fix (unit is now pure)
4332
43332008-05-26 Robert Dewar <dewar@adacore.com>
4334
4335 * exp_ch2.adb:
4336 (Expand_Current_Value): Properly type generated integer literal
4337
43382008-05-26 Sergey Rybin <rybin@adacore.com>
4339
4340 * gnat_ugn.texi: Add description for the new gnatcheck rule -
4341 Separate_Numeric_Error_Handlers.
4342
43432008-05-26 Pascal Obry <obry@adacore.com>
4344
4345 * sem_aggr.adb: Minor reformatting.
4346
43472008-05-26 Jose Ruiz <ruiz@adacore.com>
4348
4349 * s-osinte-aix.adb:
4350 (To_Target_Priority): Setting the time slice value to 0 or greater sets
4351 the scheduling policy to FIFO within priorities or round-robin
4352 respectively.
4353 Hence, the priority must be set in this case to the one selected by the
4354 user.
9e81dbc7 4355
1c331d2d
AC
43562008-05-26 Ed Schonberg <schonberg@adacore.com>
4357
4358 * sem_ch12.adb:
4359 (Remove_Parent): If the enclosing scope is an instance whose generic
4360 parent is declared within some parent scope of the just completed
4361 instance, make full views of the entities in that parent visible, when
4362 applicable.
9e81dbc7 4363
a28e8f45
KT
43642008-05-26 Kai Tietz <kai.tietz@onevision.com>
4365
4366 * mingw32.h (STD_MINGW): Set to true for target w64.
4367
3651f7ad
EB
43682008-05-25 Eric Botcazou <ebotcazou@adacore.com>
4369
4370 * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
4371 instead of TREE_STATIC on the ADDR_EXPR.
4372
58272d79
EB
43732008-05-24 Eric Botcazou <ebotcazou@adacore.com>
4374
4375 * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
4376 (Sloc_to_locus): Do not overwrite known GCC locations when translating
4377 GNAT standard locations.
4378
4c8125f4
EB
43792008-05-23 Eric Botcazou <ebotcazou@adacore.com>
4380
4381 * gigi.h (mark_visited): Declare.
4382 * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
4383 only the topmost node of expressions.
b86c6d94 4384 (elaborate_expression_1): Look deeper for read-only variables.
4c8125f4
EB
4385 * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
4386 (mark_visited): Move logic to mark_visited_r. Invoke walk_tree.
4387 (mark_visited_r): New function.
4388
d1ba4e42
AC
43892008-05-23 Vincent Celier <celier@adacore.com>
4390
b86c6d94 4391 * snames.adb: New standard name Excluded_Source_List_File.
d1ba4e42 4392
b86c6d94 4393 * snames.ads: New standard name Excluded_Source_List_File.
d1ba4e42 4394
b86c6d94 4395 * prj-attr.adb: New project level attribute Excluded_Source_List_File.
d1ba4e42 4396
b86c6d94 4397 * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
d1ba4e42
AC
4398 Get excluded sources from
4399 file indicated by attribute Excluded_Source_List_File, when present and
4400 neither Excluded_Source_Files nor Locally_Removed_Files are declared.
4401
44022008-05-23 Robert Dewar <dewar@adacore.com>
4403
4404 * exp_dist.adb: Minor reformatting
4405
44062008-05-23 Ed Schonberg <schonberg@adacore.com>
4407
4408 * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
4409 slice, convert it to an indexed component, which is equivalent, more
4410 efficient, and usable even if the slice itself is not addressable.
4411
44122008-05-23 Olivier Hainque <hainque@adacore.com>
4413
4414 * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
4415 convention also allows access to named compiler built-in subprograms
4416 such as the GCC __builtin family.
4417
ffd0dd6c
AC
44182008-05-23 Vincent Celier <celier@adacore.com>
4419
4420 * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
4421 sep. If there are several possibilities, choose the one with the
4422 longer prefix.
4423
44242008-05-23 Vincent Celier <celier@adacore.com>
4425
4426 * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
4427 back end switches when executable specified with --GCC= is same as
4428 default, even if there are additional options.
4429
4430 * gnat_ugn.texi:
4431 Document when the back end switches from the ALI file are taken into
4432 account when gnatlink is invoked with --GCC=
4433
44342008-05-23 Thomas Quinot <quinot@adacore.com>
4435
4436 * s-os_lib.adb:
4437 (copy_File): Do not open destination file if source file is unreadable.
4438
3fda3252
EB
44392008-05-23 Eric Botcazou <ebotcazou@adacore.com>
4440
4441 * utils.c (handle_type_generic_attribute): Adjust to accept
4442 fixed arguments before an elipsis.
4443
92c708d2
TQ
44442008-05-21 Thomas Quinot <quinot@adacore.com>
4445
4446 * g-sothco.ads, g-sothco.adb: New files.
4447
93a7c573
AC
44482008-05-20 Thomas Quinot <quinot@adacore.com>
4449
4450 * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
4451
4452 * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
4453 Add missing "with" of Ada.Unchecked_Conversion
4454
9e81dbc7
AS
4455 * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
4456 g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
4457 g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
4458 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
4459 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
4460 g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
93a7c573
AC
4461 Move common code out of GNAT.Sockets.Thin implementations and into
4462 Thin_Common.
4463 New constant SIZEOF_fd_set
4464 New flag Has_Sockaddr_Len
4465 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4466
4467 * g-stsifd-sockets.adb
4468 (Create): Remove call to Set_Length; use Set_Family to set the family
4469 and (on appropriate platforms) length fields in struct sockaddr.
4470
9e81dbc7
AS
4471 * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
4472 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
93a7c573
AC
4473 g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
4474 Move common code out of GNAT.Sockets.Thin implementations and into
4475 Thin_Common.
4476
9e81dbc7 4477 * g-socket.ads, g-socket.adb:
93a7c573
AC
4478 Move common code out of GNAT.Sockets.Thin implementations and into
4479 Thin_Common.
4480 (Connect_Socket, Accept_Socket): Provide new versions of these two
4481 routines that operate with a user specified timeout.
4482 (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
4483 this is now handled automatically by Set_Family on platforms that
4484 require it.
4485
9e81dbc7 4486 * gen-soccon.c:
93a7c573
AC
4487 Move common code out of GNAT.Sockets.Thin implementations and into
4488 Thin_Common.
4489 (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
4490 this constant to 0 (not -1) because we use it to initialize an
4491 unsigned_char value.
4492 Align values for numeric constants only.
4493 Handle the case of systems that do not support AF_INET6.
4494 New constant SIZEOF_fd_set
4495 New flag Has_Sockaddr_Len
4496 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4497
4498 * gsocket.h: New flag Has_Sockaddr_Len
4499 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4500
45012008-05-20 Santiago Uruena <uruena@adacore.com>
4502
4503 * i-cobol.ads: Interfaces.COBOL should be preelaborate.
4504
45052008-05-20 Arnaud Charlet <charlet@adacore.com>
4506
4507 * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
4508 the underlying issue with malloc/free has been fixed. Remove associated
4509 comments.
4510 Minor reformatting.
4511 Related to PR ada/24533
4512
45132008-05-20 Robert Dewar <dewar@adacore.com>
4514
4515 * ali.adb: Correct casing of ASCII.NUL
4516
4517 * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
4518 properly.
4519
45202008-05-20 Robert Dewar <dewar@adacore.com>
4521 Gary Dismukes <dismukes@adacore.com>
4522
4523 * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
4524 overflow if result converted to wider integer type.
4525 (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
4526 discriminated types when discriminant checks are suppressed.
4527
45282008-05-20 Vincent Celier <celier@adacore.com>
4529
4530 * cstand.adb (Print_Standard): Issue the correct Size clause for type
4531 Wide_Wide_Character.
4532
45332008-05-20 Tristan Gingold <gingold@adacore.com>
4534
4535 * decl.c: Do not emit a variable for a object that has an address
4536 representation clause whose value is known at compile time.
4537 When a variable has an address clause whose value is known at compile
4538 time, refer to this variable by using directly the address instead of
4539 dereferencing a pointer.
4540
45412008-05-20 Robert Dewar <dewar@adacore.com>
4542
4543 PR ada/30740
4544 * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
4545 subtypes, always False for non-modular types.
4546 Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
4547 entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
4548 for Shared_Storage package.
4549 (Is_RACW_Stub_Type): New entity flag.
4550
4551 * exp_ch4.adb
4552 (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
4553 case where we have a modular type with a non-binary modules.
4554 Comments reformattings.
4555
4556 * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
4557 all types.
4558
45592008-05-20 Javier Miranda <miranda@adacore.com>
4560
4561 * exp_aggr.adb
4562 (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
4563 tests did not covered the case in which the type of the aggregate has
4564 no progenitors but some its parents has progenitors.
4565
45662008-05-20 Gary Dismukes <dismukes@adacore.com>
4567 Hristian Kirtchev <kirtchev@adacore.com>
4568
4569 * exp_ch3.adb
4570 (Expand_N_Object_Declaration): Correct the condition which triggers the
4571 generation of a call to Displace when initializing a class-wide object.
4572 (Build_Dcheck_Functions): Build discriminant-checking for null variants
4573 when Frontend_Layout_On_Target is true to ensure that they're available
4574 for calling when a record variant size function is built in Layout.
4575
45762008-05-20 Ed Schonberg <schonberg@adacore.com>
4577
4578 * exp_ch5.adb (Expand_Assign_Record): Within an initialization
4579 procedure for a derived type retrieve the discriminant values from the
4580 parent using the corresponding discriminant.
4581 (Expand_N_Assignment_Statement): Skip generation of implicit
4582 if-statement associated with controlled types if we are
4583 compiling with restriction No_Finalization.
4584
45852008-05-20 Vincent Celier <celier@adacore.com>
4586
4587 * prj.adb (Hash (Project_Id)): New function
4588 (Project_Empty): Add new component Interfaces_Defined
4589
4590 * prj.ads (Source_Data): New component Object_Linked
4591 (Language_Config): New components Object_Generated and Objects_Linked
4592 (Hash (Project_Id)): New function
4593 (Source_Data): New Boolean components In_Interfaces and
4594 Declared_In_Interfaces.
4595 (Project_Data): New Boolean component Interfaces_Defined
4596
9e81dbc7 4597 * prj-attr.adb:
93a7c573
AC
4598 New project level attribute Object_Generated and Objects_Linked
4599 Add new project level attribute Interfaces
4600
4601 * prj-dect.adb: Use functions Present and No throughout
4602 (Parse_Variable_Declaration): If a string type is specified as a simple
4603 name and is not found in the current project, look for it also in the
4604 ancestors of the project.
4605
9e81dbc7 4606 * prj-makr.adb:
93a7c573
AC
4607 Replace procedure Make with procedures Initialize, Process and Finalize
4608 to implement H414-023: process different directories with different
4609 patterns.
4610 Use functions Present and No throughout
4611
9e81dbc7 4612 * prj-makr.ads:
93a7c573
AC
4613 Replace procedure Make with procedures Initialize, Process and Finalize
4614
4615 * prj-nmsc.adb
4616 (Add_Source): Set component Object_Exists and Object_Linked accordnig to
4617 the language configuration.
4618 (Process_Project_Level_Array_Attributes): Process new attributes
4619 Object_Generated and Object_Linked.
4620 (Report_No_Sources): New Boolean parameter Continuation, defaulted to
4621 False, to indicate that the erreor/warning is a continuation.
4622 (Check): Call Report_No_Sources with Contnuation = True after the first
4623 call.
4624 (Error_Msg): Process successively contnuation character and warning
4625 character.
4626 (Find_Explicit_Sources): Check that all declared sources have been found
4627 (Check_File): Indicate in hash table Source_Names when a declared source
4628 is found.
4629 (Check_File): Set Other_Part when found
4630 (Find_Explicit_Sources): In multi language mode, check if all exceptions
4631 to the naming scheme have been found. For Ada, report an error if an
4632 exception has not been found. Otherwise, disregard the exception.
4633 (Check_Interfaces): New procedure
4634 (Add_Source): When Other_Part is defined, set mutual pointers in spec
4635 and body.
4636 (Check): In multi-language mode, call Check_Interfaces
4637 (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
4638 for an excluded source.
4639 (Remove_Source): A source replacing a source in the interfaces is also
4640 in the interfaces.
4641
4642 * prj-pars.adb: Use function Present
4643
4644 * prj-part.adb: Use functions Present and No throughout
4645 (Parse_Single_Project): Set the parent project for child projects
4646 (Create_Virtual_Extending_Project): Register project with no qualifier
4647 (Parse_Single_Project): Allow an abstract project to be extend several
4648 times. Do not allow an abstract project to extend a non abstract
4649 project.
4650
4651 * prj-pp.adb: Use functions Present and No throughout
4652 (Print): Take into account the full associative array attribute
4653 declarations.
4654
4655 * prj-proc.adb: Use functions Present and No throughout
4656 (Expression): Call itself with the same From_Project_Node for the
4657 default value of an external reference.
4658
4659 * prj-strt.adb: Use functions Present and No throughout
4660 (Parse_Variable_Reference): If a variable is specified as a simple name
4661 and is not found in the current project, look for it also in the
4662 ancestors of the project.
4663
4664 * prj-tree.ads, prj-tree.adb (Present): New function
4665 (No): New function
4666 Use functions Present and No throughout
4667 (Parent_Project_Of): New function
4668 (Set_Parent_Project_Of): New procedure
4669
9e81dbc7 4670 * snames.ads, snames.adb:
93a7c573
AC
4671 Add new standard names Object_Generated and Objects_Linked
4672
46732008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
4674
4675 * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
4676 and the derived type are of the same kind.
4677 (Expand_Call): Generate type conversions for actuals of
4678 record or array types when the parent and the derived types differ in
4679 size and/or packed status.
4680
46812008-05-20 Javier Miranda <miranda@adacore.com>
4682 Ed Schonberg <schonberg@adacore.com>
4683
4684 * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
4685 generating dispatch tables of locally defined tagged types statically.
4686 Remove implicit if-statement that is no longer required.
4687 (Expand_Dispatching_Call): If this is a call to an instance of the
4688 generic dispatching constructor, the type of the first argument may be
4689 a subtype of Tag, so always use the base type to recognize this case.
4690
46912008-05-20 Thomas Quinot <quinot@adacore.com>
4692
4693 * exp_dist.adb
4694 (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
4695 and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
4696 assigning NULL into the result, to avoid a spurious warning.
4697 (Add_RACW_Features, case Same_Scope): Add assertion that designated type
4698 is not frozen.
4699 (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
4700 type.
4701 (Build_From_Any_Function, Build_To_Any_Function,
4702 Build_TypeCode_Function): For a type that has user-specified stream
4703 attributes, use an opaque sequence of octets as the representation.
4704
47052008-05-20 Kevin Pouget <pouget@adacore.com>
4706
4707 * exp_smem.ads, exp_smem.adb: Construction of access and assign
4708 routines has been replaced by an instantiation of
4709 System.Shared_Storage.Shared_Var_Procs generic package, while expanding
4710 shared variable declaration.
4711 Calls to access and assign routines have been replaced by calls to
4712 Read/Write routines of System.Shared_Storage.Shared_Var_Procs
4713 instantiated package.
9e81dbc7 4714
93a7c573
AC
4715 * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
4716 It identifies the new generic package added in s-shasto.
4717
4718 * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
4719 is instantiated for each shared passive variable. It provides
4720 supporting procedures called upon each read or write access by the
4721 expanded code.
4722
4723 * sem_attr.adb:
4724 For this runtime unit (always compiled in GNAT mode), we allow
4725 stream attributes references for limited types for the case where
4726 shared passive objects are implemented using stream attributes,
4727 which is the default in GNAT's persistent storage implementation.
4728
47292008-05-20 Ed Schonberg <schonberg@adacore.com>
4730
4731 * freeze.adb
4732 (Freeze_Enumeration_Type): For a subtype that inherits a foreign
4733 convention from its base type, do not set the type to that of integer,
4734 because it may inherit a size clause.
4735 Warn on a size clause with a size different
4736 from that of Integer, if the type has convention C.
4737
47382008-05-20 Vincent Celier <celier@adacore.com>
4739
4740 * gnatname.adb
4741 (Scan_Args): Rewrite to take into account new switch --and to separate
4742 arguments into sections.
4743 (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
4744 section, then Finalize.
4745
47462008-05-20 Tristan Gingold <gingold@adacore.com>
4747
4748 * init.c: Enable stack probing on ppc-linux.
4749
4750 * tracebak.c: Add symbolic traceback for ppc-linux.
4751
4752 * system-linux-ppc.ads: Enable stack probing on ppc-linux.
4753
47542008-05-20 Arnaud Charlet <charlet@adacore.com>
4755
4756 * Makefile.in
4757 (common-tools): New rule, to avoid parallel build failure on gnat tools.
4758 Reenable parallel builds on this Makefile.
4759
4760 * Make-lang.in: Update dependencies.
4761
47622008-05-20 Robert Dewar <dewar@adacore.com>
4763
4764 * opt.ads (Treat_Restrictions_As_Warnings): New switch
4765
4766 * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
4767 Treat_Restrictions_As_Warnings.
4768
4769 * switch-c.adb: Recognize new switch -gnatr
4770
4771 * usage.adb: Add line for -gnatr
4772
47732008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
4774
4775 * par-ch3.adb
4776 (P_Access_Definition): Change the error message when parsing "access
4777 all" in Ada 95 mode. The message no longer forces the user to recompile
4778 in 05 mode only to discover that anonymous access types are not allowed
4779 to have "all".
4780
47812008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
4782
4783 * par-ch9.adb
4784 (P_Protected): Update the error message on missing "-gnat05" switch when
4785 using interfaces in conjunction with protected types. Remove the
4786 incorrect error message associated with the presence of "private" after
4787 a "with".
4788
47892008-05-20 Ed Schonberg <schonberg@adacore.com>
4790
4791 * sem_aggr.adb: Update comments.
4792 Improve previous change for PR ada/17985
4793
47942008-05-20 Thomas Quinot <quinot@adacore.com>
4795
4796 * sem_cat.adb
4797 (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
4798 the visible part of the spec of a remote types unit.
4799 (Validate_Remote_Access_Object_Type_Declaration):
4800 New local subprogram Is_Valid_Remote_Object_Type, replaces
4801 Is_Recursively_Limited_Private.
4802 (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
4803 non-controlling formals (and the return type, even though this is not
4804 explicit in the standard) must support external streaming.
4805 (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
4806 as above for of RAS types and RCI subprograms. (The return type is not
4807 checked yet).
4808 Update comments related to RACWs designating limited interfaces per
4809 ARG ruling on AI05-060.
4810
4811 * sem_util.ads, sem_util.adb
4812 (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
4813 Is_Remote_Call_Interface to identify RACW types in a stable and
4814 consistent way. We used to rely in this predicate on the privateness of
4815 the designated type and its ancestors, but depending on the currently
4816 visible private parts, this caused false negatives. We now uniformly
4817 rely on checks made at the point where the RACW type is declared.
4818 (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
4819
48202008-05-20 Javier Miranda <miranda@adacore.com>
4821 Ed Schonberg <schonberg@adacore.com>
4822 Hristian Kirtchev <kirtchev@adacore.com>
4823
4824 * sem_ch3.adb
4825 (Analyze_Object_Declaration): Fix over-conservative condition
4826 restricting use of predefined assignment with tagged types that have
4827 convention CPP.
4828 (Analyze_Object_Declaration): Relax the check regarding deferred
4829 constants declared in scopes other than packages since they can be
4830 completed with pragma Import.
4831 Add missing escaping of all-caps word 'CPP' in error messages.
4832 (Build_Discriminated_Subtype): Do not inherit representation clauses
4833 from parent type if subtype already carries them, because they are
4834 inherited earlier during derivation and already include those that may
4835 come from a partial view.
4836
4837 * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
4838 Check the declarations of a subprogram body for proper deferred
4839 constant completion.
4840
4841 * sem_ch7.ads, sem_ch7.adb
4842 (Inspect_Deferred_Constant_Completion): Moved to sem_util.
4843
48442008-05-20 Ed Schonberg <schonberg@adacore.com>
4845 Thomas Quinot <quinot@adacore.com>
4846
4847 * sem_ch4.adb
4848 (Try_Indexed_Call): Handle properly a construct of the form F(S) where
4849 F is a parameterless function that returns an array, and S is a subtype
4850 mark.
4851 (Analyze_Call): Insert dereference when the prefix is a parameterless
4852 function that returns an access to subprogram and the call has
4853 parameters.
4854 Reject a non-overloaded call whose name resolves to denote
4855 a primitive operation of the stub type generated to support a remote
4856 access-to-class-wide type.
4857
48582008-05-20 Ed Schonberg <schonberg@adacore.com>
4859
4860 * sem_ch8.adb
4861 (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
4862 when there is a use clause for the same entity in the context.
4863 (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
4864 created for a stream attribute of an abstract type or interface type.
4865
48662008-05-20 Thomas Quinot <quinot@adacore.com>
4867
4868 * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
4869 subprogram.
4870
4871 * sem_type.adb
4872 (Add_One_Interp): Ignore any interpretation that is a primitive
4873 operation of an RACW stub type (these primitives are only executed
4874 through dispatching, never through static calls).
4875 (Collect_Interps): When only one interpretation has been found, set N's
4876 Entity and Etype to that interpretation, otherwise Entity and Etype may
4877 still refer to an interpretation that was ignored by Add_One_Interp,
4878 in which case would end up with being marked as not overloaded but with
4879 an Entity attribute not pointing to its (unique) correct interpretation.
4880
48812008-05-20 Ed Schonberg <schonberg@adacore.com>
4882
4883 * sem_eval.adb
4884 (Eval_Slice): Warn when a slice whose discrete range is a subtype name
4885 denotes the whole array of its prefix.
4886
48872008-05-20 Robert Dewar <dewar@adacore.com>
4888
4889 * sem_res.adb (Resolve_Op_Not): Warn on double negation
4890
48912008-05-20 Ed Schonberg <schonberg@adacore.com>
4892
4893 * sprint.adb
4894 (Print_Itype): Do not modify the sloc of the component type of a
4895 (packed) array itype, because it is an unrelated type whose source
4896 location is independent of the point of creation of the itype itself.
4897
48982008-05-20 Thomas Quinot <quinot@adacore.com>
4899
4900 * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
4901 Append.
4902
49032008-05-20 Robert Dewar <dewar@adacore.com>
4904 Vincent Celier <celier@adacore.com>
4905
4906 * vms_data.ads: Add entry for -gnatr
4907 Put GNAT SYNC section in proper alpha order
4908 Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
4909
4910 * gnat_ugn.texi: Add documentation for new gnatname switch --and
4911 Update the style checks section
4912 Add documentation of -gnatr
4913 Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
4914 subsection the explanation how compiler checks should be disabled for
4915 gnatcheck.
4916 Update the list of Ada 95 reserved words used by in the project language
4917 Add documentation for project qualifiers.
4918 Document that abstract projects may be extended by different projects in
4919 the same project tree.
4920 Add documentation for gnatmake switch -d
4921
4922 * ug_words: Add -gnatyy VMS equivalence string.
4923 Add entry for -gnatr
4924
49252008-05-20 Bob Duff <duff@adacore.com>
4926
4927 * a-rttiev.adb
4928 (Set_Handler): Remove code from both of these that implements
4929 RM-D.15(15/2), because it causes a race condition and potential
4930 deadlock.
4931 (Process_Queued_Events): Add comment explaining "exception when others
4932 => null". Add clarifying ".all", even though implicit .all is legal
4933 here.
4934
49352008-05-20 Arnaud Charlet <charlet@adacore.com>
4936
4937 * s-winext.ads: Replace representation clause by pragma Pack. Gives
4938 equivalent representation, but has the advantage of allowing
4939 compilation of this file under 64 bits platforms.
4940
4941 * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
4942
4943 * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
4944
9e81dbc7 4945 * adaint.c:
93a7c573
AC
4946 Don't define dummy implementation of convert_addresses on ppc-linux.
4947
49482008-05-20 Ed Schonberg <schonberg@adacore.com>
4949
4950 * exp_ch7.adb
4951 (Expand_Ctrl_Function_Call): Do not attach result to finalization list
4952 if expression is aggregate component.
4953
49542008-05-20 Robert Dewar <dewar@adacore.com>
4955
4956 * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
4957 sem_ch12.adb: Update comments. Minor reformatting.
4958
4959 * exp_ch2.adb: Typo
4960
4961 * s-unstyp.ads: Fixed some typos in comments.
4962
1b686dc4
AC
49632008-05-20 Arnaud Charlet <charlet@adacore.com>
4964
4965 * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
4966 type/constant.
4967
4968 * g-socthi-vxworks.ads: Update to latest socket changes.
4969
4970 * a-caldel-vms.adb: Resync with a-caldel spec.
4971
6357e162
AC
4972 * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
4973 Update comments.
4974
74c11a6c
EB
49752008-05-17 Eric Botcazou <ebotcazou@adacore.com>
4976
4977 * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
4978 for dummy types pointed to by the converted pointer types.
4979
f730e42f
EB
49802008-05-15 Eric Botcazou <ebotcazou@adacore.com>
4981
4982 * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
4983 of records and unions.
4984 (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
4985
eaa2f8c7 49862008-05-14 Samuel Tardieu <sam@rfc1149.net>
9e81dbc7 4987 Robert Dewar <dewar@adacore.com>
eaa2f8c7
ST
4988
4989 * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
4990 restrictions to the prefix of 'Old.
4991 * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
4992 * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
4993 variables.
4994
f80cddcb
EB
49952008-05-13 Eric Botcazou <ebotcazou@adacore.com>
4996
4997 PR ada/24880
4998 PR ada/26635
4999 * utils.c (convert) <INTEGER_TYPE>: When converting an additive
5000 expression to an integral type with lower precision, use NOP_EXPR
5001 directly in a couple of special cases.
5002
ea0a7f39 50032008-05-12 Samuel Tardieu <sam@rfc1149.net>
9e81dbc7 5004 Ed Schonberg <schonberg@adacore.com>
ea0a7f39
ST
5005
5006 * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
5007 constraint expressions.
5008
751d1520
TB
50092008-05-12 Tomas Bily <tbily@suse.cz>
5010
ea0a7f39
ST
5011 * utils2.c (known_alignment, contains_save_expr_p)
5012 (gnat_mark_addressable): Use CASE_CONVERT.
5013 * decl.c (annotate_value): Likewise.
5014 * trans.c (maybe_stabilize_reference): Likewise.
5015 * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
5016 * utils.c (rest_of_record_type_compilation): Likewise.
5017 * trans.c (protect_multiple_eval, Attribute_to_gnu)
5018 (protect_multiple_eval): Likewise.
751d1520 5019
a1b66071
AS
50202008-05-08 Andreas Schwab <schwab@suse.de>
5021
5022 * utils.c (handle_pure_attribute, init_gigi_decls): Rename
5023 DECL_IS_PURE to DECL_PURE_P.
5024
bba74577
EB
50252008-05-05 Eric Botcazou <ebotcazou@adacore.com>
5026
5027 * decl.c (maybe_pad_type): Add ??? comment.
5028
8f85525e
EB
50292008-05-03 Eric Botcazou <ebotcazou@adacore.com>
5030
5031 * decl.c (components_to_record): Zero the alignment of the qualified
5032 union built for the variant part upon creating it.
5033
88f36b7e
EB
50342008-05-03 Eric Botcazou <ebotcazou@adacore.com>
5035
5036 * decl.c (maybe_pad_type): Try to get a form of the type with integral
5037 mode even if the alignment is not a factor of the original size. But
5038 make sure to create the inner field with the original size. Reorder.
5039 * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
5040 record as always addressable.
5041 * utils.c (convert): Deal specially with conversions between original
5042 and packable versions of a record type.
5043 * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
5044 recognizing an assignment between padded objects.
5045
8665c7ca
EB
50462008-05-01 Eric Botcazou <ebotcazou@adacore.com>
5047
5048 * decl.c (make_packable_type): Resize the last component to its RM size
5049 only if it is of an aggregate type.
5050 * trans.c (call_to_gnu): Fix nit in comment.
5051 (gnat_to_gnu): Likewise.
5052
ea342909
ST
50532008-04-30 Samuel Tardieu <sam@rfc1149.net>
5054
5055 * Makefile.in: Adapt sh4-linux target.
5056
af4133b2
ST
50572008-04-29 Ed Schonberg <schonberg@adacore.com>
5058
5059 PR ada/35792
5060 * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
5061 tagged type by an untagged protected or task type.
5062
805100b5 50632008-04-28 Eric Botcazou <ebotcazou@adacore.com>
9e81dbc7 5064 Tristan Gingold <gingold@adacore.com>
805100b5
EB
5065
5066 PR ada/36007
5067 * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
5068 of aliased objects with an unconstrained nominal subtype.
5069 Cap the promotion to the effective alignment of the word mode.
5070
99c2eec1
RW
50712008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5072
5073 * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
5074 (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
5075 Use '&&' instead of ';'.
5076
22a81267
OH
50772008-04-24 Olivier Hainque <hainque@adacore.com>
5078
5079 * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
5080 doesn't require signed arithmetic anymore.
5081
51eed280
PB
50822008-04-23 Paolo Bonzini <bonzini@gnu.org>
5083
5084 * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
5085 (call_to_gnu): Don't set TREE_INVARIANT.
5086 * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
5087
d9126ef8
JS
50882008-04-22 Joel Sherrill <joel.sherrill@oarcorp.com>
5089
5090 * s-osinte-rtems.adb: Add sigalstack function.
5091 * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
5092 function. Add Alternate_Stack and Alternate_Stack_Size.
5093 Add missing process_shared field to pthread_condattr_t
5094 and change ss_low_priority to int from timespec.
5095
0a58c87e
ST
50962008-04-22 Samuel Tardieu <sam@rfc1149.net>
5097
5098 * i-forbla.adb: Link against -llapack and -lblas by default
5099 instead of the private -lgnalasup.
5100
009890be
OH
51012008-04-21 Olivier Hainque <hainque@adacore.com>
5102
5103 Access to most C builtins from Ada
5104 * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
5105 (handle_pure_attribute, handle_novops_attribute,
5106 handle_nonnull_attribute, handle_sentinel_attribute,
5107 handle_noreturn_attribute, handle_malloc_attribute,
5108 handle_type_generic_attribute): New attribute handlers, from C fe.
5109 (gnat_internal_attribute_table): Map the new handlers.
5110 (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
5111 (init_gigi_decls): ... here.
5112 (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
5113 Move to a section dedicated to builtins processing.
5114 (build_void_list_node, builtin_type_for_size): New functions.
5115 (def_fn_type, get_nonnull_operand): Likewise.
5116 (install_builtin_elementary_type, install_builtin_function_types,
5117 install_builtin_attributes): Likewise.
5118 (fake_attribute_handler): Fake handler for attributes we don't
5119 support in Ada.
5120 (def_builtin_1): New function, worker for DEF_BUILTIN.
5121 (install_builtin_functions): New function.
5122 (gnat_install_builtins): Move to the builtins processing section.
5123 Now calling the newly introduced installers.
5124
e871a873
EB
51252008-04-20 Eric Botcazou <ebotcazou@adacore.com>
5126
5127 * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
5128 constant objects, but not exceptions.
5129 * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
5130 compatibility test.
5131 * utils.c (create_var_decl_1): Likewise.
5132 * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
5133 the type when copying to padded object and the source is a constructor.
5134
98ae7998
EB
51352008-04-18 Eric Botcazou <ebotcazou@adacore.com>
5136
5137 * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
5138 alignment, reset it to zero if it would end up not being greater
5139 than that of the type.
5140
3569056b
EB
51412008-04-18 Eric Botcazou <ebotcazou@adacore.com>
5142
5143 * decl.c (maybe_pad_type): Only generate the XVS parallel type if
5144 the padded type has a variable size.
5145
9a089d8b
EB
51462008-04-18 Eric Botcazou <ebotcazou@adacore.com>
5147
5148 * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
5149 target pointer mechanism as soon as the size is not constant.
5150
0cb5c2a7
EB
51512008-04-18 Eric Botcazou <ebotcazou@adacore.com>
5152
5153 * gigi.h (create_var_decl_1): Declare.
5154 (create_var_decl): Turn into a macro invoking create_var_decl_1.
5155 (create_true_var_decl): Likewise.
5156 * utils.c (create_var_decl_1): Make global and reorder parameters.
5157 (create_var_decl): Delete.
5158 (create_true_var_decl): Likewise.
5159
90d6701e
EB
51602008-04-17 Eric Botcazou <ebotcazou@adacore.com>
5161
5162 * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
5163 objects by default.
5164 * fe.h (Debug_Flag_Dot_A): Delete.
5165 * debug.adb (-gnatd.a): Update documentation.
5166
35485e12
ST
51672008-04-17 Samuel Tardieu <sam@rfc1149.net>
5168
5169 * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
5170 "not null" parameter.
5171
111c1cd9
ST
51722008-04-17 Samuel Tardieu <sam@rfc1149.net>
5173
5174 * g-socket.adb: Add a message "IPv6 not supported" to the
5175 Socket_Error exception.
5176
35c91e05
ST
51772008-04-16 Samuel Tardieu <sam@rfc1149.net>
5178
5179 PR ada/29015
5180 * sem_ch12.adb (Instantiate_Type): Check whether the full view of
5181 the type is known instead of the underlying type.
5182
b48a6531
ST
51832008-04-15 Ed Schonberg <schonberg@adacore.com>
5184
5185 PR ada/22387
5186 * exp_ch5.adb (Expand_Assign_Record): Within an initialization
5187 procedure for a derived type retrieve the discriminant values from
5188 the parent using the corresponding discriminant.
5189
462c31ef 51902008-04-15 Samuel Tardieu <sam@rfc1149.net>
9e81dbc7 5191 Gary Dismukes <dismukes@adacore.com>
462c31ef
ST
5192
5193 PR ada/28733
5194 * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
5195 which is not an entity (and hence not a package).
5196 (End_Use_Package): Ditto.
5197
8abe457a
ST
51982008-04-15 Ed Schonberg <schonberg@adacore.com>
5199
5200 PR ada/16086
5201 * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
5202 protected operation that matches the signature, not only an entry, a
5203 regular subprogram or a literal.
5204
29f4754f
EB
52052008-04-15 Eric Botcazou <ebotcazou@adacore.com>
5206
5207 * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
5208 * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
5209 if a size or alignment is specified. Do not take into account
5210 alignment promotions for the computation of the object's size.
5211 <type>: Call maybe_pad_type only if a size or alignment is specified.
5212 (maybe_pad_type): Really reuse the RM_Size of the original type if
5213 requested.
5214 * trans.c (Attribute_to_gnu): Fix a couple of nits.
5215 * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
5216 statements. Use the padded view of the type when copying between
5217 padded objects of the same underlying type.
5218
f3d0f304
RW
52192008-04-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5220
5221 * vms_data.ads: Fix typo in constant.
5222 * gen-soccon.c: Fix typo in error string.
5223 * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
5224 Fix typos.
5225 * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
5226 bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
5227 erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
5228 exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
5229 exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
5230 g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
5231 mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
5232 s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
5233 s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
5234 sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
5235 sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
5236 sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
5237 sinfo.ads: Fix typos in comments.
5238
2efcad9f
RD
52392008-04-14 Robert Dewar <dewar@adacore.com>
5240
5241 * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
5242 to every non-object and change error message.
5243
8f3723e0
RD
52442008-04-14 Robert Dewar <dewar@adacore.com>
5245
5246 * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
5247 * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
5248 directly.
5249
32f7efe1
ST
52502008-04-14 Samuel Tardieu <sam@rfc1149.net>
5251
5252 PR ada/18680
5253 * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
5254 apply pragma Linker_Section on type.
5255
b039b10e
ST
52562008-04-14 Samuel Tardieu <sam@rfc1149.net>
5257
5258 PR ada/16098
5259 * sem_prag.adb (Error_Pragma_Ref): New.
5260 (Process_Convention): Specialized message for non-local
5261 subprogram renaming. Detect the problem in homonyms as well.
5262
cb572b75
ST
52632008-04-14 Samuel Tardieu <sam@rfc1149.net>
5264
5265 PR ada/15915
5266 * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
5267 * sem_ch12.adb (Instantiate_Object): Use it.
5268 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
5269 storage pool denotes a variable as per RM 13.11(15).
5270
17972da7
ST
52712008-04-14 Samuel Tardieu <sam@rfc1149.net>
5272
5273 * sem_util.ads, sem_util.adb (In_Subprogram): New function.
5274 * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
5275
57f80aa9
RE
52762008-04-14 Rolf Ebert <rolf.ebert.gcc@gmx.de>
5277
5278 PR ada/20822
5279 * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
5280 line endings even on non-Unix platforms.
5281
9ff231e2
ST
52822008-04-14 Samuel Tardieu <sam@rfc1149.net>
5283
5284 PR ada/35050
5285 * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
5286 renaming information.
5287
9e81dbc7 52882008-04-13 Samuel Tardieu <sam@rfc1149.net>
92d4508a
ST
5289
5290 PR ada/17985
5291 * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
5292 itself.
5293
12a13f01
RW
52942008-04-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5295
3354f96d
RW
5296 * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
5297 sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
5298 snames.ads, sprint.adb, stand.ads, stringt.ads,
5299 styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
5300 switch.ads, sysdep.c, table.adb, table.ads,
5301 targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
5302 trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
5303 uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
5304 vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
5305 widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
5306 xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
5307 Fix comment typos.
5308
f3d57416
RW
5309 * sem_ch10.adb, sem_ch10.ads,
5310 sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
5311 sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
5312 sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
5313 sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
5314 sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
5315 sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
5316 sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
5317 sem_warn.ads: Fix comment typos.
5318
12a13f01
RW
5319 * s-secsta.adb, s-sequio.ads, s-shasto.ads,
5320 s-soflin.ads, s-stalib.ads, s-stausa.adb,
5321 s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
5322 s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
5323 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
5324 s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
5325 s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
5326 s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
5327 s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
5328 s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
5329 s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
5330 s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
5331 s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
5332 s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
5333 s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
5334 scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
5335 sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
5336 sem_cat.adb, sem_cat.ads: Fix comment typos.
5337
2b699ab1
JS
53382008-04-12 Joel Sherrill <joel@oarcorp.com>
5339
5340 PR ada/35825
5341 * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
5342
1e273538
AC
53432008-04-12 Arnaud Charlet <charlet@adacore.com>
5344
5345 * s-linux-hppa.ads: Fix syntax errors.
5346
276e95ca
RW
53472008-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5348
5349 * gnat_ugn.texi: Fix typos.
5350 * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
5351 restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
5352 s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
5353 s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
5354 s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
5355 s-finimp.adb, s-finroo.ads, s-fishfl.ads,
5356 s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
5357 s-hibaen.ads, s-htable.ads, s-imgcha.adb,
5358 s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
5359 s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
5360 s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
5361 s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
5362 s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
5363 s-osinte-darwin.ads, s-osinte-freebsd.ads,
5364 s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
5365 s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
5366 s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
5367 s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
5368 s-parame-hpux.ads, s-parame-vms-alpha.ads,
5369 s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
5370 s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
5371 s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
5372 s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
5373 s-rident.ads: Fix comment typos.
5374
ce4e59c4
ST
53752008-04-09 Samuel Tardieu <sam@rfc1149.net>
5376
5377 PR ada/28305
5378 * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
5379 environment if generic instance is a top-level one.
5380
6d21c8af
DR
53812008-04-09 Doug Rupp <rupp@adacore.com>
5382
5383 * decl.c (validate_size): Set minimum size for fat pointers same as
5384 access types. Code clean ups.
5385
5386 * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
5387 (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
5388
5389 * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
5390
5391 * s-crtl.ads (malloc32) New function, alias for malloc
5392 (realloc32) New function, alias for realloc
5393
5394 * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
5395
5396 * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
5397 allocator size is 32 and default pointer size is 64.
5398 (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
5399 lhs type if smaller, whatever the modes.
5400
5401 * gigi.h (malloc32_decl): New macro definition
5402
5403 * utils.c (init_gigi_decls): New malloc32_decl
5404 Various code clean ups.
5405
5406 * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
5407 Task_Address vice System.Address.
5408
5409 * s-taspri-vms.ads: Import System.Aux_DEC
5410 (Task_Address): New subtype of System.Aux_DEC.Short_Address
5411 (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
5412
5413 * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
5414 Task_Address vice System.Address.
5415
5416 * s-inmaop-vms.adb: Import System.Task_Primitives
5417 (To_Address): Unchecked convert to Task_Address vice System.Address
5418
5419 * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
5420 expires now.
5421 (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
5422 (To_Address) Unchecked convert to Task_Address vice System.Address
5423
5424 * s-tpopde-vms.adb: Remove unnecessary warning pragmas
5425
5426 * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
5427
581edf92
EB
54282008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5429
5430 * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
5431 (fdesc_type_node): Define.
5432 (null_fdesc_node): Likewise.
5433 * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
5434 uses descriptors for vtables and the type comes from a dispatch table,
5435 return the descriptor type.
5436 * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
5437 uses descriptors for vtables and the type comes from a dispatch table,
5438 build a descriptor in the static case and copy the existing one in the
5439 non-static case.
5440 (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
5441 the type is a pointer-to-subprogram coming from a dispatch table,
5442 return the null descriptor.
5443 <N_Unchecked_Type_Conversion>: If the target uses descriptors for
5444 vtables, the source type is the descriptor type and the target type
5445 is a pointer type, first build the pointer.
5446 * utils.c (init_gigi_decls): If the target uses descriptors for vtables
5447 build the descriptor type and the null descriptor.
5448
e1da2b17
EB
54492008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5450
5451 * decl.c (prepend_attributes): Fix typo.
5452 * trans.c (Pragma_to_gnu): Likewise.
5453 * utils.c (gnat_genericize): Likewise.
5454
2b3dffa6 54552008-04-08 Eric Botcazou <ebotcazou@adacore.com>
9e81dbc7 5456 Richard Kenner <kenner@adacore.com>
2b3dffa6
EB
5457
5458 * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
5459 * decl.c (gnat_to_gnu_entity): Adjust for above change.
5460 <E_Record_Type>: Try to get a better form of the component for
5461 packing, even if it has an integral mode.
5462 <E_Record_Subtype>: Likewise.
5463 * trans.c (gnat_to_gnu): Do not require BLKmode for the special
5464 exception suppressing the final conversion between record types.
5465
ba3f46d0
EB
54662008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5467
5468 * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
5469 alignment for space, promote the alignment of non-scalar variables with
5470 no size and alignment.
5471 * gigi.h (gnat_types_compatible_p): Declare.
5472 * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
5473 * trans.c (gnat_to_gnu): Revert revision 129339 change. Minor cleanup.
5474 * utils.c (gnat_types_compatible_p) : New predicate.
5475 (convert): Use it throughout to test for cases where a mere view
5476 conversion is sufficient.
5477 * utils2.c (build_binary_op): Minor tweaks.
5478 (build_unary_op): Likewise.
5479
373140ef
EB
54802008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5481
5482 * decl.c (adjust_packed): Expand comment.
5483
ea081ad7
AC
54842008-04-08 Arnaud Charlet <charlet@adacore.com>
5485
5486 * s-tasuti.ads: Use Task_Address instead of System.Address.
5487
5488 * makeutl.adb (Path_Or_File_Name): New function
5489
5490 * nlists.ads, itypes.ads: Update comments.
5491
5492 * s-crtl.ads (malloc32, realloc32): New functions.
5493
5494 * s-auxdec.ads (Short_Address_Size): New constant.
5495
5496 * a-taside.adb, s-tasdeb.adb: Use Task_Address.
5497
5498 * s-ststop.ads, s-ststop.adb: New file.
5499
5500 * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
5501 Minor reformatting.
5502
d563d3f0
AC
55032008-04-08 Pascal Obry <obry@adacore.com>
5504
5505 * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
5506 (Stop_Bits_Number): New type.
5507 (Parity_Check): Likewise.
5508 (Set): Add parameter to set the number of stop bits and
5509 the parity. Parameter timeout is now a duration instead
5510 of a plain integer.
5511
5512 * g-sercom-linux.adb:
5513 Implement the stop bits and parity support for GNU/Linux.
5514 Fix handling of timeout, it must be given in tenth of seconds.
9e81dbc7 5515
d563d3f0
AC
5516 * g-sercom-mingw.adb:
5517 Implement the stop bits and parity support for Windows.
5518 Use new s-win32.ads unit instead of declaring Win32 services
5519 directly into this body.
5520 Update handling of timeout as now a duration.
5521
5522 * s-win32.ads, s-winext.ads: New files.
5523
55242008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5525 Arnaud Charlet <charlet@adacore.com>
5526
5527 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
5528
5529 s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
5530 s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
5531
5532 * s-osinte-lynxos-3.ads,
5533 (Alternate_Stack): Remove when not needed. Simplify declaration
5534 otherwise.
5535 (Alternate_Stack_Size): New constant.
5536
5537 s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
5538 'Unrestricted_Access.
5539
5540 * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
5541 s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
5542 s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
5543 s-osinte-solaris.ads, s-osinte-vms.ads
5544 (SA_ONSTACK): New constant.
5545 (stack_t): New record type.
5546 (sigaltstack): New imported function.
5547 (Alternate_Stack): New imported variable.
5548 (Alternate_Stack_Size): New constant.
5549
5550 * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
5551
5552 * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
ea081ad7
AC
5553 s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
5554 s-taspri-vms.ads (Task_Address): New subtype of System.Address
d563d3f0
AC
5555 (Task_Address_Size): New constant size of System.Address
5556 (Alternate_Stack_Size): New constant.
5557
5558 * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
5559 (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
5560 Establish the alternate stack if the platform makes use of n alternate
5561 signal stack for stack overflows.
5562 (Create_Task): Take into account the alternate stack in the stack size.
5563 (Initialize): Save the address of the alternate stack into the ATCB for
5564 the environment task.
5565 (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
5566
ea081ad7 5567 * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
d563d3f0
AC
5568
5569 * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
5570
9e81dbc7 5571 * s-intman-posix.adb:
d563d3f0
AC
5572 (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
5573 alternate signal stack for stack overflows.
5574
5575 * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
5576 x86-64, adjust the saved value of the stack pointer if the signal was
5577 raised by a stack checking probe.
5578 (HP-UX section): Use global __gnat_alternate_stack as signal handler
5579 stack and only for SIGSEGV.
5580 (Linux section): Likewise on x86 and x86-64.
5581 [VxWorks section]
5582 (__gnat_map_signal): Now static.
5583 (__gnat_error_handler): Not static any more.
5584 (__gnat_adjust_context_for_raise): New function. Signal context
5585 adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
5586 propagation circuitry.
5587 (__gnat_error_handler): Second argument of a sigaction handler is a
5588 pointer, not an int, and is unused.
5589 Adjust signal context before mapping to exception.
5590 Install signal handlers for LynxOS case.
5591
5592 * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
5593 (Task_Id): Set size to Task_Address_Size
5594 (To_Task_id): Unchecked convert from Task_Address vice System.Address
5595 (To_Address): Unchecked convert to Task_Address vice System.Address
5596
5597 * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
5598 address into the ATCB if the platform makes use of an alternate signal
5599 stack for stack overflows.
5600 (Free_Task): Add call to Finalize_Attributes_Link.
5601 Add argument Relative_Deadline to pass the value specified for
5602 the task. This is not yet used for any target.
5603
5604 * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
5605 the value specified for the task.
5606
56072008-04-08 Arnaud Charlet <charlet@adacore.com>
5608
5609 (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
5610 (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
5611 s-vxwext-rtp.adb): New files.
5612
9e81dbc7 5613 * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
d563d3f0
AC
5614 Minor updates to accomodate changes above.
5615
56162008-04-08 Pascal Obry <obry@adacore.com>
5617
5618 * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
5619 s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
5620 Use new s-win32.ads unit instead of declaration
5621 from s-osinte-mingw.ads.
9e81dbc7 5622
d563d3f0
AC
5623 * s-osinte-mingw.ads:
5624 Move all non tasking based interface to s-win32.ads.
9e81dbc7 5625
d563d3f0
AC
5626 * s-osprim-mingw.adb:
5627 Remove duplicated declarations and use s-win32.ads
5628 unit instead.
5629
56302008-04-08 Vincent Celier <celier@adacore.com>
5631 Arnaud Charlet <charlet@adacore.com>
5632
5633 * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
5634 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
5635 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
5636 mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
5637 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
5638
5639 * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
5640 mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
5641 mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
5642 mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
5643 mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
5644 mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
5645 mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
5646 mlib-tgt-specific-mingw.adb: New names.
5647
9e81dbc7 5648 * Makefile.in:
d563d3f0
AC
5649 On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
5650 Get rid of gnatbl.
5651 (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
5652 Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
5653 Minor updates for VMS
5654
ea081ad7
AC
5655 * gnatbl.c: Removed.
5656
d563d3f0
AC
56572008-04-08 Thomas Quinot <quinot@adacore.com>
5658
5659 * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
5660 g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
5661 gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
5662 a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
5663 s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
5664 ASCII.NUL throughout.
5665
56662008-04-08 Arnaud Charlet <charlet@adacore.com>
5667 Matthew Heaney <heaney@adacore.com>
5668
5669 * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
5670 renaming.
5671
9e81dbc7 5672 * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
d563d3f0
AC
5673 a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
5674 to convention for non-RM specs.
5675 Add descriptive header, and documented each operation
5676 document each operation
5677
56782008-04-08 Robert Dewar <dewar@adacore.com>
5679 Bob Duff <duff@adacore.com>
5680 Gary Dismukes <dismukes@adacore.com>
5681 Ed Schonberg <schonberg@adacore.com>
5682
5683 * alloc.ads: Add entries for Obsolescent_Warnings table
5684
5685 * einfo.ads, einfo.adb: Minor reformatting.
5686 (Is_Discriminal): New subprogram.
5687 (Is_Prival): New subprogram.
5688 (Is_Protected_Component): New subprogram.
5689 (Is_Protected_Private): Removed.
5690 (Object_Ref, Set_Object_Ref): Removed.
5691 (Prival, Set_Prival): Change assertion.
5692 (Privals_Chain, Set_Privals_Chain): Removed.
5693 (Prival_Link, Set_Prival_Link): New subprogram.
5694 (Protected_Operation, Set_Protected_Operation): Removed.
5695 (Protection_Object, Set_Protection_Object): New subprogram.
5696 (Write_Field17_Name): Remove case for Object_Ref.
5697 (Write_Field20_Name): Add case for Prival_Link.
5698 (Write_Field22_Name): Remove case for Protected_Operation,
5699 Privals_Chain.
5700 Add case for Protection_Object.
5701 (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
5702 so clients
5703 (Overlays_Constant): New flag
5704 (Is_Constant_Object): New predicate
5705 (Is_Standard_Character_Type): New predicate
5706 (Optimize_Alignment_Space): New flag
5707 (Optimize_Alignment_Time): New flag
5708 (Has_Postconditions): New flag
5709 (Obsolescent_Warrning): Field removed
5710 (Spec_PPC_List): New field
5711 (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
5712 subprograms to get and set the relative deadline associated to a task.
5713
5714 * exp_attr.adb (May_Be_External_Call): Account for the case where the
5715 Access attribute is part of a named parameter association.
5716 (Expand_Access_To_Protected_Op): Test for the attribute occurring
5717 within an init proc and use that directly as the scope rather than
5718 traversing up to the protected operation's enclosing scope. Only apply
5719 assertion on Is_Open_Scopes in the case the scope traversal is done.
5720 For the init proc case use the address of the first formal (_init) as
5721 the protected object reference.
5722 Implement Invalid_Value attribute
5723 (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
5724 contents of the dispatch table there is no need to duplicate the
5725 itypes associated with record types (i.e. the implicit full view
5726 of private types).
5727 Implement Enum_Val attribute
5728 (Expand_N_Attribute_Reference, case Old): Properly handle appearence
5729 within _Postconditions procedure
5730 (Expand_N_Attribute_Reference, case Result): Implement new attribute
5731
5732 * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
5733 a return statement calls a function that is not available in
5734 configurable runtime.
5735 (Analyze_If_Statement): don't optimize simple True/False cases in -O0
5736 (Expand_Non_Function_Return): Generate call to _Postconditions proc
5737 (Expand_Simple_Function_Return): Ditto
5738
5739 * frontend.adb: Add call to Sem_Aux.Initialize
5740
5741 * sem_aux.ads, sem_aux.adb: New file.
5742
5743 * par-prag.adb: Add entries for pragmas Precondition/Postcondition
5744 Add new Pragma_Relative_Deadline.
5745 Add support for pragmas Check and Check_Policy
5746
5747 * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
5748 (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
5749 (Analyze_Attribute): In case of attributes 'Alignment and 'size add
5750 missing check because they are not allowed in CPP tagged types.
5751 Add Sure parameter to Note_Possible_Modification calls
5752 Add implementation of Invalid_Value attribute
5753 Implement new attribute Has_Tagged_Values
5754 Implement Enum_Val attribute
5755 (Analyze_Attribute, case Range): Set Name_Req True for prefix of
5756 generated attributes.
5757 (Analyze_Attribute, case Result): If prefix of the attribute is
5758 overloaded, it always resolves to the enclosing function.
5759 (Analyze_Attribute, case Result): Properly deal with analysis when
5760 Postconditions are not active.
5761 (Resolve_Attribute, case Result): Properly deal with appearence during
5762 preanalysis in spec.
5763 Add processing for attribute Result
5764
5765 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
5766 for operators.
5767 (Analyze_Subprogram_Body): Install private_with_clauses when the body
5768 acts as a spec.
5769 (Check_Inline_Pragma): recognize an inline pragma that appears within
5770 the subprogram body to which it applies.
5771 (Analyze_Function_Return): Check that type of the expression of a return
5772 statement in a function with a class-wide result is not declared at a
5773 deeper level than the function.
5774 (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
5775 (Verify_Overriding_Indicator): Handle properly subprogram bodies for
5776 user- defined operators.
5777 (Install_Formals): Moved to spec to allow use from Sem_Prag for
5778 analysis of precondition/postcondition pragmas.
5779 (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
5780 Last_Formal, along with lots of comments on what this is about
5781 (Analyze_Subprogram_Body): Fix case where we move entities from the
5782 spec to the body when there are no body entities (now possible with
5783 precondition and postcondition pragmas).
5784 (Process_PPCs): New procedure
5785 (Analyze_Subprogram_Body): Add call to Process_PPCs
5786
5787 * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
5788 clause.
5789 (Pop_Scope): Restore Check_Policy_List on scope exit
5790 (Push_Scope): Save Check_Policy_List on scope entry
5791 Change name In_Default_Expression => In_Spec_Expression
5792 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5793 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5794 (Analyze_Object_Renaming): Allow 'Reference as object
5795 (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
5796 (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
5797 of restriction identifier.
5798 Add Sure parameter to Note_Possible_Modication calls
5799
5800 * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
5801 Don't check for primitive operations when calling Rep_Item_Too_Late.
5802 (Process_Import_Or_Interface): Do not place flag on formal
5803 subprograms.
5804 (Analyze_Pragma, case Export): If the entity is a deferred constant,
5805 propagate information to full view, which is the one elaborated by the
5806 back-end.
5807 (Make_Inline): the pragma is effective if it applies to an internally
5808 generated subprogram declaration for a body that carries the pragma.
5809 (Analyze_Pragma, case Optimize_Alignment): Set new flag
5810 Optimize_Alignment_Local.
5811 (Analyze_PPC_In_Decl_Part): New procedure
5812 (Get_Pragma_Arg): Moved to outer level
5813 (Check_Precondition_Postcondition): Change to allow new visibility
5814 rules for package spec
5815 (Analyze_Pragma, case Check_Policy): Change placement rules to be
5816 same as pragma Suppress/Unsuppress.
5817 Change name In_Default_Expression => In_Spec_Expression
5818 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5819 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5820 (Check_Precondition_Postcondition): Do proper visibility preanalysis
5821 for the case of these pragmas appearing in the spec.
5822 (Check_Enabled): New function
5823 (Initialize): New procedure
5824 (Tree_Read): New procedure
5825 (Tree_Write): New procedure
5826 (Check_Precondition_Postcondition): New procedure
5827 Implement pragmas Check and Check_Policy
5828 Merge Assert processing with Check
5829
5830 * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
5831 New warning flag -gnatw.e
5832
5833 * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
5834 returning whether a task (or main procedure) has a pragma
5835 Relative_Deadline.
5836 (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
5837 (or main procedure) has a pragma Relative_Deadline.
5838 Add Next_Pragma field to N_Pragma node
5839 (PPC_Enabled): New flag
5840 (Next_Pragma): Now used for Pre/Postcondition processing
5841
5842 * snames.h, snames.ads, snames.adb: New standard name
5843 Inherit_Source_Path
5844 Add entry for 'Invalid_Value attribute
5845 Add entry for new attribute Has_Tagged_Values
5846 Add entry for Enum_Val attribute
5847 Add new standard names Aggregate, Configuration and Library.
5848 Add _Postconditions
5849 Add _Result
5850 Add Pragma_Precondition
5851 Add Pragma_Postcondition
5852 Add Attribute_Result
5853 New standard name Archive_Builder_Append_Option
5854 (Preset_Names): Add _relative_deadline and relative_deadline definitions
5855 There was also a missing non_preemptive_within_priorities.
5856 (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
5857 Relative_Deadline.
5858 Add support for pragmas Check and Check_Policy
5859
5860 * tree_gen.adb: Call Sem_Aux.Tree_Write
5861
5862 * tree_in.adb: Call Sem_Aux.Tree_Read
5863
5864 * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
5865 sequence
5866
5867 * exp_intr.adb (Expand_Source_Info): New Build_Location calling
5868 sequence
5869
5870 * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
5871 (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
5872 Relative_Deadline.
5873 (Expand_Pragma_Check): New procedure
5874
5875 * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
5876 buffer.
5877
5878 * sinfo.adb (PPC_Enabled): New flag
5879
58802008-04-08 Robert Dewar <dewar@adacore.com>
5881 Gary Dismukes <dismukes@adacore.com>
5882 Javier Miranda <miranda@adacore.com>
5883 Ed Schonberg <schonberg@adacore.com>
5884
5885 * fe.h: Remove global Optimize_Alignment flag, no longer used
5886
5887 * layout.adb: Test Optimize_Alignment flags rather than global switch
5888
5889 * lib.ads, lib.adb: New OA_Setting field in library record
5890
5891 * lib-load.adb: New OA_Setting field in library record
5892
5893 * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
5894 units mentioned in limited_with_ clauses in the ali file, with an
5895 'Y' marker.
5896 New Ox fields in U line
5897
5898 * opt.adb: New flag Optimize_Alignment_Local
5899 (Check_Policy_List[_Config]): New flags
5900
5901 * opt.ads (Invalid_Value_Used): New flag
5902 New switch Optimize_Alignment_Local
5903 (Warn_On_Parameter_Order): New flag
5904 (Check_Policy_List[_Config]): New flags
5905
5906 * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
5907 limited_with clauses.
5908 New data structures for Optimize_Alignment
5909
5910 * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
5911 New procedure
5912 (Check_Consistent_Optimize_Alignment): Rework for new structure
5913 (Check_Consistent_Restrictions): Fix incorrect error message
5914
5915 sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
5916 created class-wide type (to the Parent field of the specific type).
5917 (Install_Siblings): Handle properly private_with_clauses on subprogram
5918 bodies and on generic units.
5919 (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
5920 illegal limited_with_clause that names a non-existent package.
5921 (Check_Body_Required): Determine whether a unit named a limited_with
5922 clause needs a body.
5923 (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
5924 Capture Optimize_Alignment settings to set new OA_Setting field in
5925 library record.
5926 (Build_Limited_Views): Include task and protected type declarations.
5927
5928 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
5929 case of a possible constant redeclaration where the current object is
5930 an entry index constant.
5931 (Analyze_Object_Declaration): Generate an error in case of CPP
5932 class-wide object initialization.
5933 (Analyze_Object_Declaration): Add extra information on warnings for
5934 declaration of unconstrained objects.
5935 (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
5936 conflicts with the setting of Stored_Constraint in the case where the
5937 access type entity has already been created as an E_Incomplete_Type due
5938 to a limited with clause.
5939 Use new Is_Standard_Character_Type predicate
5940 (Analyze_Object_Declaration): Apply access_constant check only after
5941 expression has been resolved, given that it may be overloaded with
5942 several access types.
5943 (Constant_Redeclaration): Additional legality checks for deferred
5944 constant declarations tha involve anonymous access types and/or null
5945 exclusion indicators.
5946 (Analyze_Type_Declaration): Set Optimize_Alignment flags
5947 (Analyze_Subtype_Declaration): Ditto
5948 (Analyze_Object_Declaration): Ditto
5949 (Analyze_Object_Declaration): Don't count tasks in generics
5950 Change name In_Default_Expression => In_Spec_Expression
5951 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5952 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5953 (Process_Discriminants): Additional check for illegal use of default
5954 expressions in access discriminant specifications in a type that is not
5955 explicitly limited.
5956 (Check_Abstract_Overriding): If an inherited function dispaches on an
5957 access result, it must be overridden, even if the type is a null
5958 extension.
5959 (Derive_Subprogram): The formals of the derived subprogram have the
5960 names and defaults of the parent subprogram, even if the type is
5961 obtained from the actual subprogram.
5962 (Derive_Subprogram): In the presence of interfaces, a formal of an
5963 inherited operation has the derived type not only if it descends from
5964 the type of the formal of the parent operation, but also if it
5965 implements it. This is relevant for the renamings created for the
5966 primitive operations of the actual for a formal derived type.
5967 (Is_Progenitor): New predicate, to determine whether the type of a
5968 formal in the parent operation must be replaced by the derived type.
5969
5970 * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
5971 predicate recursive to handle components that have a user-defined
5972 Initialize procedure. Handle controlled derived types whose ancestor
5973 has a user-defined Initialize procedured.
5974 (Note_Possible_Modification): Add Sure parameter, generate warning if
5975 sure modification of constant
5976 Use new Is_Standard_Character_Type predicate
5977 (Find_Parameter_Type): when determining whether a protected operation
5978 implements an interface operation, retrieve the type of the formal from
5979 the entity when the formal is an access parameter or an
5980 anonymous-access-to-subprogram.
5981 Move Copy_Parameter_List to sem_util, for use when building stubbed
5982 subprogram bodies.
5983 (Has_Access_Values): Tagged types now return False
5984 (Within_HSS_Or_If): New procedure
5985 (Set_Optimize_Alignment_Flags): New procedure
5986 Change name In_Default_Expression => In_Spec_Expression
5987 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5988 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5989
59902008-04-08 Tristan Gingold <gingold@adacore.com>
5991
5992 * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
5993
59942008-04-08 Tristan Gingold <gingold@adacore.com>
5995
5996PR ada/10768
5997
5998 * cuintp.c: Fix 16 bits issue for AVR.
5999 On AVR, integer is 16 bits, so it can't be used to do math with
6000 Base (=32768).
6001 So use long_integer instead.
6002
60032008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6004
6005 * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
6006 System.OS_Primitives.
6007 Change type of various constants, parameters and local variables from
6008 Time to representation type OS_Time.
6009 (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
6010 Remove the declaration of constant Mili_F from several routines. New
6011 body for internal package Conversions_Operations.
6012 (Time_Of): Add default parameters for several formals.
6013
6014 * a-caldel.adb: Minor reformatting
6015
6016 * a-calend.ads, a-calend.adb: New body for internal package
6017 Conversions_Operations.
6018 (Time_Of): Add default parameters for several formals.
6019
6020 * Makefile.rtl: Add a-ststop
6021 Add Ada.Calendar.Conversions to the list of runtime files.
6022 Add g-timsta
6023
6024 * a-calcon.adb, a-calcon.ads: New files.
6025
60262008-04-08 Jose Ruiz <ruiz@adacore.com>
6027 Tristan Gingold <gingold@adacore.com>
6028
6029 * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
6030 (Install_Restricted_Handlers): New procedure
6031 which is a simplified version of Install_Handlers that does not store
6032 previously installed.
6033
6034 * s-interr-vxworks.adb: Fix ACATS cxc3001
6035 On VxWorks interrupts can't be detached.
6036 (Install_Restricted_Handlers): New procedure.
6037
6038 * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
6039 procedure.
6040
60412008-04-08 Olivier Hainque <hainque@adacore.com>
6042
6043 * s-intman-vxworks.ads, s-intman-vxworks.adb
6044 (Map_And_Raise_Exception): Remove. Was an import of only part of the
6045 required services already implemented elsewhere.
6046 (Notify_Exception): Delete body, import __gnat_error_handler instead.
6047 (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
6048 argument passed to the handler, which we need for ZCX propagation
6049 purposes.
6050
60512008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6052
6053 * adaint.h, adaint.c (__gnat_current_time_string): New routine.
6054
6055 * g-timsta.adb, g-timsta.ads: New files.
6056
60572008-04-08 Robert Dewar <dewar@adacore.com>
6058
6059 * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
6060 (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
6061 (Raise_Exception_Always): Fix documentation accordingly
6062
60632008-04-08 Robert Dewar <dewar@adacore.com>
6064
6065 * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
6066 Stream_Convert)
6067
6068 * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
6069 FOnly
6070
60712008-04-08 Javier Miranda <miranda@adacore.com>
6072 Robert Dewar <dewar@adacore.com>
6073 Ed Schonberg <schonberg@adacore.com>
6074
6075 * a-tags.adb (Register_Interface_Offset): New subprogram.
6076 (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
6077 (To_Predef_Prims_Table_Ptr): Removed.
6078 (Acc_Size): Removed.
6079 (To_Acc_Size): Removed.
6080 (Parent_Size): Modified to the call the subprogram returning the size of
6081 the parent by means of the new TSD component Size_Func.
6082
6083 * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
6084 (DT_Offset_To_Top_Offset): New constant value that is used to generate
6085 code referencing the Offset_To_Top component of the dispatch table's
6086 prologue.
6087 (Prim_Ptr): New declaration of access to procedure. Used to avoid the
6088 use of 'address to initialize dispatch table slots.
6089 (Size_Func): New component of the TSD. Used by the run-time to call the
6090 size primitive of the tagged type.
6091
6092 * checks.adb (Apply_Access_Check): Avoid check when accessing the
6093 Offset_To_Top component of a dispatch table.
6094 (Null_Exclusion_Static_Checks): If the non-null access type appears in a
6095 deferred constant declaration. do not add a null expression, to prevent
6096 spurious errors when full declaration is analyzed.
6097 (Apply_Discriminant_Check): If both discriminant constraints share a
6098 node which is not static but has no side effects, do not generate a
6099 check for that discriminant.
6100 (Generate_Index_Checks): Set Name_Req to true in call to duplicate
6101 subexpr, since the prefix of an attribute is a name.
6102
6103 * checks.ads: Fix nit in comment.
6104
6105 * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
6106 and body of predefined primitives in case of CPP tagged type
6107 derivations.
6108 (Freeze_Type): Deal properly with no storage pool case
6109 (Make_Predefined_Primitive_Specs): Generate specification of abstract
6110 primitive Deep_Adjust if a nonlimited interface is derived from a
6111 limited interface.
6112 (Build_Dcheck_Functions): Create discriminant-checking functions only
6113 for variants that have some component(s).
6114 (Build_Slice_Assignment): In expanded code for slice assignment, handle
6115 properly the case where the slice bounds extend to the last value of the
6116 underlying representation.
6117 (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
6118 (Is_Variable_Size_Record): An array component has a static size if
6119 index bounds are enumeration literals.
6120
6121 * exp_disp.adb (Make_DT): Use the first subtype to determine whether
6122 an external tag has been specified for the type.
6123 (Building_Static_DT): Add missing support for private types.
6124 (Make_DT): Add declaration of Parent_Typ to ensure consistent access
6125 to the entity associated with the parent of Typ. This is done to
6126 avoid wrong access when the parent is a private type.
6127 (Expand_Interface_Conversion): Improve error message when the
6128 configurable runtime has no support for dynamic interface conversion.
6129 (Expand_Interface_Thunk): Add missing support to interface types in
6130 configurable runtime.
6131 (Expand_Dispatching_Call): remove obsolete code.
6132 (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
6133 ensure that all subtypes and aggregates associated with dispatch
6134 tables have the attribute Is_Dispatch_Table_Entity set to true.
6135 (Register_Primitive): Rename one variable to improve code reading.
6136 Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
6137 of the pointer to the 'size primitive in the TSD.
6138
6139 * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
6140 (RE_Offset_To_Top_Ptr): New entity.
6141 (RE_Register_Interface_Offset): New entity.
6142 (RE_Set_Dynamic_Offset_To_Top): New entity.
6143 (RE_Set_Offset_To_Top): Removed entity.
6144 (RE_Prim_Ptr): New entity
6145 (RE_Size_Func): New entity
6146 (RE_Size_Ptr): New entity
6147 (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
6148 (Ada_Dispatching_Child): Define this new subrange.
6149 (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
6150 RE_Time_Span, and RE_Time_Span_Zero).
6151 (RE_Unit_Table): Add new required run-time calls
6152
6153 * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
6154 children.
6155
6156 * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
6157 (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
6158 initializes the Offset_To_Top component of a dispatch table.
6159 (Build_Predef_Prims): Removed.
6160 (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
6161 its actual code.
6162 (Build_Set_Size_Function): New subprogram.
6163
6164 * exp_ch13.adb: Do not generate storage variable for storage_size zero
6165 (Expand): Handle setting/restoring flag Inside_Freezing_Actions
6166
61672008-04-08 Robert Dewar <dewar@adacore.com>
6168
6169 * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
6170 computing Fore when Exp > 0
6171
61722008-04-08 Robert Dewar <dewar@adacore.com>
6173
6174 * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
6175
6176 * errout.adb: Remove Big_String_Ptr declarations (now in Types)
6177 Change name Is_Style_Msg to Is_Style_Or_Info_Msg
6178
6179 * fmap.adb: Remove Big_String declarations (now in Types)
6180 (No_Mapping_File): New Boolean global variable
6181 (Initialize): When mapping file cannot be read, set No_Mapping_File to
6182 False.
6183 (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
6184 tables were empty before adding entries, open the mapping file
6185 with Truncate = True, instead of delete/re-create.
6186
6187 * fname-sf.adb: Remove Big_String declarations (now in Types)
6188
6189 * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
9e81dbc7 6190 s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
d563d3f0
AC
6191 big pointer types
6192
6193 * table.ads: Add for Table_Ptr'Storage_Size use 0
6194
6195 * types.ads: Add Big_String declarations
6196 Add Size_Clause of zero for big pointer types
6197
61982008-04-08 Vincent Celier <celier@adacore.com>
6199
6200 * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
6201 (Usage): Add line for switch --subdirs=
6202 Add new switch -eL, to follow symbolic links when processing project
6203 files.
6204
6205 * gnatcmd.adb: Process switches -eL and --subdirs=
6206 (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
6207 Program_Name to get proper tool names when AAMP_On_Target is set.
6208 (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
6209 AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
6210 Osint.Program_Name).
6211
6212 * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
6213 (Usage): Add lines for switches -eL and --subdirs=
6214
6215 * makeusg.adb: Add line for switch --subdirs=
6216
9e81dbc7 6217 * prj.ads:
d563d3f0
AC
6218 (Source_Data): New Boolean component Compiled, defaulted to True
6219 (Empty_File_Name: New global variable in private part, initialized in
6220 procedure Initialize.
6221 (Subdirs_Option): New constant string
6222 (Subdirs): New String_Ptr global variable
6223 (Language_Config): New component Include_Compatible_Languages
6224 (Project_Qualifier): New type for project qualifiers
6225 (Project_Data): New component Qualifier
6226 (Project_Configuration): New component Archive_Builder_Append_Option
6227
6228 * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
6229 another imported project indicate the name of this imported project.
6230 (Check_File): When a unit is in two project files, indicate the project
6231 names and the paths of the source files for each project.
6232 (Add_Source): Set Compiled to False if compiler driver is empty. Only
6233 set object, dependency and switches file names if Compiled is True.
6234 (Process_Compiler): Allow the empty string for value of attribute Driver
6235 (Get_Directories): When Subdirs is not null and Object_Dir is not
6236 specified, locate and create if necessary the actual object dir.
6237 (Locate_Directory): When Subdirs is not empty and Create is not the
6238 empty string, locate and create if necessary the actual directory
6239 as a subdirectory of directory Name.
6240 (Check_Library_Attributes.Check_Library): Allow a project where the only
6241 "sources" are header files of file based languages to be imported by
6242 library projects, in multi-language mode (gprbuild).
6243 (Check_Library_Attributes.Check_Library): In multi-language mode
6244 (gprbuild), allow a library project to import a project with no
6245 sources, even when this is not declared explicitly.
6246 (Check_If_Externally_Built): A virtual project extending an externally
6247 built project is also externally built.
6248 (Check_Library_Attributes): For a virtual project extending a library
6249 project, inherit the library directory.
6250 (Process_Project_Level_Array_Attributes): Process new attribute
6251 Inherit_Source_Path.
6252 For projects with specified qualifiers "standard", "library" or
6253 "abstract", check that the project conforms to the qualifier.
6254 (Process_Project_Level_Simple_Attributes): Process new attribute
6255 Archive_Builder_Append_Option.
6256
6257 * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
6258 (Normalize_Compiler_Switches): Only keep compiler switches that are
6259 passed to gnat1 by the gcc driver and that are stored in the ALI file
6260 by gnat1.
6261 Do not take into account switc -save-temps
6262
6263 * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
6264 gprmake is called with -eL.
6265 (Scan_Arg): Recognize switch -eL
6266 (Usage): Add line for switch -eL
6267
6268 * prj.adb (Initialize): Initialize Empty_File_Name
6269 (Project_Empty): New component Qualifier
6270
6271 * prj-attr.ads, prj-attr.adb: New project level attribute
6272 Inherit_Source_Path.
6273 New project level attribute Archive_Builder_Append_Option
6274
6275 * prj-dect.adb: Replace System.Strings by GNAT.Strings.
6276
6277 * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
6278 <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
6279 upward compatibility.
6280
6281 * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
6282 each Trying ..." on different lines.
6283 (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
6284 is "configuration" when not in configuration. Fail when in configuration
6285 when a specified qualifier is other than "configuration".
6286
6287 * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
6288 full associative array together.
6289 (Recursive_Process): Put the project qualifier in the project data
9e81dbc7 6290
d563d3f0
AC
6291 * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
6292 (Set_Project_Qualifier_Of): New procedure
6293
62942008-04-08 Robert Dewar <dewar@adacore.com>
6295
6296 * errout.ads: Update comments for new handling of info: messages
6297
6298 * erroutc.adb (Matches): New procedure
6299 (Warning_Specifically_Suppressed): Modified to handle multiple * chars
6300 (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
6301 info messages as well as style messages.
6302
6303 * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
6304
6305 * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
6306 subprograms.
6307 (Check_A_Call): Special "info: " warnings now have ? in the text
6308 (Elab_Warning): Use info message in static case
6309
63102008-04-08 Ed Schonberg <schonberg@adacore.com>
6311
6312 * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
6313 whether an array aggregate with static bounds and scalar components
6314 should be expanded into a static constant.
6315
63162008-04-08 Gary Dismukes <dismukes@adacore.com>
6317 Ed Schonberg <schonberg@adacore.com>
6318 Robert Dewar <dewar@adacore.com>
6319
6320 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
6321 Has_Stream_Attribute_ Definition when checking for available stream
6322 attributes on parameters of a limited type in Ada 2005. Necessary for
6323 proper recognition of visible stream attribute clauses.
6324 (Has_Stream_Attribute_Definition): If the type is derived from a
6325 private type, then use the derived type's underlying type for checking
6326 whether it has stream attributes.
6327 (Validate_Object_Declaration): The check for a user-defined Initialize
6328 procedure applies also to types with controlled components or a
6329 controlled ancestor.
6330 Reject an object declaration in a preelaborated unit if the type is a
6331 controlled type with an overriding Initialize procedure.
6332 (Validate_Remote_Access_To_Class_Wide_Type): Return without further
6333 checking when the parent of a dereference is a selected component and
6334 the name has not been analyzed.
6335
6336 * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
6337 prefixes that are invalid explicit dereferences of remote
6338 access-to-class-wide values, first checking whether the selected
6339 component is a prefixed form of call to a tagged operation.
6340 (Analyze_Call): Remove code that issues an error for limited function
6341 calls in illegal contexts, as we now support all of the contexts that
6342 were forbidden here.
6343 Allow a function call that returns a task.and appears as the
6344 prefix of a selected component.
6345 (Analyze_Reference): Give error message if we try to make a 'Reference
6346 for an object that is atomic/aliased without its type having the
6347 corresponding attribute.
6348 (Analyze_Call): Remove condition checking for attributes to allow
6349 calls to functions with inherently limited results as prefixes of
6350 attributes. Remove related comment about Class attributes.
6351 (Analyze_Selected_Component): If the prefix is a remote type, check
6352 whether this is a prefixed call before reporting an error.
6353 (Complete_Object_Operation): If the controlling formal is an access to
6354 variable reject an actual that is a constant or an access to one.
6355 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
6356 primitive operations from base type.
6357
6358 * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
6359 build-in-place
6360 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
6361 (Expand_N_Selected_Component): Test for prefix that is a build-in-place
6362 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
6363 (Expand_N_Slice): Test for prefix that is a build-in-place function call
6364 and call Make_Build_In_Place_Call_In_Anonymous_Context.
6365 (Analyze_Call): Remove code that issues an error for limited function
6366 calls in illegal contexts, as we now support all of the contexts that
6367 were forbidden here.
6368 New calling sequence for Get_Simple_Init_Val
6369 (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
6370 (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
6371
63722008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6373 Ed Schonberg <schonberg@adacore.com>
6374 Robert Dewar <dewar@adacore.com>
6375
6376 * exp_ch2.adb: Minor reformatting.
6377 (Expand_Entry_Index_Parameter): Set the type of the identifier.
6378 (Expand_Entry_Reference): Add call to Expand_Protected_Component.
6379 (Expand_Protected_Component): New routine.
6380 (Expand_Protected_Private): Removed.
6381 Add Sure parameter to Note_Possible_Modification calls
6382
6383 * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
6384 generated subprogram declaration must inherit the overriding indicator
6385 from the instantiation node.
6386 (Validate_Access_Type_Instance): If the designated type of the actual is
6387 a limited view, use the available view in all cases, not only if the
6388 type is an incomplete type.
6389 (Instantiate_Object): Actual is illegal if the formal is null-excluding
6390 and the actual subtype does not exclude null.
6391 (Process_Default): Handle properly abstract formal subprograms.
6392 (Check_Formal_Package_Instance): Handle properly defaulted formal
6393 subprograms in a partially parameterized formal package.
6394 Add Sure parameter to Note_Possible_Modification calls
6395 (Validate_Derived_Type_Instance): if the formal is non-limited, the
6396 actual cannot be limited.
6397 (Collect_Previous_Instances): Generate instance bodies for subprograms
6398 as well.
6399
6400 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
6401 try to set RM_Size.
6402 Add Sure parameter to Note_Possible_Modification calls
6403 (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
6404 (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
6405 constant overlaid by variable and issue warning.
6406 Use new Is_Standard_Character_Type predicate
6407 (Analyze_Record_Representation_Clause): Check that the specified
6408 Last_Bit is not less than First_Bit - 1.
6409 (Analyze_Attribute_Definition_Clause, case Address): Check for
6410 self-referential address clause
6411
6412 * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
6413 detection mechanism when the lhs is a prival.
6414 (Analyze_Assignment): Call Check_Unprotected_Access to detect
6415 assignment of a pointer to protected data, to an object declared
6416 outside of the protected object.
6417 (Analyze_Loop_Statement): Check for unreachable code after loop
6418 Add Sure parameter to Note_Possible_Modication calls
6419 Protect analysis from previous syntax error such as a scope mismatch
6420 or a missing begin.
6421 (Analyze_Assignment_Statement): The assignment is illegal if the
6422 left-hand is an interface.
6423
ea081ad7
AC
6424 * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
6425 violation of restriction No_Implicit_Conditionals
d563d3f0
AC
6426 Add Sure parameter to Note_Possible_Modication calls
6427 Use new Is_Standard_Character_Type predicate
6428 (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
6429 call as operator. Fixes problems (e.g. validity checking) which
6430 come from the result looking as though it does not come from source).
6431 (Resolve_Call): Check case of name in named parameter if style checks
6432 are enabled.
6433 (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
6434 from the checking that such calls should not occur from an entry body.
6435 (Resolve_Call): If the return type of an Inline_Always function
6436 requires the secondary stack, create a transient scope for the call
6437 if the body of the function is not available for inlining.
6438 (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
6439 that are actuals for in-out formals.
6440 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
6441 primitive operations from base type.
6442 (Analyze_Selected_Component): If the context is a call to a protected
6443 operation the parent may be an indexed component prior to expansion.
6444 (Resolve_Actuals): If an actual is of a protected subtype, use its
6445 base type to determine whether a conversion to the corresponding record
6446 is needed.
6447 (Resolve_Short_Circuit): Handle pragma Check
6448
6449 * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
6450 Use new Is_Standard_Character_Type predicate
6451 (Eval_Relational_Op): Catch more cases of string comparison
6452
64532008-04-08 Robert Dewar <dewar@adacore.com>
6454 Gary Dismukes <dismukes@adacore.com>
6455
6456 * s-rident.ads: Add No_Default_Initialization restriction
6457
9e81dbc7 6458 * exp_tss.adb:
d563d3f0
AC
6459 (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
6460 (Set_TSS): Handle No_Default_Initialization case
6461
6462 * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
6463 No_Default_Initialization
6464 (Expand_N_Subprogram_Body): Remove redundant initialization of out
6465 parameters when Normalize_Scalars is active.
6466 (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
6467 Fix casing error in formal parameter name in call
6468 (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
6469 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
6470 dispatching call on VM targets.
6471
64722008-04-08 Gary Dismukes <dismukes@adacore.com>
6473 Thomas Quinot <quinot@adacore.com>
6474
6475 * exp_ch7.adb (Find_Final_List): Change the test for generating a
6476 selected component from an access type's Associated_Final_Chain to
6477 check for the presence of that field, rather than assuming it exists
6478 for all named access types.
6479 (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
6480 procedure to call at the end of the generated cleanup procedure.
6481 (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
6482 and an At_End_Proc already exists in the handled sequence of statements
6483 for which cleanup actions are being expanded, the original cleanup
6484 action must be preserved.
6485
64862008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6487 Ed Schonberg <schonberg@adacore.com>
6488 Robert Dewar <dewar@adacore.com>
6489 Gary Dismukes <dismukes@adacore.com>
6490
6491 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
6492 Build_Unprotected_Subprogram_Body): Generate debug info for
6493 declarations related to the handling of private data in task and
6494 protected types.
6495 (Debug_Private_Data_Declarations): New subprogram.
6496 (Install_Private_Data_Declarations): Remove all debug info flagging.
6497 This is now done by Debug_Private_Data_Declarations at the correct
6498 stage of expansion.
6499 (Build_Simple_Entry_Call): If the task name is a function call, expand
6500 the prefix into an object declaration, and make the surrounding block a
6501 task master.
6502 (Build_Master_Entity): An internal block is a master if it wraps a call.
6503 Code reformatting, update comments. Code clean up.
6504 (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
6505 (Replicate_Entry_Formals): If the formal is an access parameter or
6506 anonymous access to subprogram, copy the original tree to create new
6507 entities for the formals of the subprogram.
6508 (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
6509 for tasks to store the value passed using pragma Relative_Deadline.
6510 (Make_Task_Create_Call): Add the Relative_Deadline argument to the
6511 run-time call to create a task.
6512 (Build_Wrapper_Spec): If the controlling argument of the interface
6513 operation is an access parameter with a non-null indicator, use the
6514 non-null indicator on the wrapper.
6515
6516 * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
6517 present, which it may not be in the case where the type entity is an
6518 incomplete view brought in by a limited with.
6519 (Analyze_Task_Type): Only retrieve the full view when present, which it
6520 may not be in the case where the type entity is an incomplete view brought
6521 in by a limited with.
6522 (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
6523 private components of a protected type, to prevent the generation of freeze
6524 nodes for which there is no proper scope of elaboration.
6525
6526 * exp_util.ads, exp_util.adb
6527 (Remove_Side_Effects): If the expression is a function call that returns a
6528 task, expand into a declaration to invoke the build_in_place machinery.
6529 (Find_Protection_Object): New routine.
6530 (Remove_Side_Effects): Also make a copy of the value
6531 for attributes whose result is of an elementary type.
6532 (Silly_Boolean_Array_Not_Test): New procedure
6533 (Silly_Boolean_Array_Xor_Test): New procedure
6534 (Is_Volatile_Reference): New function
6535 (Remove_Side_Effects): Use Is_Volatile_Reference
6536 (Possible_Bit_Aligned_Component): Handle slice case properly
6537
6538 * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
6539 case test to Exp_Util
6540 (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
6541
65422008-04-08 Thomas Quinot <quinot@adacore.com>
6543
6544 * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
6545 in call
6546 (Add_RACW_Features): When processing an RACW in another unit than the
6547 main unit, set Body_Decls to No_List to indicate that the bodies of
6548 the type's TSS must not be generated.
6549 (GARLIC_Support.Add_RACW_Read_Attribute,
6550 GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
6551 Body_Decls is No_List.
6552 (PolyORB_Support.Add_RACW_Read_Attribute,
6553 PolyORB_Support.Add_RACW_Write_Attribute,
6554 PolyORB_Support.Add_RACW_From_Any,
6555 PolyORB_Support.Add_RACW_To_Any,
6556 PolyORB_Support.Add_RACW_TypeCode): Same.
6557 (Transmit_As_Unconstrained): New function.
6558 (Build_Ordered_Parameters_List): Use the above to order parameters.
6559 (GARLIC_Support.Build_General_Calling_Stubs):
6560 Use the above to determine which parameters to unmarshall using 'Input
6561 at the point where their temporary is declared (as opposed to later on
6562 with a 'Read call).
6563 (PolyORB_Support.Build_General_Calling_Stubs):
6564 Use the above to determine which parameters to unmarshall using From_Any
6565 at the point where their temporary is declared (as opposed to later on
6566 with an assignment).
6567
65682008-04-08 Ed Schonberg <schonberg@adacore.com>
6569
6570 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
6571 an Input function for an access type, do not perform default
6572 initialization on the local variable that receives the value, to
6573 prevent spurious warnings when the type is null-excluding.
6574
65752008-04-08 Robert Dewar <dewar@adacore.com>
6576 Ed Schonberg <schonberg@adacore.com>
6577
6578 * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
6579 units.
6580 (Size_Known): Generic formal scalar types have known at compile
6581 time size, so remove check.
6582 Fix casing error in formal parameter name in call
6583 (Freeze_Subprogram): If the subprogram is a user-defined operator,
6584 recheck its overriding indication.
6585
65862008-04-08 Vincent Celier <celier@adacore.com>
6587
6588 * gnat1drv.adb: Send all messages indicating an error to standard error
6589
65902008-04-08 Robert Dewar <dewar@adacore.com>
6591
6592 * gnatbind.adb (Restriction_Could_Be_Set): New procedure
6593 (List_Applicable_Restrictions): Do not list existing restrictions
6594
65952008-04-08 Thomas Quinot <quinot@adacore.com>
6596
6597 * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
6598 add a pointer to generic sockets literature
6599 do not mention that the given example is "typical" usage.
6600 Remove obsolete comment about multicast not being supported on Windows.
6601 (Connect_Socket): Make Server mode IN rather than IN OUT
6602 since this formal is never modified.
6603
66042008-04-08 Robert Dewar <dewar@adacore.com>
6605
6606 * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
6607 the declaration for some different entity.
6608 (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
6609 list is precent (following the parent subtype indication), display
6610 appropriate "and" keyword.
6611
6612 * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
6613 Remove unnecessary calls to Init_Size_Align and Init_Esize.
6614 Add notes on use of Parent field of an Itype
6615
66162008-04-08 Ed Schonberg <schonberg@adacore.com>
6617 Robert Dewar <dewar@adacore.com>
6618 Gary Dismukes <dismukes@adacore.com>
6619
6620 * lib-xref.adb (Is_On_LHS): Remove dead code
6621 (Output_Overriden_Op): If the overridden operation is itself inherited,
6622 list the ancestor operation, which is the one whose body or absstract
6623 specification is actually being overridden. For source navigation
6624 purposes.
6625
6626 * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
6627 operation is primitive for the type.
6628 (Declare_Inherited_Private_Subprograms): If the new operation overrides
6629 an inherited private subprogram, set properly the Overridden_Operation
6630 attribute, for better cross-reference information.
6631 (Analyze_Package_Specification): Do late analysis of spec PPCs
6632 (Install_Private_Declaration, Uninstall_Declarations): Save/restore
6633 properly the full view and underlying full views of a private type in a
6634 child unit, whose full view is derived from a private type in a parent
6635 unit, and whose own full view becomes visible in the child body.
6636
6637 * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
6638 primitive operation after the type has been frozen, add an explicit
6639 reference to the type and the operation, because other primitive
6640 references have been emitted already.
6641 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
6642 dispatching call on VM targets.
6643
66442008-04-08 Vincent Celier <celier@adacore.com>
6645 Thomas Quinot <quinot@adacore.com>
6646
6647 * make.adb: (Gnatmake_Called): Remove, no longer necessary
6648 (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
6649 is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
6650 (Insert_Project_Sources): Take into account index in multi-unit source
6651 files.
6652 After building a library project, delete all temporary files.
6653 (Initialize): Reset current output after parsing project file.
6654 (Collect_Arguments_And_Compile): Never insert in the queue the sources
6655 of library projects that are externally built.
6656 Put file name in error and inform messages if -df is used
6657 (Display): If invoked with -d7, do not display path names, but only
6658 file names.
6659
6660 * makeutl.ads (Path_Or_File_Name): New function
6661 (Path_Or_File_Name): New function
6662
66632008-04-08 Arnaud Charlet <charlet@adacore.com>
6664
6665 * Make-lang.in: Disable warnings during first stage of bootstrap
6666 Get rid of gnatbl.
6667 Update dependencies.
6668
66692008-04-08 Vincent Celier <celier@adacore.com>
6670
6671 * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
6672 case to decide if ALI object file is included in library.
6673 (Build_Library): Never attempt to build a library if the project is
6674 externally built.
6675
66762008-04-08 Thomas Quinot <quinot@adacore.com>
6677
6678 * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
6679 (No_List) is defined to return Empty.
6680
66812008-04-08 Jose Ruiz <ruiz@adacore.com>
6682
6683 * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
6684 documentation.
6685 Update comments.
6686 (Read_Default_Search_Dirs): Do not consider spaces as path separators
6687 because spaces may be part of legal paths.
6688
66892008-04-08 Robert Dewar <dewar@adacore.com>
6690
6691 * par-ch11.adb (P_Exception_Handler): Check indentation level for
6692 handler
6693
66942008-04-08 Ed Schonberg <schonberg@adacore.com>
6695
6696 * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
6697 in a type declaration, if this is not an interface declaration or
6698 private type extension.
6699
67002008-04-08 Vincent Celier <celier@adacore.com>
6701
6702 * prj-util.adb (Executable_Of): New String parameter Language. When
6703 Ada_Main is False and Language is not empty, attempt to remove the body
6704 suffix or the spec suffix of the language to get the base of the
6705 executable file name.
6706 (Put): New Boolean parameter Lower_Case, defauilted to False. When
6707 Lower_Case is True, put the value in lower case in the name list.
6708 (Executable_Of): If there is no executable suffix in the configuration,
6709 then do not modify Executable_Extension_On_Target.
6710
6711 * prj-util.ads (Executable_Of): New String parameter Language,
6712 defaulted to the empty string.
6713 (Put): New Boolean parameter Lower_Case, defauilted to False
6714
67152008-04-08 Robert Dewar <dewar@adacore.com>
6716
6717 * scng.adb (Scan_Identifier): Handle case of identifier starting with
6718 wide character using UTF-8 encoding.
6719
67202008-04-08 Javier Miranda <miranda@adacore.com>
6721
6722 * sem.adb (Analyze): Consider case in which we analyze an empty node
6723 that was generated by a call to a runtime function that is not
6724 available under the configurable runtime.
6725
6726 * sem.ads (Inside_Freezing_Actions): New flag.
6727 (Save_Check_Policy_List): New field in scope stack entry
6728
67292008-04-08 Ed Schonberg <schonberg@adacore.com>
6730 Robert Dewar <dewar@adacore.com>
6731
6732 * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
6733 the ancestor part of an extension aggregate for a limited type.
6734 (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
6735 enumeration index bounds.
6736 (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
6737 when array is too short.
6738 (Check_Expr_OK_In_Limited_Aggregate): Move function
6739 Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
6740 change name).
6741 (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
6742 Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
6743 component associations.
6744 (Check_Non_Limited_Type): Moved to outer level and renamed.
6745 (Resolve_Record_Aggregate): In an extension aggregate, an association
6746 with a box initialization can only designate a component of the
6747 extension, not a component inherited from the given ancestor
6748
6749 * sem_case.adb: Use new Is_Standard_Character_Type predicate
6750
67512008-04-08 Robert Dewar <dewar@adacore.com>
6752
6753 * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
6754 negative scale
6755 (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
6756 Properly handle case where Aft > Scale and input number is less than
6757 one.
6758
67592008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6760
6761 * s-stoele.ads, s-soflin.ads: Move the location of
6762 Dummy_Communication_Block from System.Storage_Elements to
6763 System.Soft_Links.
6764
6765 * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
6766 emulate Communication_Block in certain scenarios.
6767
67682008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6769
6770 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
6771 subprogram.
6772 Add new subtype S_WWC, unchecked conversion routines From_WWC and
6773 To_WWC.
6774 (I_WWC, O_WWC): New routines for input and output of
6775 Wide_Wide_Character.
6776
67772008-04-08 Robert Dewar <dewar@adacore.com>
6778
6779 * stringt.adb (Write_String_Table_Entry): Handle wide characters
6780 properly
6781
67822008-04-08 Robert Dewar <dewar@adacore.com>
6783
6784 * styleg.adb (Check_Comment): Allow special char after -- in
6785 non-end-of-line case
6786
67872008-04-08 Robert Dewar <dewar@adacore.com>
6788
6789 * stylesw.adb: Implement -gnaty + - y options
6790 (Set_GNAT_Style_Check_Options): Includ I in style check string
6791
6792 * stylesw.ads: Add comments for new style switch options
6793
67942008-04-08 Sergey Rybin <rybin@adacore.com>
6795
6796 * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
6797 to the set of the GNAT components needed by ASIS.
6798
67992008-04-08 Bob Duff <duff@adacore.com>
6800
6801 * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
6802
68032008-04-08 Tristan Gingold <gingold@adacore.com>
6804
6805 * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
6806 Improve error message generation.
6807
68082008-04-08 Vincent Celier <celier@adacore.com>
6809
6810 * a-direct.adb (Start_Search): Check for Name_Error before checking for
6811 Use_Error, as specified in the RM. Check if directory is open and raise
6812 Use_Error if it is not.
6813
68142008-04-08 Vincent Celier <celier@adacore.com>
6815 Robert Dewar <dewar@adacore.com>
6816
6817 * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
6818 AAMP_On_Target is set.
6819
6820 * vms_data.ads: Add NOxxx to style check switch list
6821 Add entry COMPONENTS for -gnatVe
6822 Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
6823 (/SUBDIRS=).
6824 (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
6825 Add qualifiers for gnatmetric coupling options
6826 Add note that -gnata enables all checks
6827 Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
6828 Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
6829 New warning flag -gnatw.e
6830
6831 * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
6832 Add entry for -gnatyN (forgotten before)
6833 Line for new warning switch -gnatw.p
6834 New warning flag -gnatw.e
6835
6836 * gnat_ugn.texi: Add documentation fpr project file switch -aP
6837 Document -gnaty - + y
6838 Replace occurences of "package specification" with "package spec"
6839 Define preprocessing symbols in documentation of gnatprep
6840 Clarify reason for distinguishing overflow checking
6841 Add documentation for project-aware tool switches -eL and --subdirs=
6842 Complete list of configuration pragmas
6843 Specify that, even when gnatmake switch -x is used, mains on the command
6844 line need to be sources of project files.
6845 Editing of gnatcheck/gnatmetric doc.
6846 Add documentation for -gnatw.p/-gnatw.P
6847 Add missing documentation for -fno-inline-functions.
6848 Add documentation for -gnatw.e
6849
6850 * gnat_rm.texi: Add documentation for No_Default_Initialization
6851 Replace occurences of "package specification" with "package spec"
6852 Document use of * in Warnings Off string
6853 Update documentation of alignment/component clauses.
6854 Add documentation for Invalid_Value
6855 Document new consistency rule for Optimize_Alignment
6856 Add documentation for Precondition and Postcondition pragmas
6857 Add documentation for Check and Check_Policy pragmas
6858 Document new Enum_Val attribute
6859 Remove requirement for static string in pragma Assert
6860 Add documentation on GNAT.Time_Stamp
6861
6862 * ug_words: add entry for -gnatVe
6863 Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
6864 Add entry for -gnatw.e
6865
6866 * debug.adb: Add missing documentation for d.a flag
6867 Document new -gnatd.a switch.
6868 Add documentation for new gnatmake debug switch -df
6869
68702008-04-08 Thomas Quinot <quinot@adacore.com>
6871
6872 * gen-soccon.c: Bump year in copyright notices.
6873
6874 * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
6875
68762008-04-08 Eric Botcazou <ebotcazou@adacore.com>
6877
6878 * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
6879 Minor reformatting.
6880
68812008-04-08 Robert Dewar <dewar@adacore.com>
6882 Bob Duff <duff@adacore.com>
6883
6884 * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
6885 Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
6886
6887 * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
6888
6889 * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
6890
6891 * g-trasym.ads: Minor comment improvements
6892
6893 * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
6894
6895 * a-sequio.ads, a-direio.ads: improve message for tagged type
6896
6897 * a-strunb.ads: Minor reformatting
6898
6899 * a-tifiio.adb: Minor reformatting
6900
6901 * atree.adb (Fix_Parents): Use clearer names for formals
6902 Cleanup and simplify code
6903 Use named notation in calls
6904
6905 * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
6906 confusing calls
6907
6908 * uintp.adb: Used named notation for some confusing calls
6909
6910 * bindusg.adb: Minor change in one line of output
6911
6912 * cstand.adb: Minor reformatting of src representation of Standard
6913
6914 * a-assert.ads: Add comment.
6915
6916 * g-decstr.adb: Fix bad indentation
6917
6918 * expander.ads, expander.adb: Code clean up.
6919
6920 * sem_dist.ads: Minor comment improvement
6921
6922 * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
6923 s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
6924
6925 * i-cstrin.adb: Fix casing error in formal parameter name in call
6926
69272008-04-08 Ed Schonberg <schonberg@adacore.com>
6928
6929 * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
6930 mentioned in limited_with_clauses to do create semantic dependencies
6931 even though they appear in the ali file.
6932
69332008-04-08 Emmanuel Briot <briot@adacore.com>
6934
6935 * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
6936 statement.
6937 (Get_Configuration): New subprogram.
6938
6939 * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
6940 These optional parameters help preserve the casing of the project's name
6941 when pretty-printing.
6942
69432008-04-08 Jerome Lambourg <lambourg@adacore.com>
6944 Arnaud Charlet <charlet@adacore.com>
6945
6946 * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
6947 then use __gnat_set_exit_status to report the returned status code.
6948
6949 * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
6950 messages on .NET, since some constructs of the language are not
6951 properly supported.
6952
6953 * gnatlink.adb (Gnatlink): In case the command line is too long for the
6954 .NET linker, gnatlink now concatenate all .il files and pass this to
6955 ilasm.
6956
d8ec5bf2 69572008-04-07 Aurelien Jarno <aurelien@aurel32.net>
9e81dbc7 6958 Xavier Grave <grave@ipno.in2p3.fr>
d8ec5bf2
AJ
6959
6960 * Makefile.in: Add make ifeq define for mips/mipsel support.
9e81dbc7 6961 * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
d8ec5bf2
AJ
6962 system-linux-mips.ads: New files.
6963
7437c8d4
AJ
69642008-04-07 Aurelien Jarno <aurelien@aurel32.net>
6965
9e81dbc7 6966 * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
7437c8d4
AJ
6967 detect systems using GNU libc.
6968 * gsocket.h: ditto.
6969 * socket.c: ditto.
6970 * adaint.c: ditto.
6971 * link.c: ditto.
6972
1dab7b35
AJ
69732008-04-07 Aurelien Jarno <aurelien@aurel32.net>
6974
9e81dbc7 6975 * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
1dab7b35
AJ
6976 constant constant for sysconf call.
6977 (bit_field): New packed boolean type used by cpu_set_t.
6978 (cpu_set_t): New type corresponding to the C type with
6979 the same name. Note that on the Ada side we use a bit
6980 field array for the affinity mask. There is not need
6981 for the C macro for setting individual bit.
6982 (pthread_setaffinity_np): New imported routine.
6983 * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
6984 on GNU/kFreeBSD.
6985
39fcde8f
EB
69862008-04-07 Eric Botcazou <ebotcazou@adacore.com>
6987
6988 * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
6989
9dd9bf80
EB
69902008-04-07 Eric Botcazou <ebotcazou@adacore.com>
6991
6992 * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
6993 * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
6994 * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
6995 * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
6996 Return by Depressed Stack Pointer.
6997
2d091b12
EB
69982008-04-06 Eric Botcazou <ebotcazou@adacore.com>
6999
7000 * decl.c (is_variable_size): Do not unconditionally return false
7001 on non-strict alignment platforms.
7002
1bde5bc4
EB
70032008-04-06 Eric Botcazou <ebotcazou@adacore.com>
7004
7005 * decl.c (rest_of_type_decl_compilation_no_defer): New local function
7006 used to process all the variants of the specified type.
7007 (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
7008 types too. Call rest_of_type_decl_compilation_no_defer if undeferring.
7009 (rest_of_type_decl_compilation): Likewise.
7010 * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
7011
9ff420f1
PB
70122008-04-03 Paolo Bonzini <bonzini@gnu.org>
7013
1bde5bc4
EB
7014 * gigi.h (insert_block): Kill.
7015 * utils.c (insert_block): Kill.
9ff420f1 7016
bf1e48d1
EB
70172008-04-02 Eric Botcazou <ebotcazou@adacore.com>
7018
7019 * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
7020 type has self-referential size, get the size from the initializing
7021 expression directly if it is also a constant whose nominal type
7022 has self-referential size.
7023
a6a0635e
JDA
70242008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7025
51e5c7b5
JDA
7026 PR ada/33688
7027 * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
7028
a6a0635e
JDA
7029 PR ada/33857
7030 * env.c: Always include crt_externs.h if __APPLE__ is defined.
7031 (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
7032
4d22f5b1
AJ
70332008-04-01 Andreas Jaeger <aj@suse.de>
7034
7035 * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
7036 IP_PKTINFO.
7037
dec55d76
RW
70382008-03-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7039
7040 * g-table.adb, g-tasloc.adb, g-traceb.ads,
7041 g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
7042 gnatbind.adb, gnatchop.adb, gnatcmd.adb,
7043 gnatcmd.ads, gnatdll.adb, gnatfind.adb,
7044 gnatlink.adb, gnatmem.adb, gprep.adb,
7045 i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
7046 i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
7047 layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
7048 lib-xref.ads, lib.adb, link.c, live.ads,
7049 make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
7050 mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
7051 misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
7052 mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
7053 namet.adb, namet.h, nlists.adb, nlists.ads,
7054 nlists.h, opt.ads, osint-b.ads, osint-c.adb,
7055 osint-c.ads, osint.adb, osint.ads, output.ads,
7056 par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
7057 par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
7058 par-endh.adb, par-labl.adb, par-prag.adb,
7059 par-sync.adb, par-tchk.adb, par-util.adb,
7060 par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
7061 prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
7062 prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
7063 prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
7064
5a864002
EB
70652008-03-31 Eric Botcazou <ebotcazou@adacore.com>
7066
7067 * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
7068 size if it has overflowed.
7069
2566855a 70702008-03-31 Olivier Hainque <hainque@adacore.com>
9e81dbc7 7071 Eric Botcazou <ebotcazou@adacore.com>
2566855a
OH
7072
7073 * utils2.c (find_common_type): Document assumption on t1/t2 vs
7074 lhs/rhs. Force use of lhs type if smaller, whatever the modes.
7075
e14c931f
RW
70762008-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7077
7078 * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
7079 einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
7080 exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
7081 exp_pakd.ads, exp_prag.adb, exp_smem.adb,
7082 exp_tss.ads, exp_util.adb, exp_util.ads,
7083 exp_vfpt.adb, freeze.adb, freeze.ads,
7084 frontend.adb, g-alleve.adb, g-altcon.adb,
7085 g-altive.ads, g-alveop.ads, g-alvevi.ads,
7086 g-arrspl.adb, g-busorg.ads, g-calend.adb,
7087 g-calend.ads, g-casuti.ads, g-cgideb.adb,
7088 g-comlin.adb, g-comlin.ads, g-curexc.ads,
7089 g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
7090 g-dirope.adb, g-dirope.ads, g-dynhta.ads,
7091 g-dyntab.adb, g-encstr.ads, g-excact.ads,
7092 g-except.ads, g-expect.ads, g-heasor.adb,
7093 g-hesora.adb, g-hesorg.adb, g-htable.ads,
7094 g-locfil.ads, g-md5.adb, g-md5.ads,
7095 g-memdum.ads, g-moreex.ads, g-os_lib.adb,
7096 g-pehage.adb, g-pehage.ads, g-regexp.adb,
7097 g-regexp.ads, g-regpat.adb, g-regpat.ads,
7098 g-soccon-aix.ads, g-soccon-darwin.ads,
7099 g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
7100 g-soccon-hpux.ads, g-soccon-irix.ads,
7101 g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
7102 g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
7103 g-soccon-mingw.ads, g-soccon-solaris-64.ads,
7104 g-soccon-solaris.ads, g-soccon-tru64.ads,
7105 g-soccon-vms.ads, g-soccon-vxworks.ads,
7106 g-soccon.ads, g-socket.adb, g-socket.ads,
7107 g-socthi-mingw.adb, g-socthi-vms.adb,
7108 g-socthi-vxworks.adb, g-soliop-mingw.ads,
7109 g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
7110 g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
7111 typos.
7112
2bc894d9
EB
71132008-03-27 Eric Botcazou <ebotcazou@adacore.com>
7114
7115 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
7116 if the procedure is imported.
7117
640bd0bf
AC
71182008-03-26 Arnaud Charlet <charlet@adacore.com>
7119
7120 * adaint.c: Fix warnings.
7121
0afae63b
AC
71222008-03-26 Arnaud Charlet <charlet@adacore.com>
7123
7124 * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
7125
afc5f979
AC
71262008-03-26 Arnaud Charlet <charlet@adacore.com>
7127
7128 * a-witeio.adb: Fix problem with Current_Output (introduce Self).
7129 Fix problem of status check for null file
7130
c5d31169
AC
71312008-03-26 Arnaud Charlet <charlet@adacore.com>
7132
7133 * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
7134 s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
7135 s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
7136 i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
7137 s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
7138 comments.
7139
b501b251
AC
71402008-03-26 Thomas Quinot <quinot@adacore.com>
7141
2bc894d9 7142 PR ada/33688
b501b251
AC
7143 * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
7144 Get_Socket_Option): Add support for Receive_Packet_Info.
7145
7146 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
7147 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
7148 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
7149 g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
7150 g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
7151 new constants SO_REUSEPORT and IP_PKTINFO
7152
71532008-03-26 Robert Dewar <dewar@adacore.com>
7154
7155 * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
7156 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
7157 a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
7158 a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
7159 a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
7160 a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
7161 s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
7162 s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
7163 a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
7164 s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
7165 s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
7166 s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
7167 s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
7168 s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
7169 s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
7170 s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
7171 s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
7172 s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
7173 s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
7174 s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
7175 a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
7176 a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
7177 s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
7178 s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
7179 s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
7180 s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
7181 s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
7182 a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
7183 a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
7184 s-tasloc.adb: Minor reformatting.
7185 Update comments.
7186 Remove "used for" sections from comments.
7187
71882008-03-26 Robert Dewar <dewar@adacore.com>
7189
7190 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
7191 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
7192 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
7193 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
7194 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
7195 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
7196 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7197 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
7198 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
7199 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
7200 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
7201 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
7202 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
7203 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
7204 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
7205 double spaced if it fits on one line and otherwise single spaced.
7206
72072008-03-26 Arnaud Charlet <charlet@adacore.com>
7208
9e81dbc7
AS
7209 * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
7210 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
b501b251
AC
7211 s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
7212 or task info if the thread could not be created.
7213
72142008-03-26 Arnaud Charlet <charlet@adacore.com>
7215
7216 * gnatvsn.ads (Library_Version): Bump to 4.4.
7217 (Current_Year): Bump to 2008.
7218
72192008-03-26 Robert Dewar <dewar@adacore.com>
7220
7221 * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
7222
7223 * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
7224
7225 * debug.adb: Add debug flags d.r and d.v
7226 Add debug flag .T (Optimize_Alignment (Time))
7227 Add debug flag .S (Optimize_Alignment (Space))
7228
7229 * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
7230 depending on setting of relevant debug flags.
7231 Replace use of Warnings_Off by Has_Warnings_Off
7232 (Freeze_Entity): In circuit for warning on suspicious convention
7233 actuals, do not give warning if subprogram has same entity as formal
7234 type, or if subprogram does not come from source.
7235 (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
7236 if Optimize_Alignment set to Space.
7237
7238 * frontend.adb: Add call to Sem_Warn.Initialize
7239 Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
7240 Reset Optimize_Alignment mode from debug switches .S and .T
7241
7242 * layout.adb (Layout_Composite_Object): Rewritten for
7243 Optimize_Aligment pragma.
7244
7245 * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
7246 mode.
7247
7248 * opt.ads, opt.adb: (Optimize_Alignment): New global switch
7249
7250 * par-prag.adb (N_Pragma): Chars field removed, use Chars
7251 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
7252 this change. Add entry for pragma Optimize_Alignment
7253
7254 * sem_prag.adb (N_Pragma): Chars field removed, use Chars
7255 (Pragma_Identifier (..
7256 instead, adjustments throughout to accomodate this change.
7257 (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
7258 (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
7259 Add implementation of pragma Optimize_Alignment
7260
72612008-03-26 Vincent Celier <celier@adacore.com>
7262
7263 * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
7264 Improve memory usage to avoid use of stack.
7265
72662008-03-26 Robert Dewar <dewar@adacore.com>
7267
7268 * a-teioed.ads: Correct value of Default_Fill
7269
7270 * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
7271
72722008-03-26 Robert Dewar <dewar@adacore.com>
7273
7274 * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
7275 with Current_Output (introduce Self).
7276
72772008-03-26 Robert Dewar <dewar@adacore.com>
7278
7279 * checks.adb (Ensure_Valid): Capture valid status if possible
7280 (eliminate checks)
7281
72822008-03-26 Robert Dewar <dewar@adacore.com>
7283
7284 * stand.ads: Deal with reordering of package standard declarations
7285
7286 * cstand.adb: Put package Standard declarations in proper order
7287
72882008-03-26 Robert Dewar <dewar@adacore.com>
7289
7290 * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
7291 (Pragma_Identifier (.. instead.
7292 (OK_To_Reorder_Components): New flag
7293 (Has_Entries): Code cleanup.
7294 (Warnings_Off_Used): New flag
7295 (Warnings_Off_Used_Unmodified): New flag
7296 (Warnings_Off_Used_Unreferenced): New flag
7297 (Has_Warnings_Off): New function
7298 (Has_Unmodified): New function
7299 (Has_Unreferenced): New function
7300 (Is_Trivial_Subprogram): New flag
7301 (Is_Static_Dispatch_Table_Entity): New attribute.
7302 Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
7303 (more consistent with other similar names)
7304 (Access_Subprogram_Type): New classification function
7305
73062008-03-26 Robert Dewar <dewar@adacore.com>
7307
7308 * errout.ads: Document new !! insertion sequence
7309
7310 * errout.adb (N_Pragma): Chars field removed, use Chars
7311 (Pragma_Identifier (.. instead.
7312 Replace use of Warnings_Off by Has_Warnings_Off
7313 (Error_Msg_Internal): Don't delete warning ending in !!
7314
73152008-03-26 Robert Dewar <dewar@adacore.com>
7316
7317 * par.adb (Check_No_Right_Paren): Removed no longer used
7318
7319 * par-ch10.adb (N_Pragma): Chars field removed, use Chars
7320 (Pragma_Identifier (.. instead.
7321
7322 * par-ch10.adb (P_Subunit): Improvement in error recovery and message
7323
7324 * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
7325 par-ch4.adb: Minor improvements in error recovery and messages.
7326
7327 * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
7328 non-serious
7329
7330 * par-ch9.adb: Minor improvements in error recovery and messages
7331 (P_Protected): Better error recovery for "protected type x;"
7332
7333 * par-util.adb: Minor improvements in error recovery and messages
7334 (Check_No_Right_Paren): Removed no longer used
7335
73362008-03-26 Ed Schonberg <schonberg@adacore.com>
7337
7338 * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
7339 that the prefix of an attribute is the type of the aggregate being
7340 expanded.
7341
73422008-03-26 Javier Miranda <miranda@adacore.com>
7343 Robert Dewar <dewar@adacore.com>
7344
7345 * exp_attr.adb (N_Pragma): Chars field removed.
7346 (Expand_N_Attribute_Reference): If the designated type associated with
7347 attribute 'Unrestricted_Access is a subprogram entity then replace it
7348 by an E_Subprogram_Type itype.
7349 Implement attribute Old
7350
7351 * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
7352
7353 * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
7354 Replace call to
7355 New_Internal_Entity by call to Create_Itype to centralize calls
7356 building itypes, ad propagate the convention of the designated
7357 subprogram. In addition, disable the machinery cleaning constant
7358 indications from all entities in current scope when 'Unrestricted_Access
7359 corresponds with a node initializing a dispatch table slot.
7360 (Analyze_Attribute): Parameterless attributes returning a string or a
7361 type will not be called with improper arguments, so we can remove junk
7362 code that was dealing with this case.
7363 Implement attribute Old
7364
7365 * snames.ads, snames.h, snames.adb: Add entries for attribute Old
7366 Add entry for pragma Optimize_Alignment
7367 New standard names Sync and Synchronize
7368
73692008-03-26 Robert Dewar <dewar@adacore.com>
7370 Arnaud Charlet <charlet@adacore.com>
7371
7372 * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
7373 stmt.
7374 (No_Exception_Propagation_Active): New function.
7375 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
7376 Update comments, and review all uses of No_Exception_Propagation, which
7377 are now correct and in sync with what gigi expects.
7378
7379 * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
7380 function.
7381 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
7382 Update comments, and review all uses of No_Exception_Propagation, which
7383 are now correct and in sync with what gigi expects.
7384
73852008-03-26 Ed Schonberg <schonberg@adacore.com>
7386
7387 * sem_ch3.adb (Access_Definition): If the access type is the return
7388 result of a protected function, create an itype reference for it
7389 because usage will be in an inner scope from the point of declaration.
7390 (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
7391 OK_To_Reorder_Components.
7392 (Make_Index): If an overloaded range includes a universal integer
7393 interpretation, resolve to Standard.Integer.
7394 (Analyze_Subtype_Indication): Copy Convention to subtype
7395 (Check_Abstract_Interfaces): Complete semantic checks on the legality of
7396 limited an synchronized progenitors in type declaration and private
7397 extension declarations.
7398
7399 * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
7400 protected subprogram body, determine proper scope from subprogram
7401 declaration.
7402
74032008-03-26 Robert Dewar <dewar@adacore.com>
7404
7405 * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
7406 No_Run_Time_Mode
7407
74082008-03-26 Gary Dismukes <dismukes@adacore.com>
7409
7410 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
7411 of a heap allocator for a limited unconstrained function return when
7412 resstriction No_Allocators is active.
7413 (Analyze_Allocator): The restriction No_Allocators is now only checked
7414 on allocators that have Comes_From_Source set, as per RM-H.4(7).
7415
7416 * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
7417 of a heap allocator for a limited unconstrained function return when
7418 resstriction No_Allocators is active.
7419 (Analyze_Allocator): The restriction No_Allocators is now only checked
7420 on allocators that have Comes_From_Source set, as per RM-H.4(7).
7421 (Has_Fixed_Op): If the name in a function call is Standard."*" and the
7422 operands are fixed-point types, the universal_fixed predefined operation
7423 is used, regardless of whether the operand type (s) have a primitive
7424 operation of the same name.
7425
74262008-03-26 Javier Miranda <miranda@adacore.com>
7427
7428 * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
7429 Is_Static_Dispatch_Table
7430 (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
7431 to Exchange_Declarations to exchange the private and full-view. Bug
7432 found working in this issue.
7433 (Expand_Dispatching_Call): Propagate the convention of the subprogram
7434 to the subprogram pointer type.
7435 (Make_Secondary_DT): Replace generation of Prim'Address by
7436 Address (Prim'Unrestricted_Access)
7437 (Make_DT): Replace generation of Prim'Address by
7438 Address (Prim'Unrestricted_Access)
7439 (Make_Disp_*_Bodies): When compiling for a restricted profile, use
7440 simple call form for single entry.
7441 (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
7442 tables of predefined primitives).
7443 (Make_Secondary_DT): Add support to handle access to dispatch tables of
7444 predefined primitives.
7445 (Make_Tags): Add entities to Access_Dispatch_Table associated with
7446 access to dispatch tables containing predefined primitives.
7447
7448 * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
7449 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
7450 this change.
7451 (Register_Predefined_DT_Entry): Updated to handle the new contents
7452 of attribute Access_Disp_Table (pointers to dispatch tables containing
7453 predefined primitives).
7454
7455 * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
7456 subprogram.
7457 (Find_Interface_ADT): Updated to skip the new contents of attribute
7458 Access_Dispatch_Table (pointers to dispatch tables containing predefined
7459 primitives).
7460
7461 * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
7462 concurrent types.
7463 (Set_Convention): Use new function Is_Access_Subprogram_Type
7464 (Collect_Interfaces_Info): Updated to skip the new contents of attribute
7465 Access_Dispatch_Table (pointers to dispatch tables containing predefined
7466 primitives).
7467
7468 * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
7469 expanded code avoiding calls to Build_Predef_Prims.
7470 (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
7471 call to Build_Get_Predefined_Prim_Op_Address.
7472
74732008-03-26 Javier Miranda <miranda@adacore.com>
7474
7475 * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
7476 subprogram Corresponding_Runtime_Package to know the runtime package
7477 that will provide support to a given protected type.
7478
7479 * exp_ch9.adb (Add_Private_Declarations,
7480 Build_Protected_Subprogram_Call,
7481 Build_Protected_Entry, Build_Simple_Entry_Call,
7482 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
7483 Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
7484 cleanup using the new centralized subprogram Corresponding_Runtime
7485 Package to know the runtime package that provides support to
7486 a given protected type.
7487
74882008-03-26 Ed Schonberg <schonberg@adacore.com>
7489
7490 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
7491 assignment is within the initialization procedure for a packed array,
7492 and Initialize_Scalars is enabled, compile right-hand side with checks
7493 off, because the value is purposely out of range.
7494
74952008-03-26 Vincent Celier <celier@adacore.com>
7496
7497 * gnatcmd.adb: Add processing for GNAT SYNC
7498
7499 * vms_conv.ads: (Command_Type): Add command Sync
7500
7501 * vms_conv.adb (Initialize): Add Command_List data for new command Sync
7502
7503 * vms_data.ads: Add entries for -gnatw.w
7504 Add qualifier for gnatstub --header-file option
7505 Add switches for GNAT SYNC
7506
7507 * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
7508 (Add_Package_Name): New procedure
7509 (Package_Name_List): New function
7510 (Initialize): Add known package names to the list
7511 (Register_New_Package): Add the new package name to the list
7512
75132008-03-26 Robert Dewar <dewar@adacore.com>
7514
7515 * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
7516 s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
7517 Raise_Exception by "raise with" construct.
7518
75192008-03-26 Pascal Obry <obry@adacore.com>
7520
7521 * Makefile.in: Add proper GNAT.Serial_Communications implementation on
7522 supported platforms.
9e81dbc7 7523
b501b251 7524 * Makefile.rtl: Add g-sercom.o.
9e81dbc7 7525
b501b251 7526 * impunit.adb: Add g-sercom.adb.
9e81dbc7 7527
b501b251
AC
7528 * s-crtl.ads (open): New routine.
7529 (close): Likewise.
7530 (write): Likewise.
9e81dbc7 7531
b501b251
AC
7532 * s-osinte-mingw.ads (BYTE): New type.
7533 (CHAR): Likewise.
7534 (OVERLAPPED): Likewise.
7535 (GENERIC_READ): New constant.
7536 (GENERIC_WRITE): Likewise.
7537 (OPEN_EXISTING): Likewise.
7538 (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
7539 type instead.
7540 (CreateFile): New routine.
7541 (WriteFile): Likewise.
7542 (ReadFile): Likewise.
7543 (CloseHandle): Move next to the other file oriented routines.
7544
7545 * g-sercom.ads: New unit.
7546
7547 * g-sercom.adb: Default implementation, calls to this unit will raise
7548 a program error exception.
9e81dbc7 7549
b501b251
AC
7550 * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
7551 GNU/Linux implementations.
7552
75532008-03-26 Robert Dewar <dewar@adacore.com>
7554
7555 * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
7556
7557 * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
7558 unchecked conversion for different conventions only for subprogram
7559 pointers or on VMS.
7560
75612008-03-26 Vincent Celier <celier@adacore.com>
7562
7563 * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
7564 to check if the specified object file is correct.
7565
75662008-03-26 Thomas Quinot <quinot@adacore.com>
7567
7568 * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
7569 Comes_From_Source to exclude primitives from being checked. We want to
7570 exclude predefined primitives only, so use the appropriate specific
7571 predicate. Also, flag a formal parameter of an anonymous
7572 access-to-subprogram type as illegal for a primitive operation of a
7573 remote access to class-wide type.
7574
75752008-03-26 Vincent Celier <celier@adacore.com>
7576
7577 * prj-dect.adb (Parse_Package_Declaration): When a package name is not
7578 known, check if it may be a missspelling of a known package name. In
7579 not verbose, not mode, issue warnings only if the package name is a
7580 possible misspelling.
7581 In verbose mode, always issue a warning for a not known package name,
7582 plus a warning if the name is a misspelling of a known package name.
7583
7584 * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
7585 limited withs or limited withs are parse during one call.
7586 (Parse_Single_Project): Post parse context clause in two passes: non
7587 limited withs before current project and limited withs after current
7588 project.
7589
7590 * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
7591 project with the name With_Name, even if it is only extended indirectly.
7592 (Recursive_Process): Process projects in order: first single withs, then
7593 current project, then limited withs.
7594
7595 * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
7596 project with the name With_Name, even if it is only extended indirectly.
7597
75982008-03-26 Robert Dewar <dewar@adacore.com>
7599
7600 * scn.adb (Initialize_Scanner): Format messages belong on standard error
7601
76022008-03-26 Ed Schonberg <schonberg@adacore.com>
7603
7604 * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
7605 a generic subprogram that is imported, do not attempt to compile
7606 non-existent body.
7607
7608 * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
7609 imported, do not generate a raise_program_error for the non-existent
7610 body.
7611 (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
7612 perform minimal name resolution on the generic to avoid spurious
7613 warnings.
7614 (Find_Actual_Type): the designated type of the actual in a child unit
7615 may be declared in a parent unit without being an actual.
7616
76172008-03-26 Robert Dewar <dewar@adacore.com>
7618
7619 * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
7620 * sinfo.ads, sinfo.adb (From_At_End): New flag
7621
76222008-03-26 Ed Schonberg <schonberg@adacore.com>
7623
7624 * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
7625 operations that have an interface parameter.
7626 (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
7627 Don't treat No_Return call as raise.
7628
7629 * sem_disp.adb (Check_Dispatching_Operations): apply check for
7630 non-primitive interface primitives to access parameters, not to all
7631 parameters of an access type.
7632
76332008-03-26 Ed Schonberg <schonberg@adacore.com>
7634
7635 * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
7636 declarations of a parent unit are made visible when compiling a child
7637 instance, the parent is not a hidden open scope, even though it may
7638 contain other pending instance.
9e81dbc7 7639
b501b251
AC
7640 * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
7641 hidden open scope for some child instance, it does affect the
7642 visibility status of other stach entries.
7643 (Analyze_Object_Renaming): Check that a class-wide object cannot be
7644 renamed as an object of a specific type.
7645
76462008-03-26 Robert Dewar <dewar@adacore.com>
7647
7648 * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
7649 recursion and raise SE directly.
7650 (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
7651 set for formal type for IN mode parameter.
7652
76532008-03-26 Robert Dewar <dewar@adacore.com>
7654
7655 * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
7656 (Initialize): New procedure
7657 (Output_Warnings_Off_Warnings): New procedure
7658 (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
7659 (Output_Non_Modifed_In_Out_Warnings): Ditto
7660 (Warn_On_Unreferenced_Entity): Ditto
7661
76622008-03-26 Vincent Celier <celier@adacore.com>
7663
7664 * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
7665 readable.
7666
76672008-03-26 Matthew Heaney <heaney@adacore.com>
7668
9e81dbc7 7669 * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
b501b251
AC
7670 a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
7671 Marked with clauses as private, and controlled operations as overriding
7672
76732008-03-26 Robert Dewar <dewar@adacore.com>
7674
7675 * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
7676
76772008-03-26 Robert Dewar <dewar@adacore.com>
7678
7679 * back_end.adb, back_end.ads: Minor reformatting
7680
7681 * bindgen.adb: Minor clarification of comments
7682
7683 * fname.ads: Minor comment fixes
7684
7685 * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
7686 prj-nmsc.adb, sem_aggr.adb: Minor reformatting
7687
7688 * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
7689 xsnames.adb: Remove warnings off pragma no longer needed
7690
7691 * a-catizo.ads, a-calari.ads, a-calfor.adb,
7692 a-calfor.ads: Fix header.
7693
76942008-03-26 Tristan Gingold <gingold@adacore.com>
7695
7696 * init.c: Do not adjust pc for HPARITH on alpha/vms.
7697
76982008-03-26 Robert Dewar <dewar@adacore.com>
7699
7700 * lib-xref.adb: (OK_To_Set_Reference): New function
7701 (Generate_Reference): Don't set referenced from occurrence in Warnings,
7702 Unmodified, or Unreferenced pragma
7703
77042008-03-26 Robert Dewar <dewar@adacore.com>
7705
7706 * alloc.ads: Add entries for Warnings_Off_Pragmas table
7707
77082008-03-26 GNAT Script <nobody@adacore.com>
7709
7710 * Make-lang.in: Makefile automatically updated
7711
77122008-03-26 Robert Dewar <dewar@adacore.com>
7713
7714 * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
7715 par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
7716 removed, use Chars (Pragma_Identifier (.. instead, adjustments
7717 throughout to accomodate this change.
7718
7719 * s-pooglo.ads, s-pooloc.ads: Minor comment updates
7720
7721 * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
7722 Einfo.Set_Needs_Debug_Info)
7723
77242008-03-26 Robert Dewar <dewar@adacore.com>
7725
7726 * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
7727 Add description for the new gnatstub option '--header-file'
7728 clarification of -gnatwz/-gnatwZ
7729 Add a "Irix-Specific Considerations" section to document the need to
7730 set LD_LIBRARY_PATH when using the default shared runtime library.
7731 Added documentation for both gcov and gprof.
7732
7733 * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
7734 messages that are not suppressed when clients are compiled.
7735 Add documentation of s-pooglo s-pooloc
7736 Document the new GNAT.Serial_Communications API.
7737 Add documentation for 'Old attribute
7738 Add description of pragma Optimize_Alignment
7739
7740 * ug_words: Add entries for -gnatw.w -gnatw.W
7741
7742 * usage.adb: Add line for -gnatw.w (warn on warnings off)
7743
3a9634be
EB
77442008-03-25 Eric Botcazou <ebotcazou@adacore.com>
7745
7746 Revert
7747 2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
7748 PR ada/35186
7749 * decl.c (maybe_pad_type): Avoid padding an integral type when
7750 bumping its alignment is sufficient.
7751
53b308f6
AC
77522008-03-25 Arnaud Charlet <charlet@adacore.com>
7753
7754 * exp_ch6.adb, exp_disp.adb: Update copyright notice.
7755 Fix wrong formatting (lines too long)
7756
8fc789c8
RW
77572008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7758
7759 * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
7760 a-calend-vms.adb, a-calend.adb, a-calend.ads,
7761 a-calfor.adb, a-chahan.ads, a-chtgke.adb,
7762 a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
7763 a-cohama.ads, a-comlin.ads, a-coorse.adb,
7764 a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
7765 a-except-2005.ads, a-except.adb, a-except.ads,
7766 a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
7767 a-exextr.adb, a-filico.ads, a-finali.ads,
7768 a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
7769 a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
7770 a-sequio.ads, a-strbou.ads, a-strfix.adb,
7771 checks.adb, exp_ch3.adb, exp_ch4.adb,
7772 exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
7773 exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
7774 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
7775 exp_dbug.ads, exp_disp.adb, exp_dist.adb,
7776 exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
7777
15f6d6e7
RD
77782008-03-24 Robert Dewar <dewar@adacore.com>
7779
7780 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
7781 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
7782 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
7783 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
7784 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
7785 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
7786 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7787 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
7788 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
7789 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
7790 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
7791 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
7792 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
7793 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
7794 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
7795 double spaced if it fits on one line and otherwise single spaced.
7796
b2e74434
RW
77972008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7798
7799 PR documentation/15479
7800 * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
7801 (doc/gnat_ugn_unw.texi): ... this, and adjusted.
7802 (doc/gnat_ugn.info): Renamed from ...
7803 (doc/gnat_ugn_unw.info): ... this.
7804 (doc/gnat_ugn.dvi): Renamed from ...
7805 (doc/gnat_ugn_unw.dvi): ... this.
7806 (doc/gnat_ugn.pdf): Renamed from ...
7807 (doc/gnat_ugn_unw.pdf): ... this.
7808 (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
7809 Adjusted.
7810 * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
7811 unconditionally to gnat_ugn.info. Fix cross references to the
7812 GNAT Reference Manual. Convert links to the GCC, GDB, Emacs,
7813 and GNU make manuals to be proper texinfo links.
7814 * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
7815
f4351641
OH
78162008-03-21 Olivier Hainque <hainque@adacore.com>
7817
7818 * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
7819 ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
7820
10c5d1a0
EB
78212008-03-21 Eric Botcazou <ebotcazou@adacore.com>
7822
7823 * trans.c (addressable_p): Add notes on addressability issues.
7824
457b629a 78252008-03-21 Olivier Hainque <hainque@adacore.com>
9e81dbc7 7826 Ed Schonberg <schonberg@adacore.com>
457b629a
OH
7827
7828 * trans.c (addressable_p): Accept COND_EXPR when both arms
7829 are addressable.
7830 (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
7831 (call_to_gnu): Do not use name reference in the error message
7832 for a misaligned by_reference_parameter. The actual may be a
7833 general expression.
7834
ac5dc795
PB
78352008-03-18 Paolo Bonzini <bonzini@gnu.org>
7836
e1da2b17
EB
7837 * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7838
79f34d07
RW
78392008-03-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7840
7841 * gnat_rm.texi (Implementation Defined Characteristics)
7842 (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
7843 appropriate.
7844 * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
7845 (Switches for gnatchop, Installing a library): Likewise.
7846
e1e7141c
EB
78472008-03-10 Eric Botcazou <ebotcazou@adacore.com>
7848
7849 * trans.c (emit_range_check): Do not emit the check if the base type
7850 of the expression is the type against which its range must be checked.
7851
892f6e65
EB
78522008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7853
7854 * decl.c (maybe_pad_type): Use value_factor_p.
7855
7934d781
EB
78562008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7857
7858 * lang.opt (nostdlib): Move around.
7859 * misc.c (gnat_handle_option): Fix formatting.
7860 (gnat_dwarf_name): Move around.
7861 * trans.c (Case_Statement_to_gnu): Fix formatting.
7862 (gnat_to_gnu): Likewise.
7863 * utils.c (aggregate_type_contains_array_p): Likewise.
7864 (create_subprog_decl): Likewise.
7865
8f5893ab
EB
78662008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7867
7868 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
7869 bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
7870
ba436c3b
EB
78712008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7872
7873 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
7874 BIGGEST_ALIGNMENT when capping the alignment of records with
7875 strict alignment and size clause.
7876
6ab36dac
EB
78772008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7878
7879 * lang-specs.h: Pass -gnatwa if -Wall is passed.
7880 * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
7881 and -Wuninitialized.
7882 (gnat_post_options): Clear warn_unused_parameter.
7883
8853cb0b
EB
78842008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7885
7886 * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
7887 aligned bit-fields, bumping the alignment of the record type if deemed
7888 profitable.
7889 (value_factor_p): Return false instead of 0.
7890
66abe22c
EB
78912008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7892
7893 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
7894 for scalar types with small alignment.
7895
563569be
EB
78962008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7897
7898 * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
7899 from that of the front-end's end label.
7900 (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
7901 from that of the loop label.
7902
b49a1a1e
EB
79032008-03-07 Eric Botcazou <ebotcazou@adacore.com>
7904
7905 * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
7906 comment for the packed array type case.
7907 * utils.c (build_template): Use a loop to strip padding or
7908 containing records for justified modular types.
7909
fd5c81e9
EB
79102008-03-07 Eric Botcazou <ebotcazou@adacore.com>
7911
7912 * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
7913 large alignments specified for types.
7914 (validate_alignment): Minor cleanup.
7915
7f42aa36
EB
79162008-03-07 Eric Botcazou <ebotcazou@adacore.com>
7917
7918 * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
7919 (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
7920 the component for packing, if possible, as well as if a component
7921 size clause is specified.
7922 <E_Record_Subtype>: For an array type used to implement a packed
7923 array, get the component type from the original array type.
7924 Try to get a smaller form of the component for packing, if possible,
7925 as well as if a component size clause is specified.
7926 (round_up_to_align): New function.
7927 (make_packable_type): Add in_record parameter.
7928 For a padding record, preserve the size. If not in_record and the
7929 size is too large for an integral mode, attempt to shrink the size
7930 by lowering the alignment.
7931 Ditch the padding bits of the last component.
7932 Compute sizes and mode manually, and propagate the RM size.
7933 Return a BLKmode record type if its size has shrunk.
7934 (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
7935 Use Original_Array_Type to retrieve the type in case of an error.
7936 Adjust call to make_packable_type.
7937 (gnat_to_gnu_field): Likewise.
7938 (concat_id_with_name): Minor tweak.
7939 * trans.c (larger_record_type_p): New predicate.
7940 (call_to_gnu): Compute the nominal type of the object only if the
7941 parameter is by-reference. Do the conversion actual type -> nominal
7942 type if the nominal type is a larger record.
7943 (gnat_to_gnu): Do not require integral modes on the source type to
7944 avoid the conversion for types with identical names.
7945 (addressable_p): Add gnu_type parameter. If it is specified, do not
7946 return true if the expression is not addressable in gnu_type.
7947 Adjust recursive calls.
7948 * utils.c (finish_record_type): Remove dead code.
7949
2f76571e
EB
79502008-03-05 Eric Botcazou <ebotcazou@adacore.com>
7951
7952 PR ada/35186
7953 * decl.c (maybe_pad_type): Avoid padding an integral type when
7954 bumping its alignment is sufficient.
7955
4d0e4612
RW
79562008-03-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7957
ad6b5b00
RW
7958 * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
7959 * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
7960 statement.
7961 * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
7962 gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
7963 sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
7964 code output strings.
7965 * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
7966 system-vms_64.ads: Fix typos in ada source code comments.
7967 * sinfo-cn.adb: Remove incomplete sentence.
7968
4d0e4612
RW
7969 PR documentation/15479
7970 * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
7971
acf6b7ab
ST
79722008-02-27 Samuel Tardieu <sam@rfc1149.net>
7973
7974 PR ada/22255
7975 * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
7976
f5c064ab
ST
79772008-02-27 Samuel Tardieu <sam@rfc1149.net>
7978
7979 PR ada/34799
7980 * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
7981 that underlying type is present.
7982
2d593c86
TT
79832008-02-26 Tom Tromey <tromey@redhat.com>
7984
7985 * misc.c (internal_error_function): Remove test of
7986 USE_MAPPED_LOCATION.
7987 * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
7988 (Sloc_to_locus): Remove old location code.
7989
443b3472
RW
79902008-02-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7991
8dd07840
RW
7992 * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
7993 `i.e.' by adding comma or `@:' as appropriate.
7994 * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
7995 plain characters `C', use `@samp{C}'.
7996 * gnat_ugn.texi (File Naming Rules, About gnatkr)
7997 (Krunching Method): Likewise.
7998
443b3472
RW
7999 * gnat_ugn.texi (Conventions): List environment variables and
8000 metasyntactic variables.
8001 (Compiling Programs): Fix notation of metasyntactic variables.
8002 Add @file where appropriate. Use @file for file extensions,
8003 @samp for strings.
8004 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
8005 instead of @file, @env instead of @code.
8006
9538dfb9
RW
80072008-02-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8008
d488f6ea
RW
8009 PR documentation/15479
8010 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
8011 and `...' with `@dots{}' or `@enddots{}'.
8012
1992bbd9
RW
8013 PR documentation/15479
8014 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
8015 use @command instead of @code, @option instead of @samp or @code,
8016 @code instead of @var, @samp instead of @file.
8017
9538dfb9
RW
8018 PR documentation/15479
8019 * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
8020 in Makefile rules, by using `&&' rather than `;'.
8021
e69044cb
RW
80222008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8023
8024 PR documentation/15479
8025 * gnat_ugn.texi: In non-code, avoid space before colon.
8026 (Regular Expressions in gnatfind and gnatxref): Fix indentation.
8027 (Examples of gnatxref Usage): Use @command{vi} instead of
8028 @file{vi}.
8029 (Character Set Control): Do not use @code for UTF-8.
8030 (Validity Checking): Fix typo "NaNs" instead of "NaN's". Do not
8031 use @code for IEEE.
8032 * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
8033 sample.
8034 * gnat_rm.texi, gnat_ugn.texi: Fix typos. Bump copyright years.
8035
9e94c78f 80362008-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
6a333ca0
JS
8037
8038 PR ada/35143
8039 * env.c: Add __rtems__ to if defined.
8040 * s-osinte-rtems.adb: Add To_Target_Priority. Fix formatting.
8041 * s-osinte-rtems.ads: Add To_Target_Priority prototype and
8042 PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants. Add
8043 pragma Convention as required.
8044 * gsocket.h: Make compile in and out of RTS.
8045 * Makefile.in: Add system-rtems.ads. Build DEC extensions.
8046 Use g-soccon-rtems.ads.
8047 * g-soccon-rtems.ads, system-rtems.ads: New files.
8048
72fb133f
KG
80492008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8050
8051 PR other/35107
8052 * Make-lang.in (gnat1): Add $(GMPLIBS).
8053
8fa07a56
EB
80542008-01-26 Eric Botcazou <ebotcazou@adacore.com>
8055
8056 * decl.c (components_to_record): Improve comment.
8057
0bf38239
EB
80582008-01-22 Eric Botcazou <ebotcazou@adacore.com>
8059
8060 * decl.c (components_to_record): Do not reuse the empty union type
8061 if there is a representation clause on the record.
8062 * trans.c (addressable_p): Return true for INTEGER_CST.
8063
461d6eb3
EB
80642008-01-21 Eric Botcazou <ebotcazou@adacore.com>
8065
8066 * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
8067 in pointer arithmetics.
8068 * utils2.c (build_allocator): Likewise.
8069
9328dd57
EB
80702008-01-17 Eric Botcazou <ebotcazou@adacore.com>
8071
8072 * utils.c (build_function_stub): Properly build the call expression.
8073
052cec9b
EB
80742008-01-14 Eric Botcazou <ebotcazou@adacore.com>
8075
8076 * decl.c (gnat_to_gnu_entity) <object>: Process renamings
8077 before converting the expression to the type of the object.
8078 * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
8079 Stabilize constructors for special wrapping types.
8080
08ffbdad
EB
80812008-01-13 Eric Botcazou <ebotcazou@adacore.com>
8082
9e94c78f 8083 * trans.c (call_to_gnu): Invoke the addressable_p predicate only
6bf4cbe8 8084 when necessary. Merge some conditional statements. Update comments.
08ffbdad
EB
8085 Rename unchecked_convert_p local variable to suppress_type_conversion.
8086 Do not suppress conversions in the In case.
8087 (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
8088 into account on non strict-alignment platforms.
8089
7219c2c7
EB
80902008-01-12 Eric Botcazou <ebotcazou@adacore.com>
8091
8092 * utils.c (aggregate_type_contains_array_p): New predicate.
8093 (create_field_decl): In a packed record, force byte alignment
8094 for fields without specified position that contain an array.
8095
52ef2874
EB
80962008-01-12 Eric Botcazou <ebotcazou@adacore.com>
8097
8098 * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
8099
3fa87ef8
JDA
81002008-01-10 John David Anglin <dave.anglin.@nrc-cnrc.gc.ca>
8101
8102 PR ada/34466
8103 * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
8104 sysconf call.
8105 (bit_field): New packed boolean type used by cpu_set_t.
8106 (cpu_set_t): New type corresponding to the C type with
8107 the same name. Note that on the Ada side we use a bit
8108 field array for the affinity mask. There is not need
8109 for the C macro for setting individual bit.
8110 (pthread_setaffinity_np): New imported routine.
8111
9e94c78f 81122008-01-03 Tero Koskinen <tero.koskinen@iki.fi>
e0658eda
TK
8113
8114 PR ada/34647
8115 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
8116 on OpenBSD as is done on other BSD systems.
8117
8118 PR ada/34645
8119 * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
8120 getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
8121 I/O.
8122
8123 PR ada/34644
8124 * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
8125 clearenv().
8126
8127 PR ada/34646
8128 * init.c (__gnat_error_handler, __gnat_install_handler,
8129 __gnat_init_float): Define for OpenBSD.
8130
8131 * initialize.c (__gnat_initialize): Define for OpenBSD.
8132
18bc9cca
ST
81332007-12-27 Samuel Tardieu <sam@rfc1149.net>
8134
8135 PR ada/34553
8136 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
8137 instead of mktemp() or tmpnam() on NetBSD.
8138
f0bf503e
EB
81392007-12-23 Eric Botcazou <ebotcazou@adacore.com>
8140
8141 * trans.c (call_to_gnu): Make the temporary for non-addressable
8142 In parameters passed by reference.
8143 (addressable_p): Return true for STRING_CST and CALL_EXPR.
8144
7469b7bc
AC
81452007-12-19 Robert Dewar <dewar@adacore.com>
8146
9e81dbc7 8147 * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
7469b7bc
AC
8148 Add pragma Warnings (Off) for unassigned IN OUT arguments
8149
8150 * sem_warn.adb (Output_Reference): Suppress messages for internal names
8151 (Check_References): Extensive changes to tune up warnings
8152 (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
8153 (Has_Pragma_Unmodifed_Check_Spec): New function
8154 (Check_References): Implement pragma Unmodified
8155 (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
8156
8157 * par-prag.adb: Dummy entry for pragma Unmodified
8158
8159 * sem_prag.adb: Implement pragma Unmodified
8160
8161 * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
8162 (Proc_Next_Component_Or_Discriminant): Fix typo.
8163 Update comments.
8164
8165 * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
8166 Unmodified.
8167 (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
8168 because the former already takes care of discarding the result.
8169 (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
8170 Add comment.
8171
8172 * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
8173
81742007-12-19 Eric Botcazou <ebotcazou@adacore.com>
8175
8176 * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
8177 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
8178 system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
8179 system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
8180 system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
8181 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
8182 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
8183 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
8184 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
8185 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
8186 (Dynamic_Trampolines_Used): Delete.
8187
8188 * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
8189 Turn on stack probing mechanism on LynxOS.
8190
81912007-12-19 Bob Duff <duff@adacore.com>
8192
8193 * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
8194 the resulting tail recursion by hand. This prevents running out of
8195 memory on deeply nested concatenations, since Field2 is where the left
8196 operand of concatenations is stored.
8197 Fix bug (was returning OK_Orig in some cases). Fix return subtype to
8198 clarify that it can only return OK or Abandon.
8199
8200 * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
8201 operand by iteration, in order to avoid running out of memory on
8202 deeply-nested concatenations. Use the Parent pointer to get back up the
8203 tree.
8204 (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
8205 Resolve_Op_Concat_Rest): New procedures split out of
8206 Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
8207 clearer.
8208
8209 * checks.adb (Remove_Checks): Use Traverse_Proc instead of
8210 Traverse_Func, because the former already takes care of discarding the
8211 result.
8212
8213 * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
8214 because the former already takes care of discarding the result.
8215 (Remove_Warning_Messages): Use appropriate subtype for Status and
9e81dbc7 8216 Discard
7469b7bc
AC
8217
82182007-12-19 Ed Schonberg <schonberg@adacore.com>
8219
8220 * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
8221 discriminants forces expansion of the aggregate into assignments.
8222 (Init_Record_Controller): If the type of the aggregate is untagged and
8223 is not inherently limited, the record controller is not limited either.
8224
82252007-12-19 Robert Dewar <dewar@adacore.com>
8226
8227 * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
8228 handling compile time known size of record or array (case of front end
8229 layout active, e.g. in GNAAMP).
8230
82312007-12-19 Javier Miranda <miranda@adacore.com>
8232
8233 * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
8234 that forces the construction of static dispatch tables in case of
8235 record subtypes.
8236
82372007-12-19 Robert Dewar <dewar@adacore.com>
8238
8239 * exp_ch9.adb (Null_Statements): Moved to library level
8240 (Trivial_Accept_OK): New function
8241 (Expand_Accept_Declaration): Use Trivial_Accept_OK
8242 (Expand_N_Accept_Statement): Use Trivial_Accept_OK
8243
82442007-12-19 Robert Dewar <dewar@adacore.com>
8245
8246 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
8247 in complex case where array is Volatile.
8248
82492007-12-19 Ed Schonberg <schonberg@adacore.com>
8250
8251 * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
8252 properly the Ada2005 rules concerning when the current instance of a
8253 record type is aliased.
8254
82552007-12-19 Ed Schonberg <schonberg@adacore.com>
8256
8257 * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
8258 mangled declaration
8259 (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
8260 declarations.
8261 (P_Variant_Part): Cleaner patch for parenthesized discriminant
8262
82632007-12-19 Vincent Celier <celier@adacore.com>
8264
8265 * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
8266 package is not known
8267
8268 * prj-attr.ads (Unknown_Package): New constant
8269 Do not crash when an unknown package is in several projects
8270
8271 * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
8272 ignored
8273
8274 * prj-nmsc.adb (Check): Remove obsolete code related to no longer
8275 existing package Language_Processing.
8276
82772007-12-19 Ed Schonberg <schonberg@adacore.com>
8278 Gary Dismukes <dismukes@adacore.com>
44914a04 8279 Samuel Tardieu <sam@rfc1149.net>
7469b7bc
AC
8280
8281 PR ada/15803, ada/15805
8282 * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
8283 illegal access subtypes when there is a constrained partial view.
8284 (Check_For_Premature_Usage): New procedure inside
8285 Access_Subprogram_Declaration for checking that an access-to-subprogram
8286 type doesn't reference its own name within any formal parameters or
8287 result type (including within nested anonymous access types).
8288 (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
8289 (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
8290 context is an access_to_variable, the expression cannot be an
8291 access_to_constant.
8292
82932007-12-19 Bob Duff <duff@adacore.com>
8294
8295 * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
8296 (Analyze_Concatenation): Use iteration instead of recursion in order
8297 to avoid running out of stack space for deeply nested concatenations.
8298
82992007-12-19 Ed Schonberg <schonberg@adacore.com>
8300 Gary Dismukes <dismukes@adacore.com>
8301
8302 * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
8303 whose renamed entity is a subprogram that requires overriding.
8304 (Premature_Usage): Test for the case of N_Full_Type_Declaration when
8305 issuing an error for premature usage and issue a message that says
8306 'type' rather than 'object'.
8307
83082007-12-19 Gary Dismukes <dismukes@adacore.com>
8309
8310 PR ada/34149
8311 * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
8312 presence of a statically tagged operand (Present (Static_Tag)) with
8313 test for Indeterm_Ancestor_Call when determining whether to propagate
8314 the static tag to tag-indeterminate operands (which forces dispatching
8315 on such calls).
8316 (Check_Controlling_Formals): Ada2005, access parameters can have
8317 defaults.
8318 (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
8319 not insert subprogram in list of primitive operations if already there.
8320
83212007-12-19 Tristan Gingold <gingold@adacore.com>
8322
8323 * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
8324 global variable.
8325
83262007-12-19 Thomas Quinot <quinot@adacore.com>
8327
8328 Part of PR ada/33688
8329 * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
8330 datagram info on Linux.
8331
83322007-12-19 Vincent Celier <celier@adacore.com>
8333
8334 * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
8335 that the source path name is always found in the dependencies.
8336
83372007-12-19 Robert Dewar <dewar@adacore.com>
8338
8339 * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
8340 Fix name of Wide_Wide_Latin_1/9 file names
8341 Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
8342 Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
8343 Add missing documentation for Ada.Command_Line.Response_File
8344 Update list of warning letters for Warnings pragma
8345 Add documentation for pragma Unmodified
8346
43779dea
ST
83472007-12-19 Samuel Tardieu <sam@rfc1149.net>
8348
8349 * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
8350
5287c2bc
AC
83512007-12-17 Arnaud Charlet <charlet@adacore.com>
8352
8353 * s-vxwork-alpha.ads: Removed, no longer used.
8354
6343804d
JJ
83552007-12-15 Jakub Jelinek <jakub@redhat.com>
8356
8357 * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
8358
3958c9c8
ST
83592007-12-13 Samuel Tardieu <sam@rfc1149.net>
8360
8361 PR ada/34360
8362 * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
8363 mlib-tgt-specific.adb.
8364
78185974
BD
83652007-12-13 Bob Duff <duff@adacore.com>
8366
8367 * trans.c (Attribute_to_gnu): Check for violations of the
8368 No_Implicit_Dynamic_Code restriction. This checking used to be done in
8369 the front end, but is moved here so we can make it more accurate.
8370
e9b54d64
AC
83712007-12-13 Pascal Obry <obry@adacore.com>
8372
8373 * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
8374 version is provided for older GNU/Linux distribution not
8375 supporting thread affinity sets.
9e81dbc7 8376
e9b54d64
AC
8377 * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
8378 call.
8379 (bit_field): New packed boolean type used by cpu_set_t.
8380 (cpu_set_t): New type corresponding to the C type with
8381 the same name. Note that on the Ada side we use a bit
8382 field array for the affinity mask. There is not need
8383 for the C macro for setting individual bit.
8384 (pthread_setaffinity_np): New imported routine.
9e81dbc7 8385
e9b54d64
AC
8386 * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
8387 no null.
8388 (Create_Task): Set the processor affinity mask if information
8389 is present.
9e81dbc7 8390
e9b54d64 8391 * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
9e81dbc7 8392
e9b54d64
AC
83932007-12-13 Robert Dewar <dewar@adacore.com>
8394
9e81dbc7
AS
8395 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
8396 s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
8397 s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
e9b54d64
AC
8398 s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
8399 s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
9e81dbc7
AS
8400 s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
8401 s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
e9b54d64
AC
8402 i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
8403 for subprogram pointers.
8404
8405 * g-ctrl_c.adb: New file.
8406
8407 * g-ctrl_c.ads (Install_Handler): New body.
8408
8409 * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
8410 instead of obsolete function Is_Always_Inlined.
8411 (Freeze_Entity): check for tagged type in imported C subprogram
8412 (Freeze_Entity): check for 8-bit boolean in imported C subprogram
8413 (Freeze_Entity): check for convention Ada subprogram pointer in
8414 imported C subprogram.
8415 (Freeze_Fixed_Point_Type): In the case of a base type where the low
8416 bound would be chopped off and go from negative to zero, force
8417 Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
8418 bound) so that the size computation for the base type will take
8419 negative values into account.
8420
84212007-12-13 Eric Botcazou <ebotcazou@adacore.com>
8422 Bob Duff <duff@adacore.com>
8423 Tristan Gingold <gingold@adacore.com>
8424
9e81dbc7
AS
8425 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
8426 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
8427 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
8428 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
8429 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
8430 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
8431 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
e9b54d64 8432 system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
9e81dbc7 8433 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
e9b54d64
AC
8434 system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
8435 system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
8436 (Always_Compatible_Rep): New flag to control trampolines globally.
8437 (Dynamic_Trampolines_Used): New flag for implementing the
8438 No_Implicit_Dynamic_Code restriction more correctly (not yet used,
8439 and not yet set correctly for some targets).
8440
8441 * s-taprop-vxworks.adb: Use stack limit method of stack checking.
8442 Simply indirectly call s-stchop when a task is created.
8443
9e81dbc7 8444 * ali.ads:
e9b54d64
AC
8445 New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
8446 appears as an argument (entries A) in an ALI file.
8447
8448 * fe.h (Stack_Check_Limits): Declare new target parameter.
8449 (Check_Implicit_Dynamic_Code_Allowed): New procedure.
8450
8451 * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
8452 This variable is declared in C to be sure not subject to elaboration
8453 code.
8454 (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
8455 Storage_Error.
8456
8457 * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
8458 (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
8459
8460 * s-stchop.ads: Add comments.
8461
8462 * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
8463 limit method of stack checking.
8464
8465 * s-stchop-limit.ads: New file.
8466
84672007-12-13 Robert Dewar <dewar@adacore.com>
8468
9e81dbc7
AS
8469 * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
8470 a-cihama.adb, g-awk.adb,
e9b54d64
AC
8471 s-inmaop-posix.adb: Update handling of assigned value/unreferenced
8472 warnings
8473
8474 * exp_smem.adb: Update handling of assigned value/unreferenced warnings
8475
8476 * sem.adb: Update handling of assigned value/unreferenced warnings
8477
8478 * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
8479
8480 * lib-xref.ads: Improve documentation for k xref type
8481
9e81dbc7 8482 * lib-xref.adb:
e9b54d64
AC
8483 Update handling of assigned value/unreferenced warnings
8484 (Generate_Reference): Warning for reference to entity for which a
8485 pragma Unreferenced has been given should be unconditional.
8486 If the entity is a discriminal, mark the original
8487 discriminant as referenced.
8488
8489 * sem_warn.ads, sem_warn.adb
8490 (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
8491 no entities referenced in package
8492 (Check_One_Unit): Don't give message about no entities referenced in
8493 a package if a pragma Unreferenced has appeared.
8494 Handle new warning flag -gnatw.a/-gnatw.A
8495 Update handling of assigned value/unreferenced warnings
8496
8497 * atree.h: Add flags up to Flag247
8498 (Flag231): New macro.
8499
85002007-12-13 Jose Ruiz <ruiz@adacore.com>
8501
8502 * adaint.h: (__gnat_plist_init): Not defined for RTX.
8503
8504 * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
8505 RTX systems.
8506
8507 * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
8508 (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
8509 EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
8510 GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
8511
9e81dbc7 8512 * mingw32.h:
e9b54d64
AC
8513 Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
8514
8515 * sysdep.c (winflush_function for RTX): Procedure that does nothing
8516 since we only have problems with Windows 95/98, which are not
8517 supported by RTX.
8518 (__gnat_ttyname): Return the empty string on Nucleus, just as
8519 done on vxworks.
8520
85212007-12-13 Robert Dewar <dewar@adacore.com>
8522
9e81dbc7 8523 * a-textio.adb, a-textio.ads:
e9b54d64
AC
8524 Extensive changes to private part for wide character encoding
8525
8526 * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
8527 (Look_Ahead): Fix mishandling of encoded sequences
8528 Move declaration of Wch_Con to private part (should not be visible)
8529
8530 * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
8531 UTF-8. Probably this is never used, but if it is, brackets is
8532 clearly correct.
8533
8534 * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
8535 setting wide character encoding for no main program case and when
8536 encoding is specified using -W?
8537 Initialize stack limit of environment task if stack limit method of
8538 stack checking is enabled.
8539 (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
8540 (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
8541 (Get_Main_Unit_Name): New function.
8542 (Gen_Adainit_Ada): Add call to main program for .NET when needed.
8543 (Gen_Output_File): Set Bind_Main_Program to True for .NET
8544
8545 * bindusg.adb: Add line for -Wx switch
8546
8547 * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
8548 Add comments
8549 Add new useful constant WC_Longest_Sequences
8550
8551 * switch-b.adb: Clean up handling of -Wx switch
8552 For -gnatWx, set Wide_Character_Encoding_Method_Specified
8553
8554 * switch-c.adb: -gnatg activates warning on assertion errors
8555 For -gnatWx, set Wide_Character_Encoding_Method_Specified
8556
8557 * s-wchcon.adb: (Is_Start_Of_Encoding): New function
8558
85592007-12-13 Robert Dewar <dewar@adacore.com>
8560 Ed Schonberg <schonberg@adacore.com>
8561
8562 * a-ngcoty.adb: New pragma Fast_Math
8563
8564 * opt.adb: New pragma Fast_Math
8565
9e81dbc7 8566 * par-prag.adb:
e9b54d64
AC
8567 Add Implemented_By_Entry to the list of pragmas which do not require any
8568 special processing.
8569 (Favor_Top_Level): New pragma.
8570 New pragma Fast_Math
8571
8572 * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
8573 (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
8574 Expand_Allocator_Expression): Take into account VM_Target
8575 (Expand_Attribute, case 'Identity): Handle properly the case where
8576 the prefix is a task interface.
8577 New pragma Fast_Math
8578
8579 * par.adb (Next_Token_Is): New function
8580 (P_Pragma): Add Skipping parameter
8581 (U_Left_Paren): New procedure
8582 (U_Right_Paren): New procedure
8583 New pragma Fast_Math
8584
8585 * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
8586 subunit
8587 New pragma Fast_Math
8588
8589 * sem_prag.adb: Add significance value to table Sig_Flag for pragma
8590 Implemented_By_Entry.
8591 (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
8592 (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
8593 items, since it can apply to more than one overloadable entity. Set
8594 new flag Has_Pragma_Inline_Always for Inline_Always case.
8595 (Analyze_Pragma, case Complex_Representation): Improve error message.
8596 (Analyze_Pragma, case Assert): When assertions are disabled build the
8597 rewritten code with Sloc of expression rather than pragma, so new
8598 warning about failing is not deleted.
8599 (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
8600 protected types and update error message to reflect that. Test whether
8601 the protected type is allowed for the pragma (an error is issued if the
8602 type has any entries, or components that do not have preelaborable
8603 initialization).
8604 New pragma Fast_Math
8605 (Analyze_Pragma, case No_Return): Handle generic instance
8606
9e81dbc7 8607 * snames.h, snames.ads, snames.adb:
e9b54d64
AC
8608 Add new predefined name for interface primitive _Disp_Requeue.
8609 New pragma Fast_Math
8610
8611 * a-tags.ads, a-tags.adb: New calling sequence for
8612 String_To_Wide_[Wide_]String
8613 (Secondary_Tag): New subprogram.
8614
8615 * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
8616 from Exp_Attr
8617 New calling sequence for String_To_Wide_[Wide_]String
8618 (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
8619 the use of the secondary stack for image routines.
8620
8621 * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
8622 calling sequence for String_To_Wide_[Wide_]String
8623
8624 * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
8625 Ada 95 mode
8626 (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
8627 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8628
8629 * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
8630 (P_Formal_Part): Use Skipping parameter in P_Pragma call
8631 to improve error recovery
8632
8633 * par-util.adb (Next_Token_Is): New function
8634 (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
8635
8636 * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
8637 semicolon if missing
8638 (P_Pragma): Implement new Skipping parameter
8639 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8640 Fix location of flag for unrecognized pragma message
8641
8642 * par-tchk.adb (U_Left_Paren): New procedure
8643 (U_Right_Paren): New procedure
8644
86452007-12-13 Geert Bosch <bosch@adacore.com>
8646
9e81dbc7 8647 * a-tifiio.adb:
e9b54d64
AC
8648 (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
8649 the second or later Scaled_Divide would omit leading zeroes,
8650 resulting in too few digits produced and a Layout_Error as result.
8651 (Put): Initialize Pos.
8652
86532007-12-13 Robert Dewar <dewar@adacore.com>
8654
8655 atree.ads, atree.adb (Flag231..Flag247): New functions
8656 (Set_Flag231..Set_Flag247): New procedures
8657 (Basic_Set_Convention): Rename Set_Convention to be
8658 Basic_Set_Convention
8659 (Nkind_In): New functions
8660 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8661
8662 * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
8663 instead
8664 of obsolete function Is_Always_Inlined
8665 (Register_Predefined_DT_Entry): Initialize slots of the second
8666 secondary dispatch table.
8667 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8668 (Expand_N_Function_Call): Remove special provision for stack checking.
8669
8670 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
8671 Include _Disp_Requeue in the list of predefined operations.
8672 (Find_Interface_ADT): Modified to fulfill the new specification.
8673 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8674
9e81dbc7 8675 * par-ch4.adb, nlists.ads, nlists.adb:
e9b54d64
AC
8676 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8677
8678 * sinfo.ads, sinfo.adb: (Nkind_In): New functions
8679 Fix location of flag for unrecognized pragma message
8680
8681 * sem_ch7.adb: Use Nkind_In
8682
86832007-12-13 Vincent Celier <celier@adacore.com>
8684
9e81dbc7 8685 * opt.ads:
e9b54d64
AC
8686 Indicate what flags are used by the Project Manager, gprbuild and
8687 gprclean.
8688 (Opt.Follow_Links_For_Dirs): New flag
8689 (Warn_On_Assertion_Failure): New flag
8690 (Wide_Character_Encoding_Method_Specified): New flag
8691 (Suppress_All_Inlining): New switch set by -fno-inline
8692 (Real_VMS_Target): New flag
8693 New pragma Fast_Math
8694
86952007-12-13 Robert Dewar <dewar@adacore.com>
8696
8697 * back_end.adb: Recognize -fno-inline
8698
86992007-12-13 Robert Dewar <dewar@adacore.com>
8700
8701 * checks.adb: Fix optimization problem with short-circuited form
8702
87032007-12-13 Bob Duff <duff@adacore.com>
8704
8705 * clean.adb (Usage): Add line for -aP
8706 (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
8707 with a parameter "procedure Usage", instead of passing a pointer to a
8708 procedure. This is to eliminate trampolines (since the Usage procedure
8709 is often nested in a main procedure, and it would be inconvenient to
8710 unnest it).
8711
8712 * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
8713 to be generic, with a parameter "procedure Callback (...)", instead of
8714 passing a pointer to a procedure. This is to eliminate trampolines
8715 (since the Callback procedure is usually nested).
8716
9e81dbc7 8717 * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
e9b54d64
AC
8718 gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
8719 (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
8720
8721 * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
8722 Use the generic Heap_Sort_G instead of Heap_Sort_A.
8723
87242007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8725
8726 * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
8727 (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
8728 (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
8729 (Renamed_In_Spec): New flag
8730 (Has_Pragma_Inline_Always): New flag
8731 Add missing doc for pragma Obsolescent_Warning
8732 Add missing doc for 17 additional unused flags (230-247)
8733 (Is_Derived_Type): Remove condition "not Is_Generic_Type".
8734 Alphabetize with clauses.
8735 Separate Is_Thunk and Has_Thunks flags
8736 (Write_Entity_Flags): Add forgotten entry for Has_Thunks
8737 (Related_Interface): Renamed to Related_Type.
8738 (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
8739 (Set_Is_Flag): Restrict the assertion.
8740
87412007-12-13 Vincent Celier <celier@adacore.com>
8742
8743 * errout.adb (Output_Source_Line): Do not keep a trailing space after
8744 the source line number if the source line is empty.
8745
87462007-12-13 Geert Bosch <bosch@adacore.com>
8747
8748 * eval_fat.adb (Decompose_Int): Handle argument of zero.
8749 (Compose): Remove special casing of zero.
8750 (Exponent): Likewise.
8751 (Fraction): Likewise.
8752 (Machine): Likewise.
8753 (Decompose): Update comment.
8754
87552007-12-13 Ed Schonberg <schonberg@adacore.com>
8756
8757 * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
8758 limited ancestor part, initialize controllers of enclosing record
8759 before expanding ancestor aggregate.
8760 (Gen_Assign): If a component of the aggregate is box-initialized, add
8761 code to call Initialize if the component is controlled, and explicit
8762 assignment of null if the component is an access type.
8763
8764 Handle properly aggregates for limited types that appear in object
8765 declarations when the aggregate contains controlled values such as
8766 protected types.
8767 When expanding limited aggregates into individual components, do not
8768 call Adjust on controlled components that are limited.
8769
87702007-12-13 Ed Schonberg <schonberg@adacore.com>
8771
8772 * expander.adb: Take into account N_Subprogram_Renaming_Declaration
8773
87742007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8775
8776 * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
8777 predefined primitive _Disp_Requeue.
8778 (Make_Predefined_Primitive_Specs): Create the spec for predefined
8779 primitive _Disp_Requeue.
8780 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
8781 type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
8782 (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
8783 an interface type. In case of limited interfaces we now declare all the
8784 predefined primitives associated with synchronized interfaces as
8785 abstract.
8786 (Predef_Spec_Or_Body): For interface types generate abstract subprogram
8787 declarations.
8788 (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
8789 tagged type is an interface type and there is no user-defined equality
8790 function.
8791 Add also bodies of predefined primitives associated with synchronized
8792 interfaces.
8793 (Freeze_Record_Type): Do not build bodies of predefined primitives of
8794 interface types because they are now defined abstract.
8795 Add missing documentation.
8796 (Expand_Record_Controller): Update occurrence of Related_Interface
8797 to Related_Type.
8798 (Build_Offset_To_Top_Functions): Do nothing in case of VM.
8799 (Expand_N_Object_Declaration): Take into account VM_Target when handling
8800 class wide interface object declaration.
8801 (Expand_Previous_Access_Type): Do not create a duplicate master entity
8802 if the access type already has one.
8803 (Expand_N_Object_Declaration): Defend against attempt to validity check
8804 generic types. Noticed for -gnatVcf specified with previous errors.
8805
88062007-12-13 Arnaud Charlet <charlet@adacore.com>
8807
8808 * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
8809 Expand_Allocator_Expression): Take into account VM_Target
8810
8811 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
8812 secondary stack when VM_Target /= No_VM
8813
88142007-12-13 Javier Miranda <miranda@adacore.com>
8815 Ed Schonberg <schonberg@adacore.com>
8816
8817 * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
8818 Is_Complation_Unit by Is_Library_Level_Entity in the code
8819 that decides if the static dispatch tables need to be built.
8820 (Wrap_Transient_Declaration): Do not generate a finalization call if
8821 this is a renaming declaration and the renamed object is a component
8822 of a controlled type.
8823
88242007-12-13 Gary Dismukes <dismukes@adacore.com>
8825
8826 * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
8827 In the case where the renamed subprogram is a dereference, call
8828 Force_Evaluation on the prefix.
8829
88302007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8831 Ed Schonberg <schonberg@adacore.com>
8832
8833 * exp_ch9.adb (Expand_N_Asynchronous_Select,
8834 Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
8835 comment reformatting.
8836 (Set_Privals): Inherit aliased flag from formal. From code reading.
8837 (Build_Simple_Entry_Call): Out parameters of an access type are passed
8838 by copy and initialized from the actual. This includes entry parameters.
8839 (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
8840 and Ada 2005 models of requeue.
8841 (Null_Statements): Still connsider do-end block null if it contains
8842 Unreferenced and Warnings pragmas.
8843 (Expand_N_Accept_Statement): Do not optimize away null do end if
8844 dispatching policy is other than defaulted.
8845 (Expand_N_Timed_Entry_Call): When the triggering statement is a
8846 dispatching call, manually analyze the delay statement.
8847 (Find_Parameter_Type): Move subprogram to Sem_Util.
8848
88492007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8850 Javier Miranda <miranda@adacore.com>
8851
8852 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
8853 _Disp_Requeue occupies dispatch table slot number 15. Move
8854 _Disp_Timed_Select to slot 16.
8855 (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
8856 generate the spec and body of _Disp_Reqeueue.
8857 (Make_DT): Build and initialize the second dispatch table.
8858 Handle initialization of RC_Offset when the parent
8859 is a private type with variable size components.
8860 (Make_Secondary_DT): Complete documentation. Add support to
8861 initialize the second dispatch table.
8862 (Make_Tags): Generate the tag of the second dispatch table.
8863 (Register_Primitive): Add support to register primitives in the
8864 second dispatch table.
8865
88662007-12-13 Pascal Obry <obry@adacore.com>
8867
8868 * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
8869 Windows. This signal is used by gnatmake to kill child processes for
8870 example.
8871
88722007-12-13 Javier Miranda <miranda@adacore.com>
8873
8874 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
8875 support for generic dispatching constructor calls in which we need to
8876 locate the tag of a secondary dispatch table associated with an
8877 interface type to properly dispatch the call.
8878 (Expand_N_Attribute_Reference [case Address],
8879 Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
8880 handling of VM targets.
8881
88822007-12-13 Robert Dewar <dewar@adacore.com>
8883 Ed Schonberg <schonberg@adacore.com>
8884
8885 * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
8886 assert fail
8887
8888 * ug_words: Add entries for -gnatw.a -gnatw.A
8889
8890 * sem_res.adb (Set_String_Literal_Subtype): If the context of the
8891 literal is a subtype with non-static constraints, use the base type of
8892 the context as the base of the string subtype, to prevent type
8893 mismatches in gigi.
8894 (Resolve_Actuals): If the actual is an entity name, generate a
8895 reference before the actual is resolved and expanded, to prevent
8896 spurious warnings on formals of enclosing protected operations.
8897 (Analyze_Overloaded_Selected_Component): If type of prefix if
8898 class-wide, use visible components of base type.
8899 (Resolve_Selected_Component): Ditto.
8900 (Resolve_Short_Circuit): Detect case of pragma Assert argument
8901 evaluating to False, and issue warning message.
8902
8903 * usage.adb: Add lines for -gnatw.a and -gnatw.A
8904
89052007-12-13 Emmanuel Briot <briot@adacore.com>
8906
8907 * g-calend.ads (No_Time): New constant, to represent an uninitialized
8908 time value
8909
8910 * g-catiio.ads, g-catiio.adb (Value): Added support for more date
8911 formats.
8912 (Month_Name_To_Number): New subprogram
8913
8914 * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
8915 letter to upper-case.
8916
89172007-12-13 Robert Dewar <dewar@adacore.com>
8918 Ed Schonberg <schonberg@adacore.com>
8919
8920 * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
8921
8922 * layout.adb (Resolve_Attribute, case 'Access): If designated type of
8923 context is a limited view, use non-limited view when available. If the
8924 non-limited view is an unconstrained array, this enforces consistency
8925 requirements in 3.10.2 (27).
8926 (Layout_Type): For an access type whose designated type is a limited
8927 view, examine its declaration to determine if it is an unconstrained
8928 array, and size the access type accordingly.
8929 (Layout_Type): Do not force 32-bits for convention c subprogram
8930 pointers in -gnatdm mode, only if real vms target.
8931
8932 * sem_attr.adb (Analyze_Access_Attribute): Use new flag
8933 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
8934 (Analyze_Access_Attribute,Attribute_Address): Remove checks for
8935 violations of the No_Implicit_Dynamic_Code restriction.
8936 (Resolve_Attribute, case 'Access): If designated type of context is a
8937 limited view, use non-limited view when available. If the non-limited
8938 view is an unconstrained array, this enforces consistency requirements
8939 in 3.10.2 (27).
8940 (Layout_Type): For an access type whose designated type is a limited
8941 view, examine its declaration to determine if it is an unconstrained
8942 array, and size the access type accordingly.
8943
89442007-12-13 Vincent Celier <celier@adacore.com>
8945
8946 * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
8947 object directory of main project does not exist.
8948 On VMS, correctly set then environment variable for the source
8949 directories.
8950
89512007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
8952
8953 * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
8954 set to True this procedure will create the value of type REG_EXPAND_SZ.
8955 It was only possible to create REG_SZ values before.
8956
89572007-12-13 Robert Dewar <dewar@adacore.com>
8958
8959 * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
8960 g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
8961 namet-sp.adb, namet-sp.ads: New files.
8962
8963 * g-speche.adb: Use generic routine in g-spchge
8964
9e81dbc7 8965 * s-wchcnv.ads, s-wchcnv.adb:
e9b54d64
AC
8966 Minor code cleanup (make formal type consistent with spec)
8967
8968 * namet.adb: Update comments.
8969
8970 * par-endh.adb (Evaluate_End_Entry): Use new
8971 Namet.Sp.Is_Bad_Spelling_Of function
8972
8973 * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
8974
8975 * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
8976 ancestor is an access type initialized with a box, set its type
8977 explicitly, for use in subsequent expansion.
8978 (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
8979 function
8980
89812007-12-13 Robert Dewar <dewar@adacore.com>
8982
8983 * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
8984 access Vstring)
8985
89862007-12-13 Robert Dewar <dewar@adacore.com>
8987
8988 * inline.adb (Back_End_Cannot_Inline): Use new flag
8989 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
8990
8991 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
8992 Has_Pragma_Inline_Always instead.
8993 of obsolete function Is_Always_Inlined
8994 (Build_Body_To_Inline): Same change
8995 (Cannot_Inline): Same change
8996 Do not give warning on exception raise in No_Return function
8997
8998 * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
8999 component has two inconsistent component clauses in the same record
9000 representation clause, favor the message that complains about
9001 duplication rather than inconsistency.
9002 Update comments.
9003 (Record_Representation_Clause): Do not warn on missing component
9004 clauses for inherited components of a type extension.
9005 (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
9006 an overloadable item if it is a pragma that can apply to multiple
9007 overloadable entities (e.g. Inline) because a pragma cannot be on
9008 more than one chain at a time.
9009 (Validate_Unchecked_Conversion): Add code to warn on unchecked
9010 conversion where one of the operands is Ada.Calendar.Time.
9011 (Analyze_Attribute_Definition_Clause): Fix typo in error message.
9012 For now, ignore Component_Size clause on VM targets, as done for
9013 pragma Pack.
9014
90152007-12-13 Emmanuel Briot <briot@adacore.com>
9016 Vincent Celier <celier@adacore.com>
9017
9018 * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
9019 string
9020 (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
9021 prj.ads
9022 (Hash): Move instantiation of System.HTable.Hash from spec to body
9023 (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
9024 systems, since we do not need to recompute the Name_Id for the canonical
9025 file name.
9026 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
9027 as a parameter. This parameter is in fact always "ada" in all calls, and
9028 we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
9029 while loading a project with 40000 files
9030
9031 * prj-attr.adb: Fix name of attribute Dependency_Driver
9032 Change the kind of indexing for attribute Root
9033
9034 * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
9035 variables already declared, in case constructions.
9036
9037 * prj-env.adb (Initialize): Reset Current_Source_Path_File and
9038 Current_Object_Path_File to No_Path.
9039
9040 * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
9041 ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
9042
9043 * prj-makr.adb: new parameter Current_Dir
9044
9045 * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
9046 Ada sources when language is not Ada.
9047 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
9048 (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
9049 (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
9050 (Locate_Directory): Always resolve links when computing Canonical_Path
9051 (Look_For_Sources): Make sure that Name_Buffer contains the file name
9052 in Source_Files before checking for the presence of a directory
9053 separator.
9054 Optimize calls to Name_Find when on case sensitive systems.
9055 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
9056 as a parameter.
9057 (Prj.Nmsc.Check): new parameter Current_Dir
9058 (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
9059 cannot be empty and the spec suffix cannot be the same as the body or
9060 separate suffix.
9061 (Get_Unit): When a file name can be of several unit kinds (spec, body or
9062 subunit), always consider the longest suffix.
9063 (Check_Configuration): Do not issue an error if there is no compiler
9064 for a language. Just issue a warning and ignore the sources for the
9065 language.
9066 (Check_Library_Attributes): Only check Library_Dir if Library_Name is
9067 not empty.
9068 (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
9069 (Unit_Exceptions): New hash table
9070 (Check_Naming_Schemes): Check if a file that could be a unit because of
9071 the naming scheme is not in fact a source because there is an exception
9072 for the unit.
9073 (Look_For_Sources): Put the unit exceptions in hash table
9074 Unit_Exceptions
9075 (Get_Unit_Exceptions): Give initial value No_Source to local variable
9076 Other_Part to avoid exception when code is compiled with validity
9077 checking.
9078 (Get_Sources_From_File): Check that there is no directory information
9079 in the file names.
9080 (Look_For_Sources): Check that there is no directory information in the
9081 list of file names in Source_Files.
9082 (Look_For_Sources): In multi-language mode, do not allow exception file
9083 names that are excluded.
9084 (Excluded_Sources_Htable): New hash table
9085 (Search_Directories.Check_File): New procedure to simplify
9086 Search_Directories.
9087 (Search_Directories): Do not consider excluded sources
9088 (Look_For_Sources): Populate Excluded_Sources_Htable before calling
9089 Search_Directories.
9090 (Get_Exceptions): Set component Lang_Kind of Source_Data
9091 (Get_Unit_Exceptions): Ditto
9092 (Search_Directories): Ditto
9093
9094 * prj-pars.adb: new parameter Current_Dir
9095
9e81dbc7 9096 * prj-part.ads, prj-part.adb:
e9b54d64
AC
9097 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
9098 (Opt.Follow_Links_For_Dirs): New flag
9099 (Project_Path_Name_Of): Cache information returned by this routine as
9100 Locate_Regular_File is a costly routine. The code to output a log
9101 information and the effective call to Locate_Regular_File is now
9102 factorized into a routine (code clean-up).
9103 (Parse, Parse_Single_Project): new parameter Current_Dir
9104 When main project file cannot be found, indicate in the error
9105 message the project path that was used to do the search.
9106
9107 * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
9108 (Prj.Proc.Process*): new parameter Current_Dir
9109
9110 * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
9111
91122007-12-13 Bob Duff <duff@adacore.com>
9113
9114 * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
9115 procedure to be called from the back end to check the
9116 No_Implicit_Dynamic_Code restriction.
9117
91182007-12-13 Arnaud Charlet <charlet@adacore.com>
9119
9120 * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
9121 Fixes another case where RTE_Available_Call was ignored instead of being
9122 taken into account.
9123 (Load_Fail): Ditto.
9124
9125 * rtsfind.ads: Add new entries.
9126
91272007-12-13 Robert Dewar <dewar@adacore.com>
9128
9129 * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
9130 g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
9131
9132 * scn.adb: Implement BOM recognition
9133
91342007-12-13 Thomas Quinot <quinot@adacore.com>
9135 Ed Schonberg <schonberg@adacore.com>
9136
9137 * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
9138 subprogram body that acts as its own spec may not have a non-private
9139 WITH clause on a private sibling.
9140 (Build_Unit_Name): If the parent unit in the name in a with_clause on a
9141 child unit is a renaming, create an implicit with_clause on that
9142 parent, and not on the unit it renames, to prevent visibility errors
9143 in the current unit.
9144
91452007-12-13 Ed Schonberg <schonberg@adacore.com>
9146
9147 * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
9148 renaming declaration, use the Slocs of the formal parameters from the
9149 declaration of the formal subprogram when creating the formal parameter
9150 entities in the renaming declaration.
9151 (Analyze_Formal_Type_Declaration): Change the placement of the error
9152 message concerning illegal known discriminants. It is now posted on the
9153 type rather than on the first discriminant. This change ensures early
9154 error report.
9155 (Freeze_Subprogram_Body): If the generic subprogram is nested within
9156 the package body that contains the instance, do not generate an
9157 out-of-place freeze node for the enclosing package.
9158 (Collect_Previous_Instantiations): Ignore internal instantiations
9159 generated for formal packages.
9160 (Validate_Derived_Type_Instance): Add a check that when a formal
9161 derived type is Known_To_Have_Preelab_Init then the actual type must
9162 have preelaborable initialization, and issue an error when this
9163 condition is violated.
9164
91652007-12-13 Robert Dewar <dewar@adacore.com>
9166
9167 * s-imenne.adb, s-imenne.ads: New files.
9168
9e81dbc7
AS
9169 * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
9170 s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
9171 s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
9172 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
e9b54d64
AC
9173 s-imgwch.ads: New calling sequence for Image routines to avoid sec
9174 stack usage.
9175
91762007-12-13 Javier Miranda <miranda@adacore.com>
9177 Ed Schonberg <schonberg@adacore.com>
9178
9179 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
9180 generation of spurious error if parent is an interface type; caused
9181 because predefined primitive bodies will be generated later by
9182 Freeze_Record_Type.
9183 (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
9184 flag.
9185 (Derive_Subprograms): Handle derivations of predefined primitives
9186 after all the user-defined primitives to ensure that they are
9187 found in proper order in instantiations.
9188 (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
9189 of Related_Interface to Related_Type.
9190 (Record_Type_Declaration): Minor reordering of calls to decorate the
9191 Tag component because the entity must have set its Ekind attribute
9192 before setting its Is_Tag attribute.
9193 (Analyze_Subtype_Declaration): In the case of subtypes with
9194 Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
9195
91962007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
9197 Ed Schonberg <schonberg@adacore.com>
9198
9199 * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
9200 statement to the list of contexts where a selected component with a
9201 concurrent tagged type prefix should yield a primitive operation.
9202 (Find_Primitive_Operation): Handle case of class-wide types.
9203 (Analyze_Overloaded_Selected_Component): If type of prefix is
9204 class-wide, use visible components of base type.
9205 (Resolve_Selected_Component): Ditto.
9206 (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
9207 formal of a generic subprogram. find candidate interpretations by
9208 scanning the list of generic formal declarations.:
9209 (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
9210 type from a limited_with_clause, and the full view is available, use it
9211 for subsequent semantic checks.
9212 (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
9213 (Find_Primitive_Operation): New function.
9214 (Analyze_Overloaded_Selected_Component): insert explicit dereference
9215 only once if several interpretations of the prefix yield an access type.
9216 (Try_Object_Operation): Code and comment cleanup.
9217 (Analyze_Selected_Component): Reorder local variables. Minot comment and
9218 code reformatting. When the type of the prefix is tagged concurrent, a
9219 correct interpretation might be available in the primitive and
9220 class-wide operations of the type.
9221
92222007-12-13 Robert Dewar <dewar@adacore.com>
9223 Ed Schonberg <schonberg@adacore.com>
9224
9225 * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
9226 renaming entry as subprogram using rename-as-body if subprogram spec
9227 frozen.
9228 (Use_One_Type): The clause is legal on an access type whose designated
9229 type has a limited view.
9230 (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
9231 (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
9232 (Analyze_Renamed_Primitive_Operation): new procedure to determine the
9233 operation denoted by a selected component.
9234 (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
9235 it can be an expression, possibly overloaded, that returns a task or
9236 an access to one.
9237
92382007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
9239 Gary Dismukes <dismukes@adacore.com>
9240
9241 * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
9242 requeue statement is dispatching. Do not emit an error when the name is
9243 not an entry and the context is a dispatching select. Add code to
9244 perform subtype conformance between the formals of the current entry
9245 and those of the target interface primitive.
9246 (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
9247 Timed_Entry_Call): Analyze the triggering statement as the first step of
9248 the processing. If this is a dispatching select, postpone the analysis
9249 of all select statements until the Expander transforms the select. This
9250 approach avoids generating duplicate identifiers after the Expander has
9251 replicated some of the select statements. In case the Expander is
9252 disabled, perform regular analysis.
9253 (Check_Triggering_Statement): New routine.
9254 (Analyze_Requeue): Exclude any interpretations that are not entries when
9255 checking overloaded names in a requeue. Also test type conformance for
9256 matching interpretations rather than requiring subtype conformance at
9257 that point to conform with the RM's resolution rule for requeues.
9258
92592007-12-13 Ed Schonberg <schonberg@adacore.com>
9260
9261 * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
9262 inherited operation is a defaulted tag-indeterminate call, and there is
9263 a statically tagged actual, use the static tag as a controlling actual
9264 for the defaulted actual.
9265
92662007-12-13 Geert Bosch <bosch@adacore.com>
9267
9268 * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
9269 context, so do not call Check_Non_Static_Context.
9270
92712007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
9272
9273 * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
9274 whether formal E is an entity which may have parameters.
9275
92762007-12-13 Bob Duff <duff@adacore.com>
9277 Javier Miranda <miranda@adacore.com>
9278 Robert Dewar <dewar@adacore.com>
9279
9280 * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
9281 (Set_Convention): New procedure to set the Convention flag, and in
9282 addition make sure the Favor_Top_Level flag is kept in sync (all
9283 foreign-language conventions require Favor_Top_Level = True).
9284 (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
9285 to Related_Type.
9286 (Collect_Interfaces_Info): Minor update to handle the two secondary
9287 dispatch tables. Update occurrence of Related_Interface to Related_Type.
9288 (Generate_Parent_Ref): Add parameter to specify entity to check
9289 (Is_Preelaborable_Expression): Allow the name of a discriminant to
9290 initialize a component of a type with preelaborable initialization.
9291 This includes the case of a discriminal used in such a context.
9292 (Is_Dependent_Component_Of_Mutable_Object): Take into account the
9293 latest Ada 2005 rules about renaming and 'Access of
9294 discriminant-dependent components.
9295 (Check_Nested_Access): Add handling when there are no enclosing
9296 subprograms (e.g. case of a package body).
9297 (Find_Parameter_Type): Factor routine from several other compiler files.
9298 Remove routine from Find_Overridden_Synchronized_Primitive.
9299
93002007-12-13 Thomas Quinot <quinot@adacore.com>
9301
9302 * sinput.adb (Get_Source_File_Index): Add assertion to guard against
9303 an invalid access to an uninitialized slot in the
9304 Source_File_Index_Table.
9305
93062007-12-13 Thomas Quinot <quinot@adacore.com>
9307
9308 * sinput-l.adb (Load_File): Disable style checks when preprocessing.
9309
93102007-12-13 Bob Duff <duff@adacore.com>
9311
9312 * s-soflin.ads: Apply new pragma Favor_Top_Level to all
9313 access-to-subprogram types in this package.
9314
93152007-12-13 Olivier Hainque <hainque@adacore.com>
9316
9317 * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
9318 with Stack_Grows_Down in System.Parameters. Rename Array_Address into
9319 Stack_Overlay_Address and document that we are using an internal
9320 abstraction.
9321 (Byte_Size, Unsigned_32_Size): Remove, now useless.
9322 (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
9323 consistently throughout the various implementation pieces.
9324
9325 * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
9326 overlay we are using to fill the stack area with patterns.
9327 (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
9328 (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
9329 (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
9330
93312007-12-13 Robert Dewar <dewar@adacore.com>
9332
9333 * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
9334
93352007-12-13 Arnaud Charlet <charlet@adacore.com>
9336
9e81dbc7 9337 * s-tassta.adb:
e9b54d64
AC
9338 (Create_Task): Take into account tasks created by foreign threads.
9339 Code clean up: use constants instead of hard coded values.
9340
93412007-12-13 Robert Dewar <dewar@adacore.com>
9342
9343 * styleg.adb (Check_Comment): More liberal rules for comment placement
9344
93452007-12-13 Olivier Hainque <hainque@adacore.com>
9346
9347 * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
9348 of Procedure Value instead of Frame Pointer as the invocation
9349 identifier associated with the instruction pointer in each traceback
9350 entry.
9351
9352 * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
9353 TB_Entry_For): Revert back to use of Procedure Value instead of Frame
9354 Pointer as the invocation identifier passed to tbk$symbolize.
9355
9356 * s-traent-vms.ads, s-traent-vms.adb
9357 (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
9358 Procedure Value instead of Frame Pointer as the invocation identifier
9359 passed to tbk$symbolize.
9360
93612007-12-13 Robert Dewar <dewar@adacore.com>
9362
9e81dbc7 9363 * tbuild.ads, tbuild.adb:
e9b54d64
AC
9364 Fix location of flag for unrecognized pragma message
9365
93662007-12-13 Robert Dewar <dewar@adacore.com>
9367
9368 * treepr.ads, treepr.adb: (pl): implement use of positive value
9369 shorthands
9370
93712007-12-13 Robert Dewar <dewar@adacore.com>
9372
9373 * xeinfo.adb: Remove warnings
9374 * xnmake.adb: Remove warnings
9375 * xsinfo.adb: Remove warnings
9376 * xtreeprs.adb: Remove warnings
9377 * xsnames.adb: Remove warnings
9378
9379 * a-ngcoar.adb: Fix typo.
9380 * s-interr.adb: Minor reformatting
9381 * env.c: Minor reformatting.
9382 * g-bytswa.adb: Minor reformatting.
9383 * g-rannum.ads: Minor documentation improvements
9384 * s-tasinf-mingw.adb: Minor header fix
9385 * a-clrefi.adb: Minor reformatting
9386 * g-sttsne.ads: Minor documentation improvement
9387 * g-sttsne-locking.ads: Minor documentation improvement
9388 * g-soliop-solaris.ads: Minor documentation improvement
9389 * g-soliop-mingw.ads: Minor documentation improvement
9390 * g-soliop.ads: Minor documentation improvement
9391 * exp_aggr.ads: Minor reformatting
9392 * debug.adb: Add documentation for the gprbuild debug flags
9393 * exp_ch2.adb: Use Nkind_In to simplify code throughout
9394 * exp_pakd.adb: Minor reformatting
9395
9396 * g-altive.ads, g-alleve.adb: Remove assertions.
9397 Add comment about minor differences between targets regarding
9398 floating-point operations.
9399
9400 * g-thread.adb: Remove pragma unreferenced.
9401 * lib.ads: Minor reformatting
9402 * par-ch9.adb: Minor reformatting of error messages
9403 * sem_case.adb: Minor reformatting
9404 * s-fileio.adb: Minor reformattinng
9405 * s-vmexta.ads: Minor typo
9e81dbc7 9406 * vxaddr2line.adb:
e9b54d64
AC
9407 Take into account 'Success' value as per new GNAT warning.
9408
94092007-12-13 Vincent Celier <celier@adacore.com>
9410
9411 * a-direct.adb (Create_Path): Always take '/' as a directory separator,
9412 even on Windows
9413
94142007-12-13 Robert Dewar <dewar@adacore.com>
9415 Bob Duff <duff@adacore.com>
9416
9417 * gnat_ugn.texi: Dcoument new rules for style check comment alignment
9418 Document that suffixes may be terminations of each others
9419 Add doc for -gnatw.a and -gnatw.A
9420 Document gnatbind -Wx switch
9421 Document BOM recognition
9422 Document pragma Implemented_By_Entry.
9423 Document new units.
9424
9425 * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
9426 Add doc for pragma Unreferenced suppressing no entities referenced msg
9427 Add documentation of GNAT.Directory_Operations.Iteration
9428 Add documentation of GNAT.Random_Numbers
9429 Add documentation for pragma Shared.
9430 Correct documentation for Bit_Order
9431 Add documentation for the Pool_Address attribute.
9432 Fix and improve documentation of pragma machine_attribute.
9433 New pragma Fast_Math
9434 Document BOM recognition
9435
9436 * vms_data.ads: Add entries for -gnatw.a -gnatw.A
9437 Add /Wide_Character_Encoding for binder
9438 Add qualifier for the new gnatpp option --no-separate-loop-then
9439
94402007-12-13 Matthew Heaney <heaney@adacore.com>
9441
9442 * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
9443 which generic formal operations are called for each operation.
9444
94452007-12-13 Olivier Hainque <hainque@adacore.com>
9446
9447 * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
9448 (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
9449
94502007-12-13 Emmanuel Briot <briot@adacore.com>
9451
9452 * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
9453 Reference_Dir unless we actually need it.
9454
94552007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
9456 Tristan Gingold <gingold@adacore.com>
9457
9458 * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
9459
9460 * s-osprim-vms.adb,
9461 a-calend-vms.adb: Remove pragma warning off and add pragma
9462 unreferenced.
9463
94642007-12-13 Robert Dewar <dewar@adacore.com>
9465
9466 * impunit.adb: Add entries for missing units
9467
9468 * Makefile.rtl: Add new run-time units.
9469
9470 * Make-lang.in: Update dependencies.
9471
94722007-12-13 Bob Duff <duff@adacore.com>
9473
9474 * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
9475 types, set Can_Use_Internal_Rep appropriately, based on
9476 Always_Compatible_Rep_On_Target.
9477
94782007-12-13 Gary Dismukes <dismukes@adacore.com>
9479 Arnaud Charlet <charlet@adacore.com>
9480
9481 * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
9482 it to the front end and setting the aamp_target environment variable
9483 to the switch's argument to ensure that gnaampbind and gnaamplink will
9484 take the specified library into account.
9485 (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
9486 target, since the CIL compiler supports an "object" file (.il files).
9487
94882007-12-13 Vincent Celier <celier@adacore.com>
9489
9490 * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
9491 (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
9492
94932007-12-13 Geert Bosch <bosch@adacore.com>
9494
9e81dbc7 9495 * s-parame-vxworks.adb:
e9b54d64
AC
9496 Update comments to reflect usage of this package by Nucleus.
9497
94982007-12-13 Arnaud Charlet <charlet@adacore.com>
9499
9500 * i-vxwork.ads: Kill new warning on Convention C, since changing the
9501 spec would break code.
9502
9503 * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
9504
9505 * system-vxworks-alpha.ads: Removed.
9506
e74a122e
EB
95072007-12-10 Eric Botcazou <ebotcazou@adacore.com>
9508
9509 * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
9510
5320014a
ST
95112007-12-09 Samuel Tardieu <sam@rfc1149.net>
9512
9513 PR ada/34366
9514 * sem_ch3.adb (Designates_T): New function.
9515 (Mentions_T): Factor reusable part of the logic into Designates_T.
9516 Consider non-access parameters and access and non-access result.
9517 (Check_Anonymous_Access_Components): Set ekind of anonymous access to
9518 E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
9519
9520 * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
9521
da746f77
LB
95222007-12-07 Ludovic Brenta <ludovic@ludovic-brenta.org>
9523
9d651736 9524 PR ada/34361
da746f77
LB
9525 * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
9526 the new implementation of target-specific calls.
9527
ebe0660b
OH
95282007-12-07 Olivier Hainque <hainque@adacore.com>
9529
9530 * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
9531 the designated full view, only follow a second level Full_View link
9532 for Non_Limited_Views of from_limited_with references.
9e81dbc7 9533
2eb160f2
ST
95342007-12-07 Samuel Tardieu <sam@rfc1149.net>
9535
9536 PR ada/15805
9537 * sem_ch6.adb (Process_Formals): Prevent an access type formal
9538 to be initialized with an access to constant object.
9539
9cc11b58
ST
9540 * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
9541 when an access to constant is used to initialize an access
9542 value.
9543
72f69ddf
ST
9544 PR ada/21346
9545 * a-direct.adb (Compose): Containing_Directory can be an empty string.
9546
5a2fe31a
OH
95472007-12-07 Olivier Hainque <hainque@adacore.com>
9548
9549 PR ada/34173
9550 * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
9551 the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
9552 this is from an alignment clause on the GNAT entity.
9553 * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
9554 to distinguish the case where we set it from the type's alignment.
9555 When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
9556 whether this alignment was set from an explicit alignment clause.
9557
4039fb35
EB
95582007-12-06 Eric Botcazou <ebotcazou@adacore.com>
9559
9560 * decl.c (make_packable_type): Revert last change.
9561 (gnat_to_gnu_field): Avoid setting size and position multiple times.
9562 * utils.c (finish_record_type): Retrieve the real name of the type.
9563
0ec479dc
EB
95642007-12-05 Eric Botcazou <ebotcazou@adacore.com>
9565
9566 * trans.c (lvalue_required_p): Take base node directly instead
9567 of its parent. Rename second parameter to 'gnu_type'.
9568 <N_Indexed_Component>: Return 0 if the node isn't the prefix.
9569 <N_Slice>: Likewise.
9570 (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
9571 Adjust calls to lvalue_required_p.
9572
07c7262e
ST
95732007-12-05 Samuel Tardieu <sam@rfc1149.net>
9574
9575 PR ada/21489
9576 * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
9577 parameters of an entry call.
9578
9e94c78f 95792007-12-03 Robert Dewar <dewar@adacore.com>
9e81dbc7 9580 Samuel Tardieu <sam@rfc1149.net>
403fd939
RD
9581
9582 PR ada/34287
9583 * sem_util.adb (Safe_To_Capture_Value): Do not capture values
9584 of variables declared in a library-level package.
9e81dbc7 9585
0bcb4d2a
ST
95862007-12-02 Samuel Tardieu <sam@rfc1149.net>
9587
9588 * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
9589 of Empty_String'Unchecked_Access.
9590
dd9c642a
ST
9591 * Makefile.in: Add support for sh4-linux.
9592
9593 * system-linux-sh4.ads: New file.
9594
35330114
KB
95952007-12-01 Kostik Belousov <kostikbel@ukr.net>
9596
9597 PR ada/33722
9598 * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
9599 and its argument must not be free()ed.
9600
a6dcb051
EB
96012007-11-29 Eric Botcazou <ebotcazou@adacore.com>
9602
9603 * decl.c (make_packable_type): Retrieve the real name of the type.
9604 (maybe_pad_type): Simplify similar code.
9605
39a97416
ST
96062007-11-28 Samuel Tardieu <sam@rfc1149.net>
9607
a6968b8b 9608 PR ada/15804
39a97416
ST
9609 * par-ch3.adb (P_Variant_Part): Signal an error when anything other
9610 than an identifier is used after "case" in a variant_part.
9611
b99dfeb3 9612 PR ada/17318
9c5a3a8d
ST
9613 * par-ch4.adb (Is_Parameterless_Attribute): New map.
9614 (P_Name, Scan_Apostrophe block): Parse left parenthesis following
9615 attribute name or not depending on the new map.
9616
9617 * sem-attr.adb (Analyze_Attribute): Parameterless attributes
9618 returning a string or a type will not be called with improper
9619 arguments.
9620
9621 * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
9622
9623 * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
9624
5a218498
ST
9625 PR ada/32792
9626 * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
9627 Signal an error when attribute argument is a fixed-point value of
9628 an unknown type.
9629
7bde4677
ST
9630 PR ada/22559
9631 * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
9632 a derived ordinary fixed point type.
9633
9634 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
9635 RM_Size when a Small clause is found.
9636
182e0d71
AK
96372007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
9638
9e81dbc7
AS
9639 PR 34081/C++
9640 * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
9641 Pass 'false' for the new allocate_struct_function parameter.
9642 * utils.c (build_function_stub): Likewise.
182e0d71 9643
87caf699
RG
96442007-11-25 Richard Guenther <rguenther@suse.de>
9645
4039fb35 9646 * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
87caf699
RG
9647 (gnat_poplevel): Likewise.
9648
f1c8c7ee
EB
96492007-11-25 Eric Botcazou <ebotcazou@adacore.com>
9650
9651 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
9652 strict alignment, no alignment clause and a known static size, cap
9653 the type alignment to the greatest power of 2 factor of the size.
9654 (gnat_to_gnu_field): If the field has a component clause, is aliased
9655 or of a type with strict alignment, require that its size be equal to
9656 that of the type.
9657 (validate_size): Use the type size as the minimum size for a type with
9658 strict alignment.
9659
bb1f5840
ST
96602007-11-23 Samuel Tardieu <sam@rfc1149.net>
9661
9662 * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
9663 s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
9664 s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
9665 Use 'Access instead of 'Unchecked_Access in second and third
9666 arguments of pthread_sigmask.
9667
5102fac5
EB
96682007-11-23 Eric Botcazou <ebotcazou@adacore.com>
9669
9670 * decl.c (ceil_alignment): New function.
9671 (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
9672 (make_packable_type): Likewise.
9673
1fa4dfc6
OH
96742007-11-22 Olivier Hainque <hainque@adacore.com>
9675
9676 * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
9677 to fit in 80 columns.
9678
9e94c78f 96792007-11-21 Aurelien Jarno <aurelien@aurel32.net>
5f45b299
AJ
9680
9681 * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
9682 * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
9683
7634135a
EB
96842007-11-19 Eric Botcazou <ebotcazou@adacore.com>
9685
9686 PR ada/34098
9687 * misc.c (gnat_adjust_rli): Delete.
9688 (gnat_init): Do not initialize the translation code here.
9689 Do not call set_lang_adjust_rli.
9690 * trans.c (init_code_table): Make static.
9691 (gnat_init_stmt_group): Delete.
9692 (gigi): Initialize the translation code entirely here.
9693 Emit debug info for the common types here instead of...
9694 * utils.c (gnat_init_decl_processing): ...here.
9695 * gigi.h (init_code_table): Delete.
9696 (gnat_init_stmt_group): Likewise.
9697
b2c3bcf4
OH
96982007-11-16 Olivier Hainque <hainque@adacore.com>
9699
9700 * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
9701 retrieving an allocator return value from a super-aligned address from
9702 here to ...
9703 * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
9704 expect a super-aligned address for a fat or thin pointer.
9e81dbc7 9705
a01e283f
EB
97062007-11-14 Eric Botcazou <ebotcazou@adacore.com>
9707
9708 * trans.c (call_to_gnu): Always set the source location on the call
9709 expression. If the function returns-by-target, also set it on the
9710 address expression.
9711
713c3145
ST
97122007-11-14 Samuel Tardieu <sam@rfc1149.net>
9713
356d8961 9714 * adaint.c, init.c, initialize.c, link.c: Remove system-specific
713c3145
ST
9715 sections of non-supported Interix target.
9716
9717 * s-osinte-interix.ads: Removed.
9718
1e992e16
ST
9719 * i-cstrin.ads (chars_ptr): Make it a C convention type.
9720
0e506c4b
ST
97212007-11-13 Samuel Tardieu <sam@rfc1149.net>
9722
9723 * a-tasatt.adb: Add a comment at the beginning of the package
9724 explaining why in general 'Unchecked_Access must be used instead
9725 of 'Access.
9726
66beb09b
ST
9727 * sem_prag.adb (Process_Convention): Move the test for the
9728 entity on which the Convention pragma applies down to also
9729 forbid pragma Convention on enumeration literals reached
9730 through renamings.
9731
14678e46
ST
97322007-11-10 Samuel Tardieu <sam@rfc1149.net>
9733
9734 * a-tasatt.adb: Revert previous change for this file as it will
9735 generate an error when this package is instantiated from a
9736 local context.
9737
f9d806de
ST
97382007-11-07 Samuel Tardieu <sam@rfc1149.net>
9739
9740 * a-tasatt.adb: Type Wrapper should be declared in comment instead
9741 of already declared type Node_Access.
dcbd752d
ST
9742 Use 'Access instead of 'Unchecked_Access when applicable. Local
9743 lifetime is the one of the package.
9744 (Set_Value): W is allocated on the heap.
9745
9746 * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
9747 applicable.
9748 (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
9749 access type.
9750 (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
9751 access type.
9752
9753 * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
9754 applicable.
9755 (elaboration code): Timer_Queue lifetime is the one of the
9756 package.
f9d806de 9757
bc01690e
ST
9758 * tracebak.c (i386 alternative): Remove useless comparaison
9759 which is always false; LOWEST_ADDRESS is 0 and is never greater
9760 than an unsigned integer.
9761
d9c1dc68
ST
9762 * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
9763 embedded check for "Ada_Version >= Ada_05".
9764
cb88a3ea
OH
97652007-11-07 Olivier Hainque <hainque@adacore.com>
9766
9767 * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
9768 craft and expand comment.
9769
233a722b
EB
97702007-11-01 Eric Botcazou <ebotcazou@adacore.com>
9771
9772 * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
9773
6d1e8bff
EB
97742007-10-23 Eric Botcazou <ebotcazou@adacore.com>
9775
9776 * misc.c (gnat_handle_option): Replace call to abort with
9777 call to gcc_unreachable.
9778 (gnat_init): Likewise.
9779 (gnat_expand_expr): Likewise.
9780 (fp_prec_to_size): Likewise.
9781 (fp_size_to_prec): Likewise.
9782
262e7125
RG
97832007-10-23 Richard Guenther <rguenther@suse.de>
9784
9785 PR bootstrap/33608
9786 * tracebak.c: #undef abort after including system.h.
9787
9e94c78f 97882007-10-20 Danny Smith <dannysmith@users.sourceforge.net>
c8f499a9
DS
9789
9790 * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
9791 s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
9792 for win32 targets.
9793 (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
9794
f0e1e807
AC
97952007-10-15 Eric Botcazou <ebotcazou@adacore.com>
9796
9797 * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
9798 Set the protection status of the guard page based on the value of On.
9799
9800 * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
9801
9802 * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
9803 (Exit_Task): Pass False to Hide_Yellow_Zone.
9804
98052007-10-15 Robert Dewar <dewar@adacore.com>
9806
9e81dbc7 9807 * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
f0e1e807 9808 s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
9e81dbc7
AS
9809 a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
9810 checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
9811 freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
9812 gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
9813 mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
9814 prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
9815 sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
f0e1e807 9816 s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
9e81dbc7
AS
9817 uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
9818 a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
9819 a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
9820 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
9821 a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
f0e1e807
AC
9822 a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
9823 Minor reformatting.
9824 Add Unreferenced and Warnings (Off) pragmas for cases of
9825 variables modified calls where they are IN OUT or OUT parameters and
9826 the resulting values are not subsequently referenced. In a few cases,
9827 we also remove redundant code found by the new warnings.
9828
9e81dbc7 9829 * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
f0e1e807
AC
9830 sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
9831 sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
9832 sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
9833 warning controlled by -gnatw.o that warns on cases of out parameter
9834 values being ignored.
9835
98362007-10-15 Geert Bosch <bosch@adacore.com>
9837
9838 * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
9839
9840 * expect.c: Initial port to arm-mentor-nucleus.
9841 Use kill for __gnat_kill() on VMS.
9842
98432007-10-15 Emmanuel Briot <briot@adacore.com>
9844
9845 * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
9846 value.
9847 (Xref_Record): Change type for Line, since in the case of a reference to
9848 a predefined entity (as happens for array index types), the line is set
9849 to 0.
9850 Add support for parsing multiple array index types info, or
9851 multiple inherited interfaces info. This information cannot be stored
9852 in Xref_Entity_Record, which only supports a single instance of Tref_*,
9853 and is therefore stored in the list of references instead. It has a
9854 special treatement later on in tools that use this information.
9855
98562007-10-15 Tristan Gingold <gingold@adacore.com>
9857
9858 * debug.adb: Document use of -gnatd.a and -gnatd.I
9859
9860 * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
9861
98622007-10-15 Javier Miranda <miranda@adacore.com>
9863
9864 * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
9865 Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
9866 care of access to class-wide interface types plus removal of bizarre
9867 conversion of tagged object to access type (reported by Gary
9868 Dismukes). After this patch there is no need to perform any
9869 additional management on these nodes in Expand_Interface_Actuals.
9870
9871 * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
9872 that handles use of 'Access and 'Unchecked_Access applied to
9873 actuals covering interface types. Such code is now
9874 centralized in Expand_N_Attribute_Reference.
9875
98762007-10-15 Ed Schonberg <schonberg@adacore.com>
9877
9878 * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
9879 of tagged types whose ultimate ancestor is a CPP type.
9880 (Freeze_Array_Type): For a packed array type, generate an initialization
9881 procedure if the type is public, to handle properly a client that
9882 specifies Normalize_Scalars.
9883
98842007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
9885
9886 * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
9887 inside a generic body, retrieve the full view of the entry family
9888 discrete subtype if available.
9889
98902007-10-15 Thomas Quinot <quinot@adacore.com>
9891
9892 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
9893 attempt to generate stubs for hidden primitive operations.
9894
98952007-10-15 Vincent Celier <celier@adacore.com>
9896
9897 * mlib-tgt-specific.adb (Support_For_Libraries): New function,
9898 returning None, used when there is no platform specific body for
9899 MLib.Tgt.Specific.
9900
99012007-10-15 Bob Duff <duff@adacore.com>
9902
9903 * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
9904 (passing'Unrestricted_Access of nested subprograms to Sort) with use of
9905 the generic Heap_Sort_G, in order to avoid trampolines.
9906
99072007-10-15 Vasiliy Fofanov <fofanov@adacore.com>
9908 Jose Ruiz <ruiz@adacore.com>
9909
9910 * vx_stack_info.c: New file.
9911
9912 * i-forbla-unimplemented.ads: New file.
9913
9914 * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
9915 for unsupported configurations; use it on VMS targets instead of the
9916 real one.
9917 (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
9918 vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
9919 used by VxWorks targets to have access to task-specific data and be
9920 able to extract the stack boundaries for stack checking.
9921 Use system-vms-ia64.ads on ivms.
9922
9923 * Make-lang.in: Update dependencies.
9924
9925 * sysdep.c (__gnat_get_stack_info): Move to a standalone file
9926 (vx_stack_info.c).
9927
99282007-10-15 Vincent Celier <celier@adacore.com>
9929
9930 * snames.adb, snames.ads: Add new standard name runtime_library_dir
9931
9932 * prj.ads (Language_Config): Add new component Runtime_Library_Dir
9933
9934 * prj-attr.adb: Add project level attribute Runtime_Library_Dir
9935
9936 * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
9937 the source is unknown.
9938
9939 * prj-ext.adb: Spelling error fix
9940
9941 * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
9942 95 reserved word in its name.
9943 (Process_Project_Level_Array_Attributes): Process new attribute
9944 Runtime_Library_Dir.
9945
9946 * prj-part.adb (Parse_Single_Project): Do not check the name of the
9947 config project against the user project names.
9948
9949 * prj-proc.adb (Expression): In multi-language mode, indexes that do
9950 not include a dot are always case insensitive.
9951 (Process_Declarative_Items): Ditto
9952 (Process_Project_Tree_Phase_1): Set Success to False in case an error is
9953 detected.
9954
9955 * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
9956 True, compare both indexes in lower case.
9957
99582007-10-15 Robert Dewar <dewar@adacore.com>
9959
9960 * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
9961
99622007-10-15 Gary Dismukes <dismukes@adacore.com>
9963
9964 * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
9965 association for an access component, add an association with null as
9966 the expression. Remove testing for array subtypes and the setting in
9967 that case of Ctyp to the array component type, which prevented proper
9968 inclusion of an association for null-initialized arrays. Collapse
9969 condition that tests for array subtypes into just a test of
9970 Is_Partially_Initialized_Type (which already covers arrays anyway).
9971
99722007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
9973
9974 * sem_ch12.adb: Minor code reformatting.
9975 (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
9976 find the parent package which may have been hidden by local
9977 declarations.
9978
99792007-10-15 Gary Dismukes <dismukes@adacore.com>
9980
9981 * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
9982 flag of derived concurrent types, taking into account the flag setting
9983 on the parent subtype and any new set of discriminants.
9984
99852007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
9986
9987 * sem_ch4.adb: Minor code and comment reformatting.
9988 (Analyze_Allocator): When the designated type of an unconstrained
9989 allocator is a record with unknown discriminants or an array with
9990 unknown range bounds, emit a detailed error message depending on the
9991 compilation mode and whether the designated type is limited.
9992
99932007-10-15 Tristan Gingold <gingold@adacore.com>
9994
9995 * system-vms-ia64.ads: New file.
9996
9997 * system-vms_64.ads: Minor comment fix.
9998
99992007-10-15 Ed Schonberg <schonberg@adacore.com>
10000
10001 * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
10002 body generated for a function with a controlling result that is a null
10003 extension, discard the generated body in favor of the current explicit
10004 one.
10005
100062007-10-15 Ed Schonberg <schonberg@adacore.com>
10007
10008 * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
10009 examining its original form, to handle properly operator calls that
10010 have been rewritten.
10011
100122007-10-15 Olivier Hainque <hainque@adacore.com>
10013
10014 * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
10015 instead of a procedure value in each traceback entry.
10016
10017 * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
10018 instead of procedure value to TBK$SYMBOLIZE.
10019
10020 * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
10021 field.
10022 (TB_Entry_For): Account for the PV/FP renaming.
10023
10024 * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
10025 add comment.
10026 (Null_TB_Entry): Account for change of component name.
10027 (PV_For): Rename as FP_For.
10028
100292007-10-15 Tristan Gingold <gingold@adacore.com>
10030
10031 * trans.c (gnat_to_gnu): Remove the padding structure more often.
10032 This optimize assignment to over-aligned record.
10033
100342007-10-15 Emmanuel Briot <briot@adacore.com>
10035
10036 * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
10037 interfaces.
10038
10039 * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
10040 type, for dispatching calls.
10041
100422007-10-15 Vincent Celier <celier@adacore.com>
10043 Robert Dewar <dewar@adacore.com>
10044
10045 * gnat_ugn.texi: Add documentation for switches --version and --help
10046 for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
10047 gnatxref, gnatfind, gnatls, and gnatclean.
10048 Document -gnatw.o.
10049 Mention attribute Excluded_Source_Dirs
10050 Replace obsolescent attribute Locally_Removed_Files with attribute
10051 Excluded_Source_Files.
10052 Improve documentation of -u (gnatbind)
10053 Document how to do reliable stack checking for the environmental task
10054 on iVMS.
10055
10056 * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
10057 Document attribute Excluded_Source_Files and indicate that attribute
10058 Locally_Removed_Files is obsolescent.
10059
100602007-10-15 Thomas Quinot <quinot@adacore.com>
10061
10062 * g-soccon-vms.ads: Fix value of MSG_WAITALL.
10063
9e81dbc7 10064 * gen-soccon.c:
f0e1e807
AC
10065 Update documentation to note that OpenVMS 8.3 or later must be used
10066 to generate g-soccon-vms.ads.
10067
10068 * atree.adb: Add ??? comment
10069
10070 * exp_util.adb: Minor reformatting.
10071 Add ??? comment in Kill_Dead_Code.
10072
100732007-10-15 Robert Dewar <dewar@adacore.com>
10074
10075 * errout.ads: Comment clarification
10076
10077 * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
10078 (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
10079
10080 * lib.ads: Comment update
10081
10082 * init.c: Minor reformatting.
10083
10084 * sem_attr.adb: Minor formatting
10085
10086 * osint-b.ads: Minor reformatting
10087
10088 * sem_ch9.adb: Implement -gnatd.I switch
10089
10090 * g-comlin.adb: (Start): Fix handling of empty command line.
10091
10092 * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
10093 even when -rules follows the -cargs section.
10094
6524147c
OW
100952007-10-08 Ollie Wild <aaw@google.com>
10096
10097 * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
10098 gnat_return_tree.
10099 (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
10100 gnat_return_tree.
10101 (gnat_eh_runtime_type): Removed.
10102 (gnat_return_tree): New function.
10103
dff6abb2
BE
101042007-10-08 Ben Elliston <bje@au.ibm.com>
10105
10106 PR ada/33454
10107 Revert:
10108 2007-08-31 Ben Elliston <bje@au.ibm.com>
10109
10110 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
10111 when compiling for powerpc64-*-linux.
10112 * system-linux-ppc64.ads: New file.
10113
c3048783
EB
101142007-09-27 Eric Botcazou <ebotcazou@adacore.com>
10115
10116 Mapped location support
10117 * back_end.adb (Call_Back_End): Pass information about source
10118 files instead of units to gigi.
10119 * gigi.h (struct File_Info_Type): New.
10120 (gigi): Rename and change type of number_units parameter, change
10121 type of file_info_ptr parameter.
10122 * trans.c (number_files): New global variable.
10123 (gigi): Rename and change type of number_units parameter, change
10124 type of file_info_ptr parameter.
10125 If mapped location support is enabled, create the isomorphic mapping
10126 between source files and line maps.
10127 (Sloc_to_locus): If mapped location support is enabled, translate
10128 source location into mapped location.
10129 (annotate_with_node): Rename into set_expr_location_from_node.
10130 Call set_expr_location instead of annotate_with_locus.
10131 (Pragma_to_gnu): Adjust for above change.
10132 (Loop_Statement_to_gnu): Likewise.
10133 (call_to_gnu): Likewise.
10134 (Handled_Sequence_Of_Statements_to_gnu): Likewise.
10135 (gnat_to_gnu): Likewise.
10136 (add_stmt_with_node): Likewise.
10137 (add_cleanup): Likewise.
10138 * utils.c (gnat_init_decl_processing): Do not set input_line.
10139
68b72a44
AC
101402007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
10141
10142 * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
10143 (Applicable_Use): Emit a warning when a package tries to use itself.
10144 (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
10145 is already in use or the package where it is declared is in use or is
10146 declared in the current package.
10147 (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
10148
10149 * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
10150 s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
10151 s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
10152
101532007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
10154
9e81dbc7 10155 * a-calend-vms.adb, a-calend.adb:
68b72a44
AC
10156 Add a section on leap seconds control along with two entities used to
10157 enable and disable leap seconds support. The array Leap_Second_Times is
10158 now constant and contains hard time values pre-generated. Remove
10159 all elaboration code used to populate the table of leap seconds.
10160
9e81dbc7 10161 * bindgen.adb:
68b72a44
AC
10162 Add entity Leap_Seconds_Support to the list of global run-time variables
10163 along with a comment on its usage and values.
10164 (Gen_Adainit_Ada): Add code to generate the declaration and import of
10165 Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
10166 or one (enabled) depending on the presence of binder switch "-y".
10167 (Gen_Adainit_C): Add code to generate the declaration of external int
10168 __gl_leap_seconds_support. Set is value to zero (disabled) or one
10169 (enabled) depending on the presence of binder switch "-y".
10170
10171 * init.c: Add __gl_leap_seconds_support to the list of global values
10172 computed by the binder.
10173
101742007-09-26 Jerome Guitton <guitton@adacore.com>
10175
10176 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
10177 s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
10178 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
10179 s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
10180
10181 * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
10182
10183 * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
10184 function which can be called by the debugger to interrupt the tasks of
10185 an Ada application asynchronously, as needed on VxWorks.
10186 (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
10187
10188 * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
10189 renamed from Stop_All_Tasks. Update comments.
10190 (Stop_All_tasks): New function declaration.
10191
101922007-09-26 Olivier Hainque <hainque@adacore.com>
10193
10194 * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
10195 #include <utime.h> and #define GCC_RESOURCE_H before
10196 #include <sys/wait.h>.
10197 Add more protections in __gnat_translate_vms.
10198
10199 * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
10200 #include <sys/wait.h>.
10201
102022007-09-26 Thomas Quinot <quinot@adacore.com>
10203 Sergey Rybin <rybin@adacore.com>
10204
10205 * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
10206
10207 * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
10208 where it belongs.
10209
10210 * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
10211
10212 * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
10213 where it belongs.
10214
10215 * sem_dist.ads: Minor comment fix
10216
10217 * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
10218
102192007-09-26 Javier Miranda <miranda@adacore.com>
10220 Eric Botcazou <ebotcazou@adacore.com>
10221
9e81dbc7 10222 * a-tags.adb:
68b72a44
AC
10223 (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
10224 indirection added to the HT_Link component of the TSD. This is required
10225 to statically allocate the TSD.
10226
9e81dbc7 10227 * a-tags.ads:
68b72a44
AC
10228 Minor reordering of the declarations in the private part. Required to
10229 add a level of indirection to the contents of the TSD component HT_Link.
10230 This is required to statically allocate the TSD.
10231
10232 * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
10233 Is_Statically_Allocated set from constant objects.
10234 Do not make exported constants created by the compiler volatile.
10235 (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
10236 as read-only.
10237
10238 * trans.c (Identifier_to_gnu): For constants, unshare initializers
10239 before returning them.
10240
10241 * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
10242 public part of the package.
10243 (Make_DT): Move HT_Link component out of the TSD record. For this
10244 purpose Make_DT now declares a separate object that stores the
10245 HT_Link value, and initializes the TSD component with the address
10246 of this new object. The addition of this level of indirection is
10247 required to statically allocate the TSD because the TSD cannot
10248 have variable components.
10249 (Expand_Interface_Conversion): Improve the expanded code.
10250 (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
10251
10252 * sem_disp.adb (Check_Dispatching_Operation): In case of a body
10253 declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
10254 if we are building static dispatch tables then we must not generate
10255 extra code to register the primitive because the dispatch table will
10256 be built at the end of the library package; otherwise we notify that
10257 we cannot build the static dispatch table.
10258
102592007-09-26 Robert Dewar <dewar@adacore.com>
10260
10261 * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
10262 overlays.
10263
10264 * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
10265 (Analyze_Record_Representation_Clause): Suppress junk warning for
10266 missing component clause.
10267 (Analyze_Attribute_Definition_Clause, case Address): Apply the special
10268 tests for controlled type overlay to composites with controlled
10269 components.
10270 (Analyze_Record_Representation_Clause): Add reference for component name
10271
102722007-09-26 Javier Miranda <miranda@adacore.com>
10273 Gary Dismukes <dismukes@adacore.com>
10274
10275 * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
10276 for thunks associated with interface types.
10277
10278 * einfo.ads: Improve documentatation of Is_Internal
10279 (Is_Thunk): New attribute applicable to subprograms. True for thunks
10280 associated with interface types.
10281 Extensive comment fixes regarding flags that appear in all entities. The
10282 documentation is now consistent for all such flags (there were a number
10283 of errors in the documentation in this regard).
10284
10285 * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
10286
10287 * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
10288 of these procedures are passed a function call that already has
10289 build-in-place actuals (testing new flag
10290 Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
10291 the case where processing continues.
10292 (Expand_Call): If the call is generated from a thunk body then we
10293 propagate the extra actuals associated with the accessibility
10294 level of the access type actuals.
10295
10296 * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
10297 of each extra formal of a protected operation to reference the
10298 corresponding extra formal of the subprogram denoted by the
10299 operation's Protected_Body_Subprogram.
9e81dbc7 10300
68b72a44
AC
10301 * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
10302 N_Function_Call nodes.
10303
103042007-09-26 Robert Dewar <dewar@adacore.com>
10305
10306 * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
10307
10308 * debug.adb: Add d.s flag.
10309
103102007-09-26 Gary Dismukes <dismukes@adacore.com>
10311
10312 * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
10313 debug variable so that it won't be initialized when pragma
10314 Initialize_Scalars is in effect.
10315
103162007-09-26 Gary Dismukes <dismukes@adacore.com>
10317
10318 * freeze.adb (Freeze_Entity): Remove check for preelaborable
10319 initialization of a full view. This is moved to
10320 Analyze_Package_Specification.
10321
10322 * sem_ch7.adb (Analyze_Package_Specification): Add check for
10323 preelaborable initialization of a full view in entity loop.
10324 (Uninstall_Declarations): If entity is a use-visible compilation unit,
10325 its child units are use-visible only if they are visible child units.
10326
10327 * sem_util.adb (Is_Preelaborable_Expression): New function to determine
10328 whether an expression can be used within a type declaration that
10329 requires preelaborable init.
10330 (Check_Components): Replace inline code that does partial checking for
10331 preelaborable default expressions with call to
10332 Is_Preelaborable_Expression.
10333 (Has_Preelaborable_Initialization): In the case of a generic actual
10334 subtype, (that is, Is_Generic_Actual is True), return the result of
10335 applying Has_Preelaborable_Initialization to the generic actual's base
10336 type.
10337
103382007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
10339
10340 * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
10341 call to Jan_1_Day _Of_Week to optimize its performance.
10342 (Is_Leap): Move the routine to the scope of Week_In_Year.
10343 (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
10344 weekday on which January 1 falls of Year - 1 and Year + 1. This function
10345 avoids calling Time_Of and Split, thus making it more efficent.
10346 (Week_In_Year): Reimplemented in oder to follow ISO 8601.
10347
10348 * g-calend.ads (Week_In_Year): Change comment to reflect new
10349 implementation.
10350
103512007-09-26 Emmanuel Briot <briot@adacore.com>
10352
10353 * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
10354 Command_Line): New types
10355 (Define_Alias, Define_Prefix, Free): New subprograms. These provide
10356 support for defining how switches can be grouped on a command line (as
10357 is the case for -gnatw... for GNAT), and how simple switches can be
10358 used as aliases for more complex switches (-gnatwa is same as
10359 -gnatwbcef...)
10360 (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
10361 (Start, Current_*): New subprograms
10362 Added support for parsing an array of strings in addition to the real
10363 command line.
10364 (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
10365 be moved from the body to the private part of the spec.
10366 (*): All subprograms now have an extra parameter with default value to
10367 specify which parser should be used. For backward compatibility, it
10368 defaults to parsing the command line of the application. They were also
10369 modified to properly handle cases where each of the argument does not
10370 start at index 1 (which is always true for Ada.Command_Line, but not
10371 when processing any Argument_List).
10372 (Free): New subprogram
10373 (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
10374 Argument): New subprograms
10375 (Switch_Parameter_Type): New enum, which clarifies the code. The extra
10376 special characters like ':', '=',... are now handled in a single place,
10377 which makes the code more extensible eventually.
10378 (Getopt, Full_Switch): When the switch was returned as part of the
10379 special character '*', make sure it is prepended by the switch character
10380 ('-' in general), so that the application knows whether "foo" or "-foo"
10381 was specified on the command line.
10382
103832007-09-26 Florian Villoing <villoing@adacore.com>
10384
10385 * g-dirope.adb (Remove_Dir): In case we are removing directories
10386 recursively, make sure that if an exception is raised during the
10387 processing, the current working directory is reset to its initial
10388 value before propagating the exception.
10389
103902007-09-26 Vincent Celier <celier@adacore.com>
10391
10392 * gnatbind.adb: If there are several ALI files specified and there is
10393 a main program to bind, the first ALI is expected to contain the main
10394 subprogram and the names of the binder generated files will be derived
10395 from the first ALI file name.
10396 (Gnatbind): Fix insertion character in invocation of Error_Msg
10397
103982007-09-26 Vincent Celier <celier@adacore.com>
10399
10400 * gnatcmd.adb (Check_Files): Do not include sources that have been
10401 removed by attributes Exclude_Source_Files or Locally_Removed_Files.
10402
104032007-09-26 Ed Schonberg <schonberg@adacore.com>
10404
10405 * lib-xref.ads, lib-xref.adb: The entry for array types now carries
10406 information about each of its index types, following the type
10407 reference for its component type.
10408
104092007-09-26 Vincent Celier <celier@adacore.com>
10410
10411 * make.adb: (Kill): New procedure (__gnat_kill imported)
10412 (Running_Compile, Outstanding_Compiles): Global variables that
10413 were previously local to procedure Compile_Sources.
10414 (Sigint_Intercepted): Send signal SIGINT to all outstanding
10415 compilation processes.
10416
10417 (Gnatmake): If project files are used, create the mapping of all the
10418 sources, so that the correct paths will be found.
10419
10420 * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
10421
104222007-09-26 Vincent Celier <celier@adacore.com>
10423
10424 * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
10425
10426 * prj.ads, prj.adb (Default_Language): Remove function, no longer used
10427 Replace components Compiler_Min_Options and Binder_Min_Options with
10428 Compiler_Required_Switches and Binder_Required_Switches in record
10429 Language_Config.
10430 Remove components Default_Language and Config in Project_Tree_Data,
10431 no longer used.
10432
10433 * prj-attr.adb: New attributes Required_Switches (<language>) in
10434 packages Compiler and Binder.
10435
10436 * prj-nmsc.adb: Major rewrite of the processing of configuration
10437 attributes for gprbuild. No impact on GNAT tools.
10438
10439 * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
10440 process configuration attributes: this is done in Prj.Nmsc.Check.
10441 (Recursive_Process): Make a full copy of packages inherited from project
10442 being extended, instead of a shallow copy.
10443 (Process_Project_Tree_Phase_1): New procedure
10444 (Process_Project_Tree_Phase_1): New procedure
10445 (Process): Implementation now uses the two new procedures
10446
10447 * prj-util.adb (Executable_Of): Get the suffix and the default suffix
10448 from the project config, not the tree config that no longer exists.
10449
104502007-09-26 Vincent Celier <celier@adacore.com>
10451
10452 * Make-lang.in: Update dependencies..
10453
104542007-09-26 Vincent Celier <celier@adacore.com>
10455
10456 * osint.adb, osint.ads: Minor reformatting
10457
10458 * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
10459
104602007-09-26 Gary Dismukes <dismukes@adacore.com>
10461
10462 * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
10463 message to cite use of <> in aggregate component associations rather
10464 than wrongly indicating use of limited aggregates.
10465
104662007-09-26 Robert Dewar <dewar@adacore.com>
10467
10468 * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
10469 Address_Taken.
10470
104712007-09-26 Ed Schonberg <schonberg@adacore.com>
10472
10473 * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
10474 ancestor of the derived type, the operations are inherited from the
10475 primary dispatch table of the parent.
10476 (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
10477 when the context is an explicit type conversion.
10478
104792007-09-26 Ed Schonberg <schonberg@adacore.com>
10480
10481 * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
10482 rule for qualified expressions properly, to detect improper conversions
10483 and resolve some cases of overloading.
10484
104852007-09-26 Ed Schonberg <schonberg@adacore.com>
10486
10487 * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
10488 proper kind of reference to the primitive operation, for better source
10489 navigation.
10490 (Valid_Conversion): A tagged conversion is legal if both operands are
10491 tagged.
10492
104932007-09-26 Robert Dewar <dewar@adacore.com>
10494
10495 * sem_warn.adb (Check_References): Catch more cases of unreferenced
10496 packages.
10497
104982007-09-26 Vincent Celier <celier@adacore.com>
10499
10500 * snames.adb, snames.ads: Change Include_Option to Include_Switches
10501
105022007-09-26 Robert Dewar <dewar@adacore.com>
10503
10504 * s-wchstw.adb: provide messages for run time unit exceptions
10505
10506 * a-witeio.adb: Minor reformatting
10507
10508 * exp_ch13.adb: Minor reformatting
10509
105102007-09-26 Sergey Rybin <rybin@adacore.com>
10511
10512 * vms_data.ads: Revise gnatmetric qualifiers.
10513 Add qualified for the new gnatbind option '-y'
10514
10515 * gnat_ugn.texi: Revise the gnatmetric section.
10516 Add entry for new gnatbind option '-y'.
10517
10518 * gnat_rm.texi: Minor spelling correction.
10519 Document restriction on overlaying controlled types
10520
105212007-09-26 Vincent Celier <celier@adacore.com>
10522
10523 * makegpr.adb (Link_Executables): Do not fail when the root project has
10524 no sources, but is an extending project.
10525
0a86bcc9
EB
105262007-09-25 Eric Botcazou <ebotcazou@adacore.com>
10527
10528 * trans.c: Fix misplaced #define.
10529
b235734c
EB
105302007-09-22 Eric Botcazou <ebotcazou@adacore.com>
10531
10532 * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
10533 the TYPE_REF_CAN_ALIAS_ALL flag to the result.
10534
97237784
OH
105352007-09-21 Olivier Hainque <hainque@adacore.com>
10536
10537 * utils.c (type_for_nonaliased_component_p): Return false for
10538 all AGGREGATE_TYPEs.
10539
2adde4ff
EB
105402007-09-17 Eric Botcazou <ebotcazou@adacore.com>
10541
10542 * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
10543 object covered by 13.3(19) volatile.
10544
b693daa7
EB
105452007-09-12 Eric Botcazou <ebotcazou@adacore.com>
10546
10547 PR ada/26797
10548 PR ada/32407
10549 * utils.c (unchecked_convert): Use a subtype as the intermediate type
10550 in the special VIEW_CONVERT_EXPR case.
10551
82da9a90
AC
105522007-09-12 Robert Dewar <dewar@adacore.com>
10553
10554 * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
10555
10556 * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
10557 lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
10558 s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
10559 s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
10560 s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
10561 s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
10562 s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
160c5065 10563 s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
9e81dbc7
AS
10564 a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
10565 g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
10566 s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
10567 s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
10568 snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
10569 s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
10570 s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
10571 s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
82da9a90
AC
10572 s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
10573 pragma Compiler_Unit and adds it to relevant library units.
10574
105752007-09-12 Ed Schonberg <schonberg@adacore.com>
10576
10577 * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
10578 a box need not correspond to any component.
10579
105802007-09-12 Robert Dewar <dewar@adacore.com>
10581
10582 * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
10583 the tasking version of the Ada run time when foreign threads are
10584 present and there are no explicit Ada tasks or tasking constructs.
10585
10586 * gnat_rm.texi: Clarify documentation of GNAT.Threads.
10587
105882007-09-12 Hristian Kirtchev <kirtchev@adacore.com>
10589
10590 * bindusg.adb (Display): Correct comment for switch -X. Add a line for
10591 the usage of switch -y.
10592
10593 * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
10594 when switch -y is present.
10595
10596 * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
10597 leap seconds in Ada.Calendar and its children.
10598
105992007-09-12 Jose Ruiz <ruiz@adacore.com>
10600
10601 * a-extiti.ads (Timer): The discriminant is a "not null access
10602 constant" in the Reference Manual.
10603 (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
10604
106052007-09-12 Robert Dewar <dewar@adacore.com>
10606
10607 * a-swuwha.adb: Remove junk RM header
10608
106092007-09-12 Vincent Celier <celier@adacore.com>
10610
10611 * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
10612 indicator
10613
10614 * g-bytswa.ads: Minor reformatting
10615
106162007-09-12 Thomas Quinot <quinot@adacore.com>
10617
9e81dbc7 10618 * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
82da9a90
AC
10619 Add new constant Thread_Blocking_IO, always True by default, set False
10620 on a per-runtime basis.
10621 (Need_Netdb_Buffer): New constant.
10622
106232007-09-12 Arnaud Charlet <charlet@adacore.com>
10624
10625 * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
10626 Added renames for corresponding functions in System.Partition_Interface.
10627
106282007-09-12 Doug Rupp <rupp@adacore.com>
10629
10630 * Makefile.in: Remove VMS specific System.CRTL packages which are no
10631 longer needed.
10632
10633 * s-crtl-vms64.ads: Removed.
10634
09528ed9
OH
106352007-09-12 Olivier Hainque <hainque@adacore.com>
10636
10637 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
10638 with discriminant constraints, generalize the code for BIT_FIELDs
10639 to PACKED fields of constant size and propagate DECL_PACKED.
10640
fa89b6ec
EB
106412007-09-11 Eric Botcazou <ebotcazou@adacore.com>
10642
10643 * decl.c (array_type_has_nonaliased_component): New predicate.
10644 (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
10645 set the TYPE_NONALIASED_COMPONENT flag on the type.
10646 <E_Array_Subtype>: Likewise.
10647 * gigi.h (type_for_nonaliased_component_p): Declare.
10648 * utils.c (type_for_nonaliased_component_p): New predicate.
10649 (create_field_decl): Invoke the above predicate to set the
10650 DECL_NONADDRESSABLE_P flag on the field.
10651
e18d6a15
JM
106522007-09-11 Javier Miranda <miranda@adacore.com>
10653
10654 * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
10655 in library level record type entities if we are generating statically
10656 allocated dispatch tables.
10657
10658 * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
10659 importing/exporting the _tag declaration by new code
10660 importing/exporting the dispatch table wrapper. This change allows us
10661 to statically allocate of the TSD.
10662 (Make_DT.Export_DT): New procedure.
10663 (Build_Static_DT): New function.
10664 (Has_DT): New function.
10665
10666 * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
10667 True_Constant and Current_Value. Required to statically
10668 allocate the dispatch tables.
10669 (Check_Allocator): Make function iterative instead of recursive.
10670 Also return inner allocator node, when present, so that we do not have
10671 to look for that node again in the caller.
10672
9e94c78f 106732007-09-11 Jan Hubicka <jh@suse.cz>
e89d6010
JH
10674
10675 * misc.c (gnat_expand_body): Kill.
10676 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
10677
281b604e
AC
106782007-09-10 Robert Dewar <dewar@adacore.com>
10679
10680 * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
10681 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
10682 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
10683 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
10684 ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
10685 bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
10686 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
10687 butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
10688 comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
10689 elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
10690 err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
10691 exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
10692 exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
10693 exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
10694 exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
10695 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
10696 exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
10697 exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
10698 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
10699 exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
10700 exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
10701 exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
10702 fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
10703 get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
10704 gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
10705 gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
10706 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
10707 gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
10708 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
10709 gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
10710 inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
10711 lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
10712 lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
10713 make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
10714 mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
10715 mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
10716 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
10717 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
10718 osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
10719 osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
10720 par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
10721 par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
10722 par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
10723 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
10724 par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
10725 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
10726 prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
10727 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
10728 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
10729 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
10730 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
10731 prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
10732 rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
10733 scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
10734 sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
10735 sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
10736 sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
10737 sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
10738 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
10739 sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
10740 sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
10741 sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
10742 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
10743 sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
10744 sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
10745 sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
10746 sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
10747 sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
10748 stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
10749 styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
10750 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
10751 switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
10752 tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
10753 treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
10754 types.h, uintp.h, urealp.h, usage.adb, usage.ads,
10755 validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
10756 xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
10757 xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
10758 gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
10759 mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
10760 symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
10761 mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
10762 mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
10763
107642007-09-10 Emmanuel Briot <briot@adacore.com>
10765
10766 * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
10767 classes ("[]").
10768
107692007-09-10 Vasiliy Fofanov <fofanov@adacore.com>
10770
10771 * adaint.c (__gnat_translate_vms): new function.
10772
107732007-09-10 Gary Dismukes <dismukes@adacore.com>
10774 Thomas Quinot <quinot@adacore.com>
10775
10776 * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
10777 create an abstract subprogram in the case of 'Input. For 'Output we now
10778 create a real spec/body when the type is abstract, since it can
10779 potentially be called.
10780 (Predefined_Primitive_Bodies): Now allow the creation of a predefined
10781 body for 'Output when the type is abstract (only the creation of the
10782 body for 'Input is excluded when the type is abstract).
10783 (Stream_Operation_OK): Add an additional condition in the return
10784 statement, so that False will be returned for TTS_Stream_Input if the
10785 associated tagged type is an abstract extension. Add comments for
10786 return statement.
10787 (Expand_N_Object_Declaration): For the case of a shared passive
10788 variable, insert init proc call only after the shared variable
10789 procedures have been processed, because the IP call needs to undergo
10790 shared passive variable reference expansion, which requires these
10791 procedures to be available (and elaborated).
10792
107932007-09-10 Vincent Celier <celier@adacore.com>
10794
10795 * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
10796 parameter Runtime_Project.
10797
107982007-09-10 Ed Schonberg <schonberg@adacore.com>
10799
10800 * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
10801 given a box association, the type of the component is discriminated,
10802 and the value of the discriminant is the discriminant of the enclosing
10803 type, retrieve its value from the aggregate itself, where it must have
10804 been supplied.
10805
10806 * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
10807 to remove other spurious ambiguities on arithmetic operations involving
10808 literals and addresses, on systems where Address is a visible integer
10809 type, when the operator is called in functional notation.
10810 (Try_Primitive_Operation): Within an instance, a call in prefixed form
10811 is legal when the types match, even if the operation is currently
10812 hidden.
10813
108142007-09-10 Ed Schonberg <schonberg@adacore.com>
10815
10816 * sem_ch12.adb (Build_Local_Package): A formal package with no
10817 associations is legal if all formals have defaults. It is not
10818 equivalent to a formal declared with a box.
10819
108202007-09-10 Sergey Rybin <rybin@adacore.com>
10821
10822 * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
10823
108242007-09-10 Sergey Rybin <rybin@adacore.com>
10825
10826 * gnat_ugn.texi: Add description of the new '-lratio' option
10827 Update 7.3.1 section about availability of the feature.
10828
108292007-09-10 Thomas Quinot <quinot@adacore.com>
10830
10831 * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
10832 inserted node.
10833
108342007-09-10 Olivier Hainque <hainque@adacore.com>
10835
10836 * Makefile.in: (mips-irix section): Activate build of libgmem.
10837
a56955b1
EB
108382007-09-10 Eric Botcazou <ebotcazou@adacore.com>
10839
10840 * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
10841 x87 registers.
10842
c03550f6
EB
108432007-09-10 Eric Botcazou <ebotcazou@adacore.com>
10844
10845 * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
10846 a debug renaming declaration specially.
10847
79646678
EB
108482007-09-08 Eric Botcazou <ebotcazou@adacore.com>
10849
10850 * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
10851 which a constant renaming is treated as a normal object declaration.
10852 * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
10853 the N_Indexed_Component case.
10854 <N_Indexed_Component>: Fall through to above case.
10855 <N_Object_Renaming_Declaration>: Return true for all composite types.
10856
d9e161ce
EB
108572007-09-08 Eric Botcazou <ebotcazou@adacore.com>
10858
10859 * decl.c (make_packable_type): If the new type has been given BLKmode,
10860 try again to get an integral mode for it.
10861
0ab29e91 108622007-09-07 Eric Botcazou <ebotcazou@adacore.com>
6ef9a246 10863
0ab29e91 10864 Re-apply accidentally reverted change:
6ef9a246 10865
0ab29e91 10866 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
6ef9a246 10867
0ab29e91 10868 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
9e81dbc7 10869 get_action_description_for): Replace _Unwind_Word with _uleb128_t
0ab29e91 10870 and _Unwind_SWord with _sleb128_t.
4b459ae4 10871
38f1f8cb
EB
108722007-09-06 Eric Botcazou <ebotcazou@adacore.com>
10873
10874 * trans.c (convert_with_check): Update call to real_2expN.
10875
db2960f4
SL
108762007-09-05 Sandra Loosemore <sandra@codesourcery.com>
10877
10878 * trans.c (Compilation_unit_to_gnu): Use set_cfun.
10879 * utils.c (end_subprog_body): Likewise.
10880
d70c0bd6
NC
108812007-09-03 Nick Clifton <nickc@redhat.com>
10882
10883 * Make-lang.in: Change copyright header to refer to version 3 of
10884 the GNU General Public License and to point readers at the
10885 COPYING3 file and the FSF's license web page.
10886 * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
10887 Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
10888 namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
10889 treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
10890 Likewise.
10891
8a26ebb6
AC
108922007-08-31 Vincent Celier <celier@adacore.com>
10893
10894 PR ada/4720
10895
9e81dbc7 10896 * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
8a26ebb6
AC
10897 gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
10898 (Check_Version_And_Help): New procedure in package Switch to process
10899 switches --version and --help.
10900 Use Check_Version_And_Help in GNAT tools
10901
10902 * make.adb: Ditto.
10903 (Compile_Sources): Make sure that sources that are "excluded" are not
10904 compiled.
10905 (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
10906 project file is used.
10907 (Version_Switch): Remove, moved to Switch
10908 (Help_Switch): Remove, moved to Switch
10909 (Display_Version): Remove, moved to Switch
10910
10911 * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
10912 package Switch to process switches --version and --help.
10913 (Display_Version): New procedure
10914
10915 * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
10916
109172007-08-31 Javier Miranda <miranda@adacore.com>
10918
10919 * a-tags.adb (Internal_Tag): Protect the run-time against wrong
10920 internal tags.
10921
109222007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
10923
10924 * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
10925 (Mark_Non_Null): If the node for which we just generated an access check
10926 is a reference to an *in* parameter and the reference appears in the
10927 declarative part of a subprogram body, mark the node as known non null.
10928
109292007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
10930
10931 * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
10932 structure of E_Exception to reflect the new flag.
10933 (Is_Raised, Set_Is_Raised): New inlined routines.
10934 Update the usage of available flag to reflect the addition of Is_Raised.
10935 (Is_Raised, Set_Is_Raised): Bodies of new routines.
10936 (Write_Entity_Flags): Write the status of flag Is_Raised.
10937 (Is_Descendent_Of_Address): New entity flag, to simplify handling of
10938 spurious ambiguities when integer literals appear in the context of an
10939 address type that is a visible integer type.
10940
10941 * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
10942 exceptions never being raised.
10943 (Analyze_Raise_Statement): When analyzing an exception, mark it as being
10944 explicitly raised.
10945
109462007-08-31 Javier Miranda <miranda@adacore.com>
10947
10948 * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
10949 statement when compiling under restriction No_Exceptions_Proparation.
10950
109512007-08-31 Ed Schonberg <schonberg@adacore.com>
10952
10953 * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
10954 initialization aggregate for the type, generate itype references for
10955 thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
10956
109572007-08-31 Gary Dismukes <dismukes@adacore.com>
10958
10959 * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
10960 library-level package renaming, pass the declaration associated with
10961 the renaming's special debug variable to Qualify_Entity_Names to ensure
10962 that its encoded name is properly qualified.
10963
10964 * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
10965 occurring in the list of entities to qualify, and do not attempt to
10966 traverse an entity list in that case. Variables associated with
10967` library-level package renamings can now occur in the table.
10968
10969 * exp_dbug.ads: Revise documentation of the encoding for renaming
10970 declarations.
10971
109722007-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10973
10974 * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
10975 access type points to an unconstrained array.
10976
109772007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
10978
9e81dbc7 10979 * restrict.adb, namet.adb, par-util.adb: Remove redundant type
8a26ebb6
AC
10980 conversion.
10981
10982 * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
10983 simple redundant qualifications. The check is performed whenever the
10984 expression is a non-overloaded identifier.
10985 (Resolve_Type_Conversion): Enchance the redundant type conversion check
10986 to include loop parameters.
10987 (Valid_Conversion): Avoid generation of spurious error message.
10988
109892007-08-31 Bob Duff <duff@adacore.com>
10990
10991 * par-ch4.adb (P_Simple_Expression): Fold long sequences of
10992 concatenations of string literals into a single literal, in order to
10993 avoid very deep recursion in the front end, which was causing stack
10994 overflow.
10995
10996 * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
10997 string, and the right operand is a string literal (the case of "" &
10998 "..."), optimize by avoiding copying the right operand -- just use the
10999 value of the right operand directly.
11000
11001 * stringt.adb (Store_String_Chars): Optimize by growing the
11002 String_Chars table all at once, rather than appending characters one by
11003 one.
11004 (Write_String_Table_Entry): If the string to be printed is very long,
11005 just print the first few characters, followed by the length. Otherwise,
11006 doing "pn(n)" in the debugger can take an extremely long time.
11007
11008 * sem_prag.adb (Process_Interface_Name): Replace loop doing
11009 Store_String_Char with Store_String_Chars.
11010
110112007-08-31 Vincent Celier <celier@adacore.com>
11012
11013 * prj-attr.adb: Add new attribute Excluded_Source_Files
11014
11015 * prj-nmsc.adb: Use attribute Excluded_Source_Files before
11016 Locally_Removed_Files.
11017
11018 * snames.ads, snames.adb: New standard name Excluded_Source_Files
11019
110202007-08-31 Ed Schonberg <schonberg@adacore.com>
11021
11022 * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
11023 clauses of subunits, ignore limited_with_clauses that are illegal and
11024 have not been fully analyzed.
11025
110262007-08-31 Ed Schonberg <schonberg@adacore.com>
11027
11028 * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
11029 flag, for effiency. It is called when analyzing arithmetic operators
11030 and also for actuals in calls that are universal_integers. The flag is
11031 set for the predefined type address, and for any type or subtype
11032 derived from it.
11033
11034 * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
11035 Universal_Integer, when the formal is a descendent of address and the
11036 call appears in user code.
11037 (Analyze_Selected_Component): if the prefix is a private extension, the
11038 tag component is visible.
11039
11040 * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
11041 entity flag.
11042
110432007-08-31 Robert Dewar <dewar@adacore.com>
11044
11045 * s-fileio.adb (Open): Normalize file name to lower case in non-case
11046 sensitive file name systems to avoid unexpected mismatch in Vista.
11047
110482007-08-31 Vincent Celier <celier@adacore.com>
11049
11050 * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
11051
110522007-08-31 Vincent Celier <celier@adacore.com>
11053
11054 * symbols-vms.adb (Initialize): Read symbol files with continuation
11055 lines
11056 (Finalize): If symbol is long, split the line
11057
110582007-08-31 Vincent Celier <celier@adacore.com>
11059
11060 * fmap.ads: Minor comment updates
11061
110622007-08-31 GNAT Script <nobody@adacore.com>
11063
11064 * Make-lang.in: Makefile automatically updated
11065
110662007-08-31 Bob Duff <duff@adacore.com>
11067
11068 * sinfo.ads: Minor comment fix.
11069
110702007-08-31 Thomas Quinot <quinot@adacore.com>
11071
11072 * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
11073 with implementation.
11074 Documentation cleanup only.
11075
110762007-08-31 Sergey Rybin <rybin@adacore.com>
11077
11078 * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
11079 gnatpp '--separate-stmt-name' option.
11080 Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
11081 option.
11082
11083 * gnat_ugn.texi: Add description for the new gnatpp
11084 '--separate-stmt-name' and '--use-on-new-line' options.
11085
22d2aa96
BE
110862007-08-31 Ben Elliston <bje@au.ibm.com>
11087
11088 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
11089 when compiling for powerpc64-*-linux.
11090 * system-linux-ppc64.ads: New file.
11091
51743df8
KW
110922007-08-22 Krister Walfridsson <cato@df.lth.se>
11093
11094 * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
11095 NetBSD.
11096
ac7d7749
KG
110972007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11098
11099 * misc.c (gnat_type_max_size): Constify.
11100
833eddff
AC
111012007-08-16 Gary Dismukes <dismukes@adacore.com>
11102
11103 * cstand.adb (Create_Standard): Create an entity for a zero-sized type
11104 associated with Standard_Debug_Renaming_Type, to be used as the type of
11105 the special variables whose names provide debugger encodings for
11106 renaming declarations.
11107
11108 * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
11109 (Set_Debug_Renaming_Link): Change to set Node25.
11110 (Write_Field13_Name): Remove case for E_Enumeration_Literal.
11111 (Write_Field25_Name): Add case for E_Variable to output
11112 "Debug_Renaming_Link".
11113 (Write_Field23_Name): Correct the output string for "Limited_View".
11114
11115 * exp_dbug.adb: Add with and use of Tbuild.
11116 (Debug_Renaming_Declaration): Replace creation of an enumeration type
11117 and literal with creation of a variable of type
11118 Standard_Debug_Renaming_Type whose name encodes both the renamed object
11119 and the entity of the renaming declaration.
11120 (Qualify_Entity_Name): Add the delayed qualification of the entity name
11121 part of the name of a variable that has a Debug_Renaming_Link.
11122
11123 * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
11124 special type to be associated with variables that provide debugger
11125 encodings for renaming declarations.
11126
111272007-08-16 Gary Dismukes <dismukes@adacore.com>
11128 Ed Schonberg <schonberg@adacore.com>
11129 Javier Miranda <miranda@adacore.com>
11130
11131 * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
11132 ancestor part given by an aggregate to test for an unchecked conversion,
11133 since this can occur in some cases when the ancestor part is a function
11134 call, and we don't want to fall into the recursive call to this
11135 procedure in that case.
11136
11137 * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
11138 stream attributes on limited types to account for user-specified
11139 attributes as well as whether Input (resp. Output) becomes available
11140 due to Read (resp. Write) being available for the type. Change Boolean
11141 variable to the more accurate name
11142 Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
11143 double-"not" predicate at beginning of return statement to more
11144 understandable form.
11145
11146 * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
11147 return has an associated N_Handled_Sequence_Of_Statements, then wrap it
11148 in a block statement and use that as the first statement of the
11149 expanded return rather than incorrectly using the handled sequence as
11150 the first statement.
11151
11152 * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
11153 operation, generate an explicit freeze node for it rather than
11154 generating extra formals, to ensure that gigi has the proper order of
11155 elaboration for anonymous subtypes in the signature of the subprograms.
11156 (Build_In_Place_Formal): Move assertion to beginning of loop.
11157 (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
11158 applied to a function call (occurs for some cases of 'Input).
11159 (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
11160 applied to a function call (occurs for some cases of 'Input).
11161
11162 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
11163 2005, generate an extended return statement enclosing the result object
11164 and 'Read call.
11165
11166 * freeze.adb (Freeze_Record_Type): Extend the current management of
11167 components that are access type with an allocator as default value: add
11168 missing support to the use of qualified expressions of the
11169 allocator (which also cause freezing of the designated type!)
11170 (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
11171 dispatching operation, since extra formals may be needed by calls to
11172 build-in-place functions (such as stream 'Input).
11173
11174 * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
11175 formals for 'Constrained and accessibility level in the case of a
11176 predefined dispatching operation.
11177
11178 * exp_util.adb (Insert_Actions): A protected body is a valid insertion
11179 point, no need to find the parent node.
11180
111812007-08-16 Javier Miranda <miranda@adacore.com>
11182
11183 * exp_attr.adb (Attribute_Priority): Add missing support for entries
11184 and entry barriers.
11185
111862007-08-16 Javier Miranda <miranda@adacore.com>
11187
11188 * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
11189 is not really required and can introduce regression with the debugger.
11190 The original problem is fixed with the patch written for checks.adb.
11191
111922007-08-16 Thomas Quinot <quinot@adacore.com>
11193
11194 * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
11195 Range_Check on Allocated_Table.
11196
111972007-08-16 Vincent Celier <celier@adacore.com>
11198
11199 * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
11200 Including_Non_Switch set to False.
11201 (Gnatmake): For the compiler, call Test_If_Relative_Path with
11202 Including_Non_Switch set to False.
11203
11204 * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
11205 parameter Including_Non_Switch, defaulted to True. When
11206 Including_Non_Switch is False, options that are not switches and
11207 appear as relative path are not converted to absolute paths.
11208
112092007-08-16 Nicolas Roche <roche@adacore.com>
11210
11211 * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
11212 makefiles
11213
11214 * Make-lang.in: Update dependencies
11215
112162007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
11217
11218 * sem_ch10.adb (Has_With_Clause): If the name of the with clause
11219 currently inspected is a selected component, retrieve the entity of
11220 its selector.
11221 (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
11222 from the immediate ancestor of Main_Unit_Entity.
11223 (Install_Limited_Withed_Unit): Do not install the limited view of
11224 package P if P is reachable through an ancestor chain from package C
11225 and C also has a with clause for P in its body.
11226 (Has_Limited_With_Clause): New routine.
11227 (Has_With_Clause): New routine.
11228
112292007-08-16 Ed Schonberg <schonberg@adacore.com>
11230
11231 * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
11232 generic for an enclosing instance is a global reference, even though
11233 its scope is the enclosing instance.
11234
112352007-08-16 Gary Dismukes <dismukes@adacore.com>
11236 Javier Miranda <miranda@adacore.com>
11237
11238 * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
11239 initialize a limited object.
11240 (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
11241 13/2 and 14/2.
11242 Make sure Has_Complex_Representation is inherited by derived type.
11243
112442007-08-16 Robert Dewar <dewar@adacore.com>
11245
11246 * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
11247 exception case
11248
112492007-08-16 Ed Schonberg <schonberg@adacore.com>
11250
11251 * sem_disp.adb (Check_Dispatching_Operation): If the operation
11252 implements an operation inherited from a progenitor interface, verify
11253 that they are subtype-conformant.
11254
112552007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
11256 Bob Duff <duff@adacore.com>
11257 Nicolas Setton <setton@adacore.com>
11258
11259 * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
11260 (Resolve): Alphabetize local variables. Add new variable From_Lib. When
11261 the statement which is being resolved comes from a predefined library
11262 unit, all non-predefined library interpretations are skipped.
11263 (Resolve_Op_Concat): If string concatenation was folded in the parser,
11264 but the "&" is user defined, give an error, because the folding would
11265 be wrong.
11266
11267 * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
11268 the parser has folded a long sequence of concatenations of string
11269 literals.
11270
11271 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
11272 and "JMP_BUF" variables as artificial.
11273 (N_String_Literal): Do not use alloca for very long string literals. Use
11274 xmalloc/free instead. Otherwise the stack might overflow.
11275
11276 * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
11277 compiler.
11278
112792007-08-16 Vincent Celier <celier@adacore.com>
11280
11281 * vms_conv.adb (Process_Argument): Ensure that project related options
11282 are not put in the -cargs section when using GNAT COMPILE.
11283
112842007-08-16 Robert Dewar <dewar@adacore.com>
11285
11286 * gnat_ugn.texi: Add note on preprocessing (output file not written)
11287
112882007-08-16 Thomas Quinot <quinot@adacore.com>
11289
11290 * a-tags.adb: Minor reformatting.
11291
112922007-08-16 Bob Duff <duff@adacore.com>
11293
11294 * sem_type.ads, sem_ch4.adb: Minor reformatting.
11295
ab6328d0
AC
112962007-08-14 Thomas Quinot <quinot@adacore.com>
11297
9e81dbc7 11298 * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
ab6328d0
AC
11299 s-osinte-interix.ads, system-interix.ads: Removed.
11300
113012007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
11302
11303 * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
11304 calls to Check_Within_Time_Bounds.
11305 ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
11306 (Difference): Account for possible rounding of the resulting difference
11307
113082007-08-14 Robert Dewar <dewar@adacore.com>
11309
11310 * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
11311 par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
11312 s-osinte-solaris.adb, s-osinte-solaris.ads,
11313 s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
11314
11315 * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
11316 switch -gnatyS. Enable -gnatyS in GNAT style check mode
11317
113182007-08-14 Robert Dewar <dewar@adacore.com>
11319 Ed Schonberg <schonberg@adacore.com>
11320
9e81dbc7 11321 * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
ab6328d0
AC
11322 Suppress unmodified in-out parameter warning in some cases
11323 This patch is a also fairly significant change to the way suppressible
11324 checks are handled.
11325
11326 * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
11327 needed for access to concurrent record types generated by the expander.
11328 (Generate_Range_Check): When generating a temporary to capture the
11329 value of a conversion that requires a range check, set the type of the
11330 temporary before rewriting the node, so that the type is always
11331 properly placed for back-end use.
11332 (Apply_Float_Conversion_Check): Handle case where the conversion is
11333 truncating.
11334 (Get_Discriminal): Code reformatting. Climb the scope stack looking
11335 for a protected type in order to examine its discriminants.
11336
113372007-08-14 Robert Dewar <dewar@adacore.com>
11338 Gary Dismukes <dismukes@adacore.com>
11339 Ed Schonberg <schonberg@adacore.com>
11340 Thomas Quinot <quinot@adacore.com>
11341
9e81dbc7 11342 * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
ab6328d0
AC
11343 a-stwisu.adb, a-strsup.adb: Fix warnings for range
11344 tests optimized out.
11345
11346 * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
11347 (Get_Allocator_Final_List): For the case of an anonymous access type
11348 that has a specified Associated_Final_Chain, do not go up to the
11349 enclosing scope.
11350 (Expand_N_Type_Conversion): Test for the case of renamings of access
11351 parameters when deciding whether to apply a run-time accessibility
11352 check.
11353 (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
11354 aggregate code before allocator, and ahead of declaration for
11355 temporary, to prevent access before elaboration when the allocator is
11356 an actual for an access parameter.
11357 (Expand_N_Type_Conversion): On an access type conversion involving an
11358 access parameter, do not apply an accessibility check when the
11359 operand's original node was an attribute other than 'Access. We now
11360 create access conversions for the expansion of 'Unchecked_Access and
11361 'Unrestricted_Access in certain cases and clearly accessibility should
11362 not be checked for those.
11363
11364 * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
11365 includes a type conversion of a packed component that has been expanded,
11366 recover the original expression for the object, and use this expression
11367 in the post-call assignment statement, so that the assignment is made
11368 to the object and not to a back-end temporary.
11369 (Freeze_Subprogram): In case of primitives of tagged types not defined
11370 at the library level force generation of code to register the primitive
11371 in the dispatch table. In addition some code reorganization has been
11372 done to leave the implementation clear.
11373 (Expand_Call): When expanding an inherited implicit conversion,
11374 preserve the type of the inherited function after the intrinsic
11375 operation has been expanded.
11376
11377 * exp_ch2.ads, exp_ch2.adb
11378 (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
11379 of an entry formal appearing in an assignment statement does not assign
11380 to the formal.
11381 (Expand_Current_Value): Instead of calling a routine to determine
11382 whether the prefix of an attribute reference should be optimized or
11383 not, prevent the optimization of such prefixes all together.
11384
11385 * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
11386 component whose prefix is known to be of an access type is an implicit
11387 dereference and does not assign to the prefix.
11388
113892007-08-14 Ed Schonberg <schonberg@adacore.com>
11390 Robert Dewar <dewar@adacore.com>
11391
11392 * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
11393 itype is visited, make an entry into table to link associated node and
11394 new itype.
11395 Add comments and correct harmless error in Build_NCT_Hash_Tables
11396 (Array_Aggr_Subtype): Associate each itype created for an index type to
11397 the corresponding range construct, and not to the aggregate itself. to
11398 maintain a one-to-one correspondence between itype and its associated
11399 node, to prevent errors when complex expression is copied.
11400 Fix mishandling of multiple levels of parens
11401
11402 * sem_aggr.adb: Create a limited view of an incomplete type, to make
11403 treatment of limited views uniform for all visible declarations in a
11404 limited_withed package.
11405 (New_Copy_Tree): If hash table is being used and itype is visited,
11406 make an entry into table to link associated node and new itype.
11407 (Resolve_Record_Aggregate): Do not add an others box association for a
11408 discriminated record component that has only discriminants, when there
11409 is a box association for the component itself.
11410
11411 * par-ch4.adb: Fix mishandling of multiple levels of parens
11412
114132007-08-14 Robert Dewar <dewar@adacore.com>
11414
11415 * comperr.adb: Fix problem with suppressing warning messages from gigi
11416
9e81dbc7 11417 * erroutc.ads, erroutc.adb, errout.ads,
ab6328d0
AC
11418 errout.adb (Write_Eol): Remove trailing spaces before writing the line
11419 (Write_Eol_Keep_Blanks): New procedure to write a line, including
11420 possible trailing spaces.
11421 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
11422 Fix problem with suppressing warning messages from back end
11423 Improve handling of deleted warnings
11424
9e81dbc7 11425 * gnat1drv.adb:
ab6328d0
AC
11426 Fix problem with suppressing warning messages from back end
11427 Handle setting of Static_Dispatch_Tables flag.
11428
9e81dbc7 11429 * prepcomp.adb:
ab6328d0
AC
11430 Fix problem with suppressing warning messages from back end
11431
11432 * exp_intr.adb: Improve handling of deleted warnings
11433
114342007-08-14 Robert Dewar <dewar@adacore.com>
11435
11436 * debug.adb: Improve -gnatdI to cover all cases of serialization
11437 Add documentation of dZ, d.t
11438
11439 * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
11440 serialization.
11441 (Sprint_Node_Actual): Generate new output associated with implicit
11442 importation and implicit exportation of object declarations.
11443
114442007-08-14 Ed Schonberg <schonberg@adacore.com>
11445 Robert Dewar <dewar@adacore.com>
11446 Javier Miranda <miranda@adacore.com>
11447 Gary Dismukes <dismukes@adacore.com>
11448
11449 * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
11450 to make treatment of limited views uniform for all visible declarations
11451 in a limited_withed package.
11452 Improve warnings for in out parameters
11453 (Set_Related_Interaface/Related_Interface): Allow the use of this
11454 attribute with constants.
11455 (Write_Field26_Name): Handle attribute Related_Interface in constants.
11456 Warn on duplicate pragma Preelaborable_Initialialization
11457
11458 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
11459 generation of a freezing node to ensure proper management of null
11460 excluding access types in the backend.
11461 (Create_Extra_Formals): Test base type of the formal when checking for
11462 the need to add an extra accessibility-level formal. Pass the entity E
11463 on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
11464 originally being done in a couple of cases), to ensure that the
11465 Extra_Formals list gets set on the entity E when the first entity is
11466 added.
11467 (Conforming_Types): Add missing calls to Base_Type to the code that
11468 handles anonymous access types. This is required to handle the
11469 general case because Process_Formals builds internal subtype entities
11470 to handle null-excluding access types.
11471 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
11472 functions that need it, even when not marked Requires_Overriding.
11473 Improve warnings for in out parameters
11474 (Analyze_Function_Return): Warn for disallowed null return
11475 Warn on return from procedure with unset out parameter
11476 Ensure consistent use of # in error messages
11477 (Check_Overriding_Indicator): Add in parameter Is_Primitive.
11478 (Analyze_Function_Return): Move call to Apply_Constraint_Check before
11479 the implicit conversion of the expression done for anonymous access
11480 types. This is required to generate the code of the null excluding
11481 check (if required).
11482
11483 * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
11484 A formal parameter is never publicly referenceable outside of its body.
11485 (Check_References): For an unreferenced formal parameter in an accept
11486 statement, use the same warning circuitry as for subprogram formal
11487 parameters.
11488 (Warn_On_Unreferenced_Entity): New subprogram, taken from
11489 Output_Unreferenced_Messages, containing the part of that routine that
11490 is now reused for entry formals as described above.
11491 (Goto_Spec_Entity): New function
11492 (Check_References): Do not give IN OUT warning for dispatching operation
11493 Improve warnings for in out parameters
11494 (Test_Ref): Check that the entity is not undefinite before calling
11495 Scope_Within, in order to avoid infinite loops.
11496 Warn on return from procedure with unset out parameter
11497 Improved warnings for unused variables
11498
114992007-08-14 Robert Dewar <dewar@adacore.com>
11500 Javier Miranda <miranda@adacore.com>
11501 Gary Dismukes <dismukes@adacore.com>
11502
11503 * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
11504 (Expand_N_Attribute_Reference): Further unify the handling of the
11505 three forms of access attributes, using common code now for all three
11506 cases. Add a test for the case of applying an access attribute to
11507 an explicit dereference when the context is an access-to-interface
11508 type. In that case we need to apply the conversion to the prefix
11509 of the explicit dereference rather than the prefix of the attribute.
11510 (Attribute_Version, UET_Address): Set entity as internal to ensure
11511 proper dg output of implicit importation.
11512 (Expand_Access_To_Type): Removed.
11513 (Expand_N_Attribute_Reference): Merge the code from the three cases
11514 of access attributes, since the processing is largely identical for
11515 these cases. The substantive fix here is to process the case of a
11516 type name prefix (current instance case) before handling the case
11517 of interface prefixes.
11518
115192007-08-14 Thomas Quinot <quinot@adacore.com>
11520 Ed Schonberg <schonberg@adacore.com>
11521 Javier Miranda <miranda@adacore.com>
11522 Robert Dewar <dewar@adacore.com>
11523
11524 * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
11525 (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
11526 type that is an anonymous access to controlled object, establish
11527 an associated finalization chain to avoid corrupting the global
11528 finalization list when a dynamically allocated object designated
11529 by such a component is deallocated.
11530 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
11531 functions that need it, even when not marked Requires_Overriding.
11532 (Initialize_Tag): Replace call to has_discriminants by call to
11533 Is_Variable_Size_Record in the circuitry that handles the
11534 initialization of secondary tags.
11535 (Is_Variable_Size_Record): New implementation.
11536 (Expand_N_Object_Declaration): Suppress call to init proc if there is a
11537 Suppress_Initialization pragma for a derived type.
11538 (Is_Variable_Size_Record): New subprogram.
11539 (Build_Offset_To_Top_Functions): New implementation that simplifies the
11540 initial version of this routine and also fixes problems causing
11541 incomplete initialization of the table of interfaces.
11542 (Build_Init_Procedure): Improve the generation of code to initialize the
11543 the tag components of secondary dispatch tables.
11544 (Init_Secondary_Tags): New implementation that simplifies the previous
11545 version of this routine.
11546 (Make_DT): Add parameter to indicate when type has been frozen by an
11547 object declaration, for diagnostic purposes.
11548 (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
11549 diagnose attemps to freeze a subprogram when some untagged type of its
11550 profile is a private type whose full view has not been analyzed yet.
11551 (Freeze_Array_Type): Generate init proc for packed array if either
11552 Initialize or Normalize_Scalars is set.
11553 (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
11554 constructing the new profile, copy the null_exclusion indicator for each
11555 parameter, to ensure full conformance of the new body with the spec.
11556
11557 * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
11558 Create wrappers for constructor functions that need it, even when not
11559 marked Requires_Overriding.
11560 (Covers): Handle properly designated types of anonymous access types,
11561 whose non-limited views are themselves incomplete types.
11562 (Add_Entry): Use an entity to store the abstract operation which hides
11563 an interpretation.
11564 (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
11565 (Collect_Interps): Use Empty as an actual for Abstract_Op in the
11566 initialization aggregate.
11567 (Function_Interp_May_Be_Hidden): Rename to
11568 Function_Interp_Has_Abstract_Op.
11569 (Has_Compatible_Type): Remove machinery that skips interpretations if
11570 they are labeled as potentially hidden by an abstract operator.
11571 (Has_Hidden_Interp): Rename to Has_Abstract_Op.
11572 (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
11573 (Write_Overloads): Output the abstract operator if present.
11574 (Add_Entry): Before inserting a new entry into the interpretation table
11575 for a node, determine whether the entry will be disabled by an abstract
11576 operator.
11577 (Binary_Op_Interp_May_Be_Hidden): New routine.
11578 (Collect_Interps): Add value for flag May_Be_Hidden in initialization
11579 aggregate.
11580 (Function_Interp_May_Be_Hidden): New routine.
11581 (Has_Compatible_Type): Do not consider interpretations hidden by
11582 abstract operators when trying to determine whether two types are
11583 compatible.
11584 (Has_Hidden_Interp): New routine.
11585 (Set_May_Be_Hidden_Interp): New routine.
11586 (Write_Overloads): Write the status of flag May_Be_Hidden.
11587
115882007-08-14 Ed Schonberg <schonberg@adacore.com>
11589 Javier Miranda <miranda@adacore.com>
11590
11591 * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
11592 types declared in the declarative part of a nested package body or in
11593 the proper body of a stub.
11594 (Set_All_DT_Position): Add missing check to avoid wrong assignation
11595 of the same dispatch table slot to renamed primitives.
11596 (Make_Select_Specific_Data_Table): Handle private types.
11597 (Tagged_Kind): Handle private types.
11598 (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
11599 output of implicit importation and exportation.
11600 (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
11601 first formal of the thunk is always associated with the controlling
11602 type. In addition perform the following code cleanup: remove formal
11603 Thunk_Alias which is no longer required, cleanup evaluation of the
11604 the controlling type, and update the documentation.
11605 Replace occurrence of Default_Prim_Op_Count by
11606 Max_Predef_Prims. Addition of compile-time check to verify
11607 that the value of Max_Predef_Prims is correct.
11608 (Check_Premature_Freezing): Apply check in Ada95 mode as well.
11609 (Make_DT): Add parameter to indicate when type has been frozen by an
11610 object declaration, for diagnostic purposes.
11611 (Build_Static_Dispatch_Tables): New subprogram that takes care of the
11612 construction of statically allocated dispatch tables.
11613 (Make_DT): In case of library-level tagged types export the declaration
11614 of the primary tag. Remove generation of tags (now done by Make_Tags).
11615 Additional modifications to handle non-static generation of dispatch
11616 tables. Take care of building tables for asynchronous interface types
11617 (Make_Tags): New subprogram that generates the entities associated with
11618 the primary and secondary tags of Typ and fills the contents of Access_
11619 Disp_Table. In case of library-level tagged types imports the forward
11620 declaration of the primary tag that will be declared later by Make_DT.
11621 (Expand_Interface_Conversion): In case of access types to interfaces
11622 replace an itype declaration by an explicit type declaration to avoid
11623 problems associated with the scope of such itype in transient blocks.
11624
116252007-08-14 Robert Dewar <dewar@adacore.com>
11626 Ed Schonberg <schonberg@adacore.com>
11627 Javier Miranda <miranda@adacore.com>
11628
9e81dbc7 11629 * exp_util.ads, exp_util.adb:
ab6328d0
AC
11630 This patch replaces a number of occurrences of explicit tests for N_Null
11631 with calls to Known_Null. This improves tracking of null values, since
11632 Known_Null also catches null constants, and variables currently known to
11633 be null, so we get better tracking.
11634 (Ensure_Defined): create an itype reference only in the scope of the
11635 itype.
11636 (Side_Effect_Free): A selected component of an access type that
11637 denotes a component with a rep clause must be treated as not
11638 side-effect free, because if it is part of a linked structure its
11639 value may be affected by a renaming.
11640 (Expand_Subtype_From_Expr): For limited objects initialized with build
11641 in place function calls, do nothing; otherwise we prematurely introduce
11642 an N_Reference node in the expression initializing the object, which
11643 breaks the circuitry that detects and adds the additional arguments to
11644 the called function. Bug found working in the new patch for statically
11645 allocated dispatch tables.
11646 (Is_Library_Level_Tagged_Type): New subprogram.
11647 (Remove_Side_Effects): If the expression of an elementary type is an
11648 operator treat as a function call.
11649 (Make_Literal_Range): If the index type of the array is not integer, use
11650 attributes properly to compute the constraint on the resulting aggregate
11651 which is a string.
11652
11653 * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
11654 class-wide type whose base type is an incomplete private type, leave
11655 class-wide type unfrozen so that freeze nodes can be generated
11656 properly at a later point.
11657 (Freeze_Entity, array case): Handle case of pragma Pack and component
11658 size attributre clause for same array.
11659
116602007-08-14 Vincent Celier <celier@adacore.com>
11661
11662 * prj.ads, prj.adb: Update Project Manager to new attribute names for
11663 gprbuild.
11664 Allow all valid declarations in configuration project files
11665 (Reset): Initialize all tables and hash tables in the project tree data
11666 Major update of the Project Manager and of the project aware tools,
11667 including gprmake, so that the same sources in the GNAT repository
11668 can be used by gprbuild.
11669 (Slash_Id): Change type to be Path_Name_Type
11670 (Slash): Return a Path_Name_Type instead of a File_Name_Type
11671
11672 * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
11673 gprbuild.
11674 Update Project Manager to new attribute names for ghprbuild
11675 Allow all valid declarations in configuration project files
11676 Major update of the Project Manager and of the project aware tools,
11677 including gprmake, so that the same sources in the GNAT repository
11678 can be used by gprbuild.
11679
9e81dbc7 11680 * prj-com.ads:
ab6328d0
AC
11681 Major update of the Project Manager and of the project aware tools,
11682 including gprmake, so that the same sources in the GNAT repository
11683 can be used by gprbuild.
11684
11685 * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
11686 insensitive flag for attributes with optional index.
11687 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
11688 array attribute, put the index in lower case.
11689 Update Project Manager to new attribute names for ghprbuild
11690 Allow all valid declarations in configuration project files
11691 Major update of the Project Manager and of the project aware tools,
11692 including gprmake, so that the same sources in the GNAT repository
11693 can be used by gprbuild.
11694
9e81dbc7 11695 * prj-env.ads, prj-env.adb:
ab6328d0
AC
11696 Major update of the Project Manager and of the project aware tools,
11697 including gprmake, so that the same sources in the GNAT repository
11698 can be used by gprbuild.
11699 (Get_Reference): Change type of parameter Path to Path_Name_Type
11700
11701 * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
11702 removing '-' from the path to start with the first character of the
11703 next directory.
11704 Major update of the Project Manager and of the project aware tools,
11705 including gprmake, so that the same sources in the GNAT repository
11706 can be used by gprbuild.
11707 Major update of the Project Manager and of the project aware tools,
11708 including gprmake, so that the same sources in the GNAT repository
11709 can be used by gprbuild.
11710
9e81dbc7 11711 * prj-nmsc.ads, prj-nmsc.adb:
ab6328d0
AC
11712 Update Project Manager to new attribute names for ghprbuild
11713 Allow all valid declarations in configuration project files
11714 (Search_Directories): Detect subunits that are specified with an
11715 attribute Body in package Naming. Do not replace a source/unit in the
11716 same project when the order of the source dirs are known. Detect
11717 duplicate sources/units in the same project when the order of the
11718 source dirs are not known.
11719 (Check_Ada_Name): Allow all identifiers that are not reserved words
11720 in Ada 95.
11721 Major update of the Project Manager and of the project aware tools,
11722 including gprmake, so that the same sources in the GNAT repository
11723 can be used by gprbuild.
11724 (Look_For_Sources): If the list of sources is empty, set the object
11725 directory of non extending project to nil.
11726 Change type of path name variables to be Path_Name_Type
11727 (Locate_Directory): Make sure that on Windows '/' is converted to '\',
11728 otherwise creating missing directories will fail.
11729
9e81dbc7 11730 * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
ab6328d0
AC
11731 prj-part.ads, prj-part.adb:
11732 Major update of the Project Manager and of the project aware tools,
11733 including gprmake, so that the same sources in the GNAT repository
11734 can be used by gprbuild.
11735
11736 * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
11737 insensitive flag for attributes with optional index.
11738 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
11739 array attribute, put the index in lower case.
11740 (Parse_Variable_Reference): Allow the current project name to be used in
11741 the prefix of an attribute reference.
11742
11743 * prj-util.ads, prj-util.adb
11744 (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
11745 defaulted to False. When True, always check against indexes in lower
11746 case.
11747
9e81dbc7 11748 * snames.ads, snames.h, snames.adb:
ab6328d0
AC
11749 Update Project Manager to new attribute names for gprbuild
11750 Allow all valid declarations in configuration project files
11751
117522007-08-14 Robert Dewar <dewar@adacore.com>
11753 Ed Schonberg <schonberg@adacore.com>
11754
11755 * opt.ads: Warning for non-local exception propagation now off by
11756 default
11757 New switch -gnatI to disable representation clauses
11758 Implement new pragma Implicit_Packing
11759
9e81dbc7 11760 * usage.adb:
ab6328d0
AC
11761 Warning for non-local exception propagation now off by default
11762 Add warning for unchecked conversion of pointers wi different
11763 conventions.
11764 New switch -gnatI to disable representation clauses
11765
11766 * usage.adb: new switch -gnatyS
11767
11768 * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
11769 note that aggregates of anonymous array types are not flagged.
11770 -gnatwc now includes membership tests optimized away
11771 -gnatw.x warnings are now off by default
11772 Added conditional compilation Appendix
11773 Add documentation of -gnatI
11774 Add documentation for new -gnatyS style check
11775 Update documentation about SAL and auto-init on Windows.
11776
9e81dbc7 11777 * gnat_rm.texi:
ab6328d0
AC
11778 Add documentation for pragma Check_Name and 'Enabled attribute
11779 Document that Eliminate on dispatching operation is ignored
11780 Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
11781 Document pragma Main
11782 Document pragma Implicit_Packing
11783
11784 * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
11785 different conventions
11786 New switch -gnatI to disable representation clauses
11787
11788 * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
11789 recognized, report the invalid characters including "-gnat" instead of
11790 just the first character in the switch.
11791 New switch -gnatI to disable representation clauses
11792 Set Warn_On_Object_Renames_Function true for -gnatg
11793
11794 * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
11795 Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
11796 Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
11797 to switch -aP (add directory to project search dir).
11798
11799 * par-prag.adb: Implement new pragma Implicit_Packing
11800
11801 * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
11802 type as having a non-standard representation, to force expansion on
11803 conversion to related types.
11804 (Analyze_Pragma): Warn on misspelled pragma
11805 (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
11806 Ensure consistent use of # in error messages
11807 Implement pragma Implicit_Packing
11808
118092007-08-14 Olivier Hainque <hainque@adacore.com>
11810 Eric Botcazou <ebotcazou@adacore.com>
11811
11812 * targtyps.c (get_target_maximum_default_alignment): New function.
11813 Maximum alignment
11814 that the compiler might choose by default for a type or object.
11815 (get_target_default_allocator_alignment): New function. Alignment known
11816 to be honored by the target default allocator.
11817 (get_target_maximum_allowed_alignment): New function. Maximum alignment
11818 we might accept for any type or object on the target.
11819 (get_target_maximum_alignment): Now synonym of maximum_default_alignment
11820
11821 * gigi.h (get_target_maximum_default_alignment): Declare new function.
11822 (get_target_default_allocator_alignment): Likewise.
11823 (get_target_maximum_allowed_alignment): Likewise.
11824
11825 PR ada/19037
11826 * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
11827 result of a function call, first try to use a stabilized reference for
11828 a constant renaming too.
11829 (validate_alignment): Use target_maximum_allowed_alignment instead of
11830 MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
11831 (gnat_to_gnu_entity): Use common nodes directly.
11832 (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
11833 alignment and size for the object.
11834 (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
11835 and N_Procedure_Call_Statement.
11836 (takes_address): Rename to lvalue_required_p, add third parameter
11837 'aliased' and adjust recursive calls.
11838 <N_Indexed_Component>: Update 'aliased' from the array type.
11839 <N_Selected_Component>: New case.
11840 <N_Object_Renaming_Declaration>: New Likewise.
11841 (Identifier_to_gnu): Adjust for above changes.
11842 (maybe_stabilize_reference) <CONST_DECL>: New case.
11843
11844 * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
11845 between type variants.
11846 (build_simple_component_ref): Likewise.
11847 (build_call_alloc_dealloc): Use target_default_allocator_alignment
11848 instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
11849 aligning type circuitry for allocations from the default storage pool.
11850 (build_allocator): Likewise.
11851 (build_simple_component_ref): Manually fold the reference for a
11852 constructor if the record type contains a template.
11853
11854 * utils.c (value_zerop): Delete.
11855 (gnat_init_decl_processing): Emit debug info for common types.
11856 (rest_of_record_type_compilation): If a union contains a field
11857 with a non-constant qualifier, treat it as variable-sized.
11858 (finish_record_type): Give the stub TYPE_DECL a name.
11859 (rest_of_record_type_compilation): Likewise.
11860 (convert) <CONSTRUCTOR>: New case. Build a new constructor if
11861 types are equivalent array types.
11862 (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
11863 even if the type is not passed by reference.
11864 (static_ctors, static_dtors): Delete.
11865 (end_subprog_body): Do not record constructors and destructors.
11866 (build_global_cdtor): Delete.
11867 (gnat_write_global_declarations): Do not call build_global_cdtor.
11868
0ab29e91 11869 * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
ab6328d0
AC
11870 -fRTS=rtp is specified.
11871 If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
11872 specified.
11873
11874 * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
11875 of the personality function with SJLJ exceptions.
11876
9e81dbc7 11877 * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
ab6328d0
AC
11878 the name of the personality function with SJLJ exceptions.
11879
118802007-08-14 Robert Dewar <dewar@adacore.com>
11881 Ed Schonberg <schonberg@adacore.com>
11882
11883 * par.ads, par.adb: Improve handling of extra right parens.
11884 (Par): Remove flag From_Limited_With_Clause.
11885
11886 * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
11887 Improve handling of extra right parens.
11888
118892007-08-14 Robert Dewar <dewar@adacore.com>
11890
11891 * par-tchk.adb (TF_Semicolon): Improve error recovery
11892
118932007-08-14 Robert Dewar <dewar@adacore.com>
11894 Ed Schonberg <schonberg@adacore.com>
11895
11896 * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
11897 enumeration type, mark all literals as referenced.
11898 (Eval_Attribute, case 'Image): If the argument is an enumeration
11899 literal and names are available, constant-fold but mark nevertheless as
11900 non-static.
11901 Clean up function names.
11902 (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
11903 comment.
11904 (Requires_Simple_Name_Prefix): Removed.
11905
119062007-08-14 Robert Dewar <dewar@adacore.com>
11907 Ed Schonberg <schonberg@adacore.com>
11908
11909 * sem_ch11.adb: Improved warnings for unused variables
11910
11911 * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
11912 is a synchronized interface, the derived type is limited.
11913 (Analyze_Object_Declaration): Mark the potential coextensions in the
11914 definition and expression of an object declaration node.
11915 (Build_Derived_Type): For the completion of a private type declaration
11916 with a derived type declaration, chain the parent type's representation
11917 items to the last representation item of the derived type (not the
11918 first one) if they are not present already.
11919 (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
11920 object declaration of forward references to tags.
11921 (Access_Subprogram_Declaration): In Ada2005, anonymous access to
11922 subprogram types can appear as access discriminants of synchronized
11923 types.
11924 (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
11925 given in prefixed form as a selected component.
11926 (Process_Discriminants): If not all discriminants have defaults, place
11927 error message on a default that is present.
11928 (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
11929 extend a synchronized tagged type.
11930 Improved warnings for unused variables
11931 (Is_Visible_Component): Fix a visibility hole on a component inherited
11932 by a private extension when parent is itself declared as a private
11933 extension, and the derivation is in a child unit.
11934 (Find_Hidden_Interface): Move spec from the package body.
11935
119362007-08-14 Robert Dewar <dewar@adacore.com>
11937 Ed Schonberg <schonberg@adacore.com>
11938
11939 * sem_ch5.adb: Improve warnings on redundant assignments
11940
11941 * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
11942 parameter
11943 (Is_Synchronized_Tagged_Type): New subprogram that returns true
11944 in case of synchronized tagged types (AARM 3.9.4 (6/2)).
11945 (Safe_To_Capture_Value): Can now return True for constants, even if Cond
11946 is set to False. Improves handling of Known_[Not_]Null.
11947 (Wrong_Type): Special case address arithmetic attempt
11948 (Collect_Abstract_Interfaces): Add new formal to allow collecting
11949 abstract interfaces just using the partial view of private types.
11950 (Has_Abstract_Interfaces): Add new formal to allow checking types
11951 covering interfaces using the partial view of private types.
11952 (Is_Fully_Initialized_Type): Special VM case for uTag component. This
11953 component still needs to be defined in this case, but is never
11954 initialized as VMs are using other dispatching mechanisms.
11955 (Abstract_Interface_List): For a protected type, use base type to get
11956 proper declaration.
11957 Improve warnings on redundant assignments
11958 (Is_Variable): Handle properly an implicit dereference of a prefixed
11959 function call.
11960 (Build_Actual_Subtype): If this is an actual subtype for an
11961 unconstrained formal parameter, use the sloc of the body for the new
11962 declaration, to prevent anomalises in the debugger.
11963
119642007-08-14 Robert Dewar <dewar@adacore.com>
11965
11966 * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
11967 dispatching operation
11968
119692007-08-14 Ed Schonberg <schonberg@adacore.com>
11970 Gary Dismukes <dismukes@adacore.com>
11971
9e81dbc7 11972 * exp_aggr.ads,
ab6328d0
AC
11973 exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
11974 expanded aggregate code before allocator, and ahead of declaration for
11975 temporary, to prevent access before elaboration when the allocator is
11976 an actual for an access parameter.
11977 (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
11978 the TSD and the table of interfaces.
11979 (Convert_To_Assignments): Augment the test for delaying aggregate
11980 expansion for limited return statements to include the case of extended
11981 returns, to prevent creation of an unwanted transient scope.
11982 (Is_Static_Dispatch_Table_Aggregate): New subprogram.
11983 (Expand_Array_Aggregate): Handle aggregates associated with
11984 statically allocated dispatch tables.
11985 (Expand_Record_Aggregate): Handle aggregates associated with
11986 statically allocated dispatch tables.
11987 (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
11988 of anonymous access type.
11989
119902007-08-14 Ed Schonberg <schonberg@adacore.com>
11991
11992 * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
11993 is a variable that renames a slice, use the variable itself in the
11994 expannsion when the renamed expression itself may be modified between
11995 the declaration of the renaming and the array assignment.
11996
119972007-08-14 Jerome Guitton <guitton@adacore.com>
11998
9e81dbc7
AS
11999 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
12000 s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
ab6328d0
AC
12001 s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
12002 New functions; dummy implementations.
12003
12004 * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
12005 functions, used to implement the multi-tasks mode routines on VxWorks.
12006
12007 * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
12008 New functions, thin
12009 binding to the VxWorks routines which have changed between VxWorks 5
12010 and 6.
12011 (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
12012 which are not callable from a RTP.
12013
12014 * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
12015 implemented for the multi-tasks mode on VxWorks 5 and 6.
12016
12017 * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
12018
12019 * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
12020 functions.
12021
120222007-08-14 Vincent Celier <celier@adacore.com>
12023
9e81dbc7 12024 * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
ab6328d0 12025 gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
9e81dbc7
AS
12026 mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
12027 mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
12028 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
ab6328d0
AC
12029 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
12030 mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
12031 procedure.
12032 (Major_Id_Name): New function.
12033 mlib-tgt.ads/mlib.tgt.adb:
12034 (Library_Major_Minor_Id_Supported): New function, default returns True
12035 Most mlib-tgt-*.adb that support shared libraries and symbolic links:
12036 (Build_Dynamic_Library): Add support for major/minor ids for shared libs
12037 Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
12038 Implementation of Library_Major_Minor_Id_Supported returns False
12039 clean.adb:
12040 (Clean_Library_Directory): If major/minor ids are supported, clean all
12041 library files.
12042 Major update of the Project Manager and of the project aware tools,
12043 including gprmake, so that the same sources in the GNAT repository
12044 can be used by gprbuild.
12045
120462007-08-14 Olivier Hainque <hainque@adacore.com>
12047
12048 * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
12049 (GCC_ZCX_Support): Switch to True.
9e81dbc7 12050
ab6328d0
AC
12051 * s-intman-solaris.adb (Notify_Exception): Call
12052 Adjust_Context_For_Raise before raising, as expected for signal
12053 handlers in general.
9e81dbc7 12054
ab6328d0
AC
12055 * s-intman-posix.adb (Notify_Exception): Remove declaration of
12056 Adjust_Context_For_Raise, moved to the spec of this unit to be visible
12057 to other implementation bodies.
9e81dbc7 12058
ab6328d0
AC
12059 * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
12060 be visible by multiple implementation bodies.
9e81dbc7 12061
ab6328d0
AC
12062 * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
12063 only for conditions coming from hardware.
12064 [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
12065 adjustments to signal context prior to exception raise from signal
12066 handler.
12067 (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
12068 mode.
12069 Solaris section: (__gnat_adjust_context_for_raise): New function.
12070 Implementation of the machine context adjustments to perform prior to
12071 raise from a signal handler. Version for both sparc and x86.
12072 (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
12073 (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
12074 prior to raising as expected for any handler, before possible nested
12075 faults to make sure all the contexts in a chain have been adjusted by
12076 the time we propagate.
12077
120782007-08-14 Pascal Obry <obry@adacore.com>
12079
12080 * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
12081 (SYSTEM_INFO): New record.
12082 (SetThreadIdealProcessor): New imported routine needed for supporting
12083 task_info pragma on Windows.
12084
12085 * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
12086 info can be applied to the current host.
12087 (Create_Task): Set the ideal processor if information is present.
12088
12089 * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
12090 a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
12091
120922007-08-14 Olivier Hainque <hainque@adacore.com>
12093
12094 * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
12095 stack size and initial stack pointer value for a given task.
12096 (Enter_Task): Get the stack attributes of the task we are entering and
12097 let the stack checking engine know about them.
12098
12099 * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
12100 Let the stack-checking engine know about the initial sp value and stack
12101 size associated with the current task.
12102 (Set_Stack_Info): If a stack base has been notified for the current
12103 task, honor it. Fallback to the previous less accurate method otherwise.
12104
12105 * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
12106
121072007-08-14 Ed Schonberg <schonberg@adacore.com>
12108
12109 * sem_ch10.adb: Create a limited view of an incomplete type, to make
12110 treatment of limited views uniform for all visible declarations in a
12111 limited_withed package.
12112 Set flag indicating that a subprogram body for a child unit has a
12113 generated spec.
12114 (Analyze_Compilation_Unit): If unit is a subprogram body that has no
12115 separate declaration, remove the unit name from visibility after
12116 compilation, so that environment is clean for subsequent compilations.
12117 (Install_Limited_Context_Clauses): Do not install a
12118 limited_private_with_clause unless the current unit is a body or a
12119 private child unit.
12120 (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
12121 in the same fashion.
12122 (Install_Limited_Withed_Unit): Do not install a limited with clause if
12123 it applies to the declaration of the current package body.
12124 (Remove_Private_With_Clauses): If there is a regular with_clause for
12125 the unit, delete Private_With_Clause from context, to prevent improper
12126 hiding when processing subsequent nested packages and instantiations.
12127
121282007-08-14 Jose Ruiz <ruiz@adacore.com>
12129
12130 * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
12131 dir/file, device:/dir/file, and device:drive_letter:/dir/file as
12132 representing absolute path names.
12133 __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
12134
12135 * cstreams.c (__gnat_full_name for VxWorks): Use
12136 __gnat_is_absolute_path to detect whether we need to add the current
12137 directory to normalize the path.
12138
121392007-08-14 Javier Miranda <miranda@adacore.com>
12140
9e81dbc7 12141 * a-tags.ads,
ab6328d0
AC
12142 a-tags.adb (Displace): Associate a message with the raised CE
12143 exception.
12144 (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
12145 To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
12146 To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
12147 spec.
12148 (Default_Prim_Op_Count): Removed.
12149 (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
12150 Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
12151 Remove pragma Inline_Always.
12152
12153 * rtsfind.ads (Default_Prim_Op_Count): Removed
12154 (Max_Predef_Prims): New entity
12155 (RE_Expanded_Name): Removed
12156 (RE_HT_Link): Removed
12157 (RE_Iface_Tag): Remmoved
12158 (RE_Ifaces_Table): Removed
12159 (RE_Interfaces_Array): Removed
12160 (RE_Interface_Data_Element): Removed
12161 (RE_Nb_Ifaces): Removed
12162 (RE_RC_Offset): Removed
12163 (RE_Static_Offset_To_Top): Removed
12164
12165 * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
12166 formal.
12167 (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
12168 Prim_Op_Count by Max_Predef_Prims.
12169
121702007-08-14 Thomas Quinot <quinot@adacore.com>
12171 Vincent Celier <celier@adacore.com>
12172
12173 * binde.adb (Elab_All_Links): Remove unnecessary call to
12174 Generic_Separately_Compiled (if a unit satisfies this predicate, there
12175 won't be an associated Afile).
12176 (Elab_All_Links): Fail if a referenced unit cannot be found
12177
9e81dbc7 12178 * bindgen.adb:
ab6328d0
AC
12179 Fix comments in bindgen regarding consistency checks done in Bcheck:
12180 the checks are made across units within a partition, not across several
12181 partitions.
12182 Fix generation of C binder file for VxWorks.
12183
12184 * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
12185 Generic_May_Lack_ALI, more descriptive of the current use of the
12186 predicate, and update documentation.
12187
12188 * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
12189 reorganization and documentation update for the case of predefined
12190 library generics (for which we do not reference an Afile).
12191
121922007-08-14 Robert Dewar <dewar@adacore.com>
12193
12194 * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
12195 s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
12196 s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
12197 s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
12198 s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
12199 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
12200 s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
12201 s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
12202 exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
12203 s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
12204 s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
12205 a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
12206 s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
12207 g-altcon.adb: Minor reformatting
12208
12209 ada-tree.h: Delete empty line.
12210
12211 ali.ads: Minor reformatting
12212 Clarification of comments.
12213 Minor spelling correction
12214
12215 * exp_dbug.adb: Add Warnings Off to suppress new warning
12216
12217 * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
12218 formal
12219
12220 * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
12221 value
12222
12223 * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
12224
12225 * a-textio.ads: Reorder the standard input/output/error declarations
12226 for consistency.
12227
12228 * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
12229
12230 * par-ch2.adb: Recognize RM specially in errout
12231 Change 'R'M to RM in all error messages
12232
12233 * scng.adb: Recognize RM specially in errout
12234
12235 * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
12236 N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
12237
12238 * s-direio.adb: Add missing routine header box.
12239
12240 * sem_attr.ads: Add ??? comments
12241
12242 * sem_eval.adb: Recognize RM specially in errout
12243 Change 'R'M to RM in all error messages
12244
12245 * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
12246
12247 * s-tasinf.ads: Fix minor comment typo.
12248
12249 * a-cihama.adb: Minor comment addition
12250
12251 * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
12252 formal
12253
12254 * s-tasinf-tru64.ads: Fix minor comment typo.
12255
12256 * itypes.ads: Comment update.
12257
12258 * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
12259 anymore.
12260
12261 * argv.c: Added protection against null gnat_argv and gnat_envp.
12262
12263 * bcheck.adb (Check_Consistency): Use correct markup character ({) in
12264 warning message when Tolerate_Consistency_Errors is True.
12265
12266 * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
12267 Any_Id, as this subprogram is only applicable to *type* entities (it
12268 sets RM_Size). Instead initialize just Esize and Alignment.
12269
122702007-08-14 Bob Duff <duff@adacore.com>
12271
9e81dbc7
AS
12272 * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
12273 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
12274 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
ab6328d0
AC
12275 a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
12276 a-coorse.ads (Next): Applied pragma Inline.
12277 Make all Containers packages Remote_Types (unless they are already
12278 Pure).
12279 (Previous): applied pragma Inline
12280 (Elements_Type): is now a record instead of an array
12281
122822007-08-14 Thomas Quinot <quinot@adacore.com>
12283
12284 * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
12285 of Set_Item.
12286 (Set_Item): When the new item is an element of the currently allocated
12287 table passed by reference, save a copy on the stack if we're going
12288 to reallocate. Also, in Table.Set_Item, make sure we test the proper
12289 variable to determine whether to call Set_Last.
12290
12291 * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
12292 symbols-vms.adb, symbols-processing-vms-alpha.adb,
12293 symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
12294 some occurrences of the pattern
12295 T.Increment_Last;
12296 T.Table (T.Last) := Value;
12297 with a cleaner call to
12298 T.Append (Value);
12299
123002007-08-14 Ed Schonberg <schonberg@adacore.com>
12301 Gary Dismukes <dismukes@adacore.com>
12302 Thomas Quinot <quinot@adacore.com>
12303
12304 * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
12305 derived type with interface progenitors use the analyzed formal as the
12306 parent of the actual, to create renamings for all the inherited
12307 operations in Derive_Subprograms.
12308 (Collect_Previous_Instances): new procedure within of
12309 Load_Parent_Of_Generic, to instantiate all bodies in the compilation
12310 unit being loaded, to ensure that the generation of global symbols is
12311 consistent in different compilation modes.
12312 (Is_Tagged_Ancestor): New function testing the ancestor relation that
12313 takes progenitor types into account.
12314 (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
12315 traversing over the primitives of the formal and actual types to locate
12316 any abstract subprograms of the actual type that correspond to a
12317 nonabstract subprogram of the formal type's ancestor type(s), and issue
12318 an error if such is found.
12319 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
12320 Instantiate_Package_Body, Instantiate_Subprogram_Body):
12321 Remove bogus guard around calls to Inherit_Context.
12322 (Reset_Entity): If the entity is the selector of a selected component
12323 that denotes a named number, propagate constant-folding to the generic
12324 template only if the named number is global to the generic unit.
12325 (Set_Instance_Env): Only reset the compilation switches when compiling
12326 a predefined or internal unit.
12327
123282007-08-14 Ed Schonberg <schonberg@adacore.com>
12329
12330 * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
12331 parameter to determine whether operation applies to the prefix.
12332 (Complete_Object_Operation): If actual has an access type and
12333 controlling formal is not an in_parameter, reject the actual if it is
12334 an access_to_constant type.
12335 (Try_Primitive_Operation): If the type of the prefix is a formal tagged
12336 type, the candidate operations are found in the scope of declaration of
12337 the type, because the type has no primitive subprograms.
12338 (Analyze_Selected_Component): If prefix is class-wide, and root type is
12339 a private extension, only examine visible components before trying to
12340 analyze as a prefixed call.
12341 Change Entity_List to Type_To_Use, for better readability.
12342 (Has_Fixed_Op): Use base type when checking whether the type of an
12343 operator has a user-defined multiplication/division
12344 (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
12345 user-defined operators are available for fixed-point types.
12346
123472007-08-14 Thomas Quinot <quinot@adacore.com>
12348 Ed Schonberg <schonberg@adacore.com>
12349
12350 * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
12351 formal At_Any_Place indicating, when True, that we want to test for
12352 availability of the stream attribute at any place (as opposed to the
12353 current visibility context only).
12354 (Missing_Read_Write_Attributes): A stream attribute is missing for the
12355 purpose of enforcing E.2.2(8) only if it is not available at any place.
12356 Take into account the Ada2005 pragma Has_Preelaborable_Initialization
12357 when checking the legality of an extension aggregate in a preelaborable
12358 package. Treat the literal null as a valid default expression in a
12359 component declaration for a type with preelaborable initialization.
12360 A limited interface is a legal progenitor for the designated type of a
12361 remote access to class-wide type.
12362
123632007-08-14 Thomas Quinot <quinot@adacore.com>
12364 Ed Schonberg <schonberg@adacore.com>
12365
12366 * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
12367 reference): Use correct entity as denoted entity for the selector of
12368 the rewritten node.
12369 (Find_Direct_Name): Add comment about Generate_Reference incorrectly
12370 setting the Referenced_As_LHS flag for entities that are implicitly
12371 dereferenced.
12372 (Find_Type): If the type is an internally generated incomplete type,
12373 mark the full view as referenced, to prevent spurious warnings.
12374 (Find_Selected_Component, Has_Components): Handle properly non-limited
12375 views that are themselves incomplete types.
12376 Handle interfaces visible through limited-with clauses.
12377 (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
12378 subprogram generic actual for which we have generated a renaming.
12379 Warn when the renaming introduces a homonym of
12380 the renamed entity, and the renamed entity is directly visible.
12381
123822007-08-14 Ed Schonberg <schonberg@adacore.com>
12383 Hristian Kirtchev <kirtchev@adacore.com>
12384
12385 * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
12386 appear in the subtree to the current allocator if it is not a static
12387 coextension.
12388 (Resolve_Allocator): Perform cleanup if resolution has determined that
12389 the allocator is not a coextension.
12390 (Resolve): Skip an interpretation hidden by an abstract operator only
12391 when the type of the interpretation matches that of the context.
12392 (Resolve): When looping through all possible interpretations of a node,
12393 do not consider those that are hidden by abstract operators.
12394 (Resolve_Actuals): When verifying that an access to class-wide object
12395 is an actual for a controlling formal, ignore anonymous access to
12396 subprograms whose return type is an access to class_wide type.
12397 (Resolve_Slice): If the prefix of the slice is a selected component
12398 whose type depends on discriminants, build its actual subtype before
12399 applying range checks on the bounds of the slice.
12400 (Valid_Conversion): In an instance or inlined body, compare root types,
12401 to prevent anomalies between private and public views.
12402 (Resolve): Improve error message for ambiguous fixed multiplication
12403 expressions that involve universal_fixed multiplying operations.
12404
124052007-08-14 Javier Miranda <miranda@adacore.com>
12406 Hristian Kirtchev <kirtchev@adacore.com>
12407
12408 * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
12409 location to allow the correct generation of errors in case of
12410 restrictions applied to the expanded code.
12411 (Expand_Entry_Barrier): Remove all generated renamings for a barrier
12412 function if the condition does not reference them.
12413 (Expand_Entry_Body_Declarations): Mark the index constant as having a
12414 valid value.
12415
124162007-08-14 Thomas Quinot <quinot@adacore.com>
8a57e48f 12417 Pablo Oliveira <oliveira@adacore.com>
ab6328d0
AC
12418
12419 * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
12420 typecode parameters for a union (in a variant record), remove
12421 extraneous layer of Any wrapping for member label.
12422 (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
12423 elabration statements, register the package with the name server
12424 at the beginning, not at the end, of the elaboration statements so
12425 that they can create remote access to subprogram values that designate
12426 remote subprograms from the package.
12427
124282007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
12429
12430 * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
12431 values to compute the number of seconds since the Unix Epoc in order to
12432 account for Daylight Savings Time. Perform special processing for dates
12433 that are earlier than the Unix Epoc to obtain a negative number.
12434
124352007-08-14 Emmanuel Briot <briot@adacore.com>
12436
12437 * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
12438 switches.
12439
124402007-08-14 Eric Botcazou <ebotcazou@adacore.com>
12441
12442 * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
12443 binder-generated file is not in Ada.
12444 Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
12445 recorded in the ALI file.
12446 Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
12447
124482007-08-14 Vincent Celier <celier@adacore.com>
12449
12450 * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
12451 (Output_Source): Do nothing if parameter is No_Sdep_Id
12452
12453 * make.adb (Gnatmake): Do not rebuild an archive simply because a
12454 shared library it imports has a later time stamp.
12455 (Check): Resolve the symbolic links in the path name of the object
12456 directory.
12457 Check that the ALI file is in the correct object directory
12458 Check if a file name does not correspond to the mapping of units
12459 to file names.
12460 (Display_Version): New procedure
12461 (Initialize): Process switches --version and --help
12462 Use type Path_Name_Type for path name
12463
124642007-08-14 Paul Hilfinger <hilfinger@adacore.com>
12465
12466 * impunit.adb: Re-organize System.Random_Numbers and
12467 GNAT.Random_Numbers and add to builds.
12468
12469 * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
12470
12471 * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
12472
12473 * a-assert.ads, a-assert.adb: New files.
12474
124752007-08-14 Gary Dismukes <dismukes@adacore.com>
12476
12477 * layout.adb (Layout_Type): In the case of access-to-subprogram types,
12478 if AAMP_On_Target is True, then the size of the type encompasses two
12479 addresses (a static link and a subprogram address), except in the case
12480 of library-level access types.
12481
124822007-08-14 Vincent Celier <celier@adacore.com>
12483
12484 * output.ads, output.adb (Write_Eol): Remove trailing spaces before
12485 writing the line.
12486 (Write_Eol_Keep_Blanks): New procedure to write a line, including
12487 possible trailing spaces.
12488 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
12489
124902007-08-14 Javier Miranda <miranda@adacore.com>
12491
12492 * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
12493 null-excluding access types.
12494
124952007-08-14 Javier Miranda <miranda@adacore.com>
12496
12497 * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
12498 that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
12499 of private types add missing check on matching interfaces in the
12500 partial and full declarations.
12501 (Analyze_Protected_Type): Code cleanup.
12502 (Analyze_Task_Type): Code cleanup.
12503
125042007-08-14 Javier Miranda <miranda@adacore.com>
12505
12506 * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
12507 generated interface thunk.
12508
125092007-08-14 Ed Schonberg <schonberg@adacore.com>
12510
12511 * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
12512 obsolescent warning on application of 'Class to an incomplete type.
12513
12514 * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
12515 prevent obsolescent warning on application of 'Class to an incomplete
12516 type.
12517
125182007-08-14 Pascal Obry <obry@adacore.com>
12519
12520 * s-fileio.adb (Is_Open): Add check for usability of the underlying
12521 file stream.
12522
125232007-08-14 Cyrille Comar <comar@adacore.com>
12524
12525 * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
12526 since it is potentially used in cases implying double finalization of
12527 the same object.
12528
125292007-08-14 Jose Ruiz <ruiz@adacore.com>
12530
12531 * s-tasini.adb (Get_Stack_Info): Move this function to
12532 System.Soft_Links.Tasking because it is common to the full and the
12533 restricted run times.
12534 (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
12535 in SSL.Tasking.Init_Tasking_Soft_Links.
12536
12537 * s-solita.adb (Get_Stack_Info): Function moved from
12538 System.Tasking.Initialization because it is common to the full and the
12539 restricted run times.
12540 (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
12541
125422007-08-14 Arnaud Charlet <charlet@adacore.com>
12543
12544 * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
12545 s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
12546 (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
12547 parameter.
12548
12549 * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
12550 guard to 12K.
12551
125522007-08-14 Gary Dismukes <dismukes@adacore.com>
12553
12554 * s-veboop.adb (SU): New named number initialized to
12555 System.Storage_Unit.
12556 (True_Val): The initialization expression is revised to use SU (=
12557 Storage_Unit) rather than assuming 8 for the component size of an
12558 unpacked Boolean array.
12559
125602007-08-14 Tristan Gingold <gingold@adacore.com>
12561
12562 * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
12563
12564 * tb-ivms.c: New file.
12565
12566 * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
12567
125682007-08-14 Geert Bosch <bosch@adacore.com>
12569
12570 * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
12571 s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
12572 Add required linker pragmas for automatically linking with the gnalasup
12573 linear algebra support library, and the systems math library.
12574 Rename cdot to cdotu and zdot to zdotu.
12575 Update header comment to describe purpose of package.
12576
125772007-08-14 Thomas Quinot <quinot@adacore.com>
12578
12579 * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
12580 an explicitly specified Associated_Final_Chain, use that list.
12581 (Expand_N_Package_Body): Build dispatch tables of library level tagged
12582 types.
12583 (Expand_N_Package_Declaration): Build dispatch tables of library level
12584 tagged types. Minor code cleanup.
12585
125862007-08-14 Vincent Celier <celier@adacore.com>
12587
12588 * gnatchop.adb (Terminate_Program): Remove exception and use
12589 Types.Terminate_Program instead.
12590
12591 * osint.ads, osint.adb (Current_Exit_Status): New global variable
12592 (Find_Program_Name): Added protection against empty name.
12593 (OS_Exit_Through_Exception): New procedure
12594
12595 * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
12596 (OS_Exit_Default): New procedure that contains the previous
12597 implementation of procedure OS_Exit.
12598 (Final_Value): Remove obsolete Interix stuff.
12599
126002007-08-14 Thomas Quinot <quinot@adacore.com>
12601
12602 * g-socket.ads: Reorganize example code so that it also works on
12603 Windows XP.
12604
126052007-08-14 Tristan Gingold <gingold@adacore.com>
12606
12607 * g-trasym.ads: AIX now supports symbolic backtraces.
12608
126092007-08-14 Ed Schonberg <schonberg@adacore.com>
12610
12611 * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
12612 units being loaded to detect circularities. A circularity may be
12613 present even if the current chain of pending units to load starts from
12614 a limited_with_clause.
12615
12616 * lib-load.ads: Change profile of Load_Unit to use a with_clause
12617 rather than a boolean flag, in order to detect circularities in
12618 with_clauses.
12619
12620 * par-load.adb: Use current with_clause in calls to Load_Unit, rather
12621 than propagating the From_Limited_With flag, in order to handle
12622 properly circularities involving with_clauses.
12623
126242007-08-14 Nicolas Setton <setton@adacore.com>
12625
12626 * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
12627 warnings.
12628
126292007-08-14 Arnaud Charlet <charlet@adacore.com>
12630
12631 * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
12632 to build for libgnala.
12633 libgnat: Add rules to build libgnala.a
12634 (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
12635 target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
12636 Add s-osinte-vxworks-kernel.adb to the target pairs of the
12637 kernel run-time lib for VxWorks 6, which would provide a different
12638 implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
12639 x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
12640 running ZCX by default.
12641 Add g-sttsne-locking to LynxOS version.
12642 Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
12643 On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
12644
12645 * system-darwin-x86.ads: New file.
12646
12647 * Make-lang.in: Delete files before copying onto them, so if they are
12648 read-only, the copy won't fail.
12649 Update dependencies
12650
126512007-08-14 Pascal Obry <obry@adacore.com>
12652
12653 * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
12654 naming scheme.
12655
126562007-08-14 Vincent Celier <celier@adacore.com>
12657
12658 * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
12659 (Gcc): Initialize Gcc_Name at the first call
12660
126612007-08-14 Ed Schonberg <schonberg@adacore.com>
12662
12663 * sem_ch7.adb (Analyze_Package_Specification): Do not install private
12664 with_clauses of the enclosing unit when analyzing the package
12665 specification of a nested instance.
12666
126672007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
12668
12669 * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
12670 (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
12671 Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
12672 layout of N_Allocator.
12673
126742007-08-14 Thomas Quinot <quinot@adacore.com>
12675
12676 * rtsfind.adb (Check_RPC): Add PCS version check.
12677
12678 * gnatvsn.ads, gnatvsn.adb: Add PCS version.
12679 (Gnat_Free_Software): New function.
12680
12681 * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
12682 the PCS_Version value from s-parint, used to check that it is consistent
12683 with what exp_dist expects.
12684
12685 * s-parint.ads (PCS_Version): New entity for checking consistency
12686 between exp_dist and PCS.
12687
12688 * gen-soccon.c: (SO_REUSEPORT): New constant.
12689
126902007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
12691
12692 * a-calfor.adb (Image (Duration; Boolean)): Change type of local
12693 variable Sub_Second to Duration in order to accomodate a larger range
12694 of arithmetic operations.
12695
126962007-08-14 Bob Duff <duff@adacore.com>
12697
12698 * g-sttsne-locking.ads: Move comments from spec to body.
12699 * g-sttsne-locking.adb: Move comments from spec to body.
12700 * g-sttsne-vxworks.ads: Removed.
12701 * g-sttsne-vxworks.adb: Removed.
12702
4862826d
ILT
127032007-08-11 Ian Lance Taylor <iant@google.com>
12704
12705 * misc.c (gnat_get_alias_set): Change return type to
12706 alias_set_type.
12707
4d8a9bfe
KG
127082007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12709
12710 * decl.c, utils2.c: Fix whitespace in last change.
12711
39595763
KG
127122007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12713
12714 * decl.c (compare_field_bitpos): Constify.
12715 * utils2.c (compare_elmt_bitpos): Likewise.
12716
08e7e8cb
AJ
127172007-07-27 Aurelien Jarno <aurelien@aurel32.net>
12718
9e81dbc7 12719 * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
08e7e8cb
AJ
12720 anonymous access type.
12721 (pthread_sigmask): Now take an access sigset_t.
12722
9e94c78f 127232007-07-05 Joel Sherrill <joel.sherrill@oarcorp.com>
83983455 12724
9e81dbc7
AS
12725 * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
12726
a8257e58
EB
127272007-06-21 Eric Botcazou <ebotcazou@adacore.com>
12728
12729 PR tree-optimization/25737
12730 * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
12731
5be014d5
AP
127322007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
12733
12734 * trans.c (Attribute_to_gnu): When subtracting an
12735 offset from a pointer, use POINTER_PLUS_EXPR with
12736 NEGATE_EXPR instead of MINUS_EXPR.
12737 (gnat_to_gnu): Likewise.
12738 * utils.c (convert): When converting between
12739 thin pointers, use POINTER_PLUS_EXPR and sizetype
12740 for the offset.
12741 * utils2.c (known_alignment): POINTER_PLUS_EXPR
12742 have the same semantics as PLUS_EXPR for alignment.
12743 (build_binary_op): Add support for the semantics of
12744 POINTER_PLUS_EXPR's operands.
12745 When adding an offset to a pointer, use POINTER_PLUS_EXPR.
12746
719bb4e3 127472007-06-11 Rafael Ávila de Espíndola <espindola@google.com>
b0464c88 12748
a472f546
EB
12749 * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
12750 of get_signed_or_unsigned_type.
b0464c88
RE
12751 * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
12752
93e17a25 127532007-06-11 Bob Duff <duff@adacore.com>
9e81dbc7 12754 Thomas Quinot <quinot@adacore.com>
93e17a25
BD
12755
12756 * g-stsifd-sockets.adb (Create): Work around strange behavior of
12757 'bind' on windows that causes 'connect' to fail intermittently, by
12758 retrying the 'bind'.
12759 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12760
1bbf8502
DS
127612007-06-10 Duncan Sands <baldrick@free.fr>
12762
12763 * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
12764 than to void, for the fields when making a new fat pointer type.
12765 (gnat_substitute_in_type): Now substitute_in_type.
a472f546 12766 * gigi.h (gnat_substitute_in_type): Likewise. Adjust recursive calls.
1bbf8502
DS
12767 * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
12768 * utils.c (update_pointer_to): Update fat pointers by updating the
12769 dummy node pointers used for the fields.
12770
ec11296f
AC
127712007-06-06 Thomas Quinot <quinot@adacore.com>
12772 Bob Duff <duff@adacore.com>
12773
9e81dbc7
AS
12774 * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
12775 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
ec11296f
AC
12776 g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads: Add new
12777 constant Thread_Blocking_IO, always True by default, set False
12778 on a per-runtime basis.
12779 (Need_Netdb_Buffer): New constant.
12780
12781 * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
12782 g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
12783 files.
12784
12785 * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
12786 g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
12787 Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
12788 child package Task_Safe_NetDB
12789 (Host_Error_Messages): Add stub body.
12790 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12791
12792 * g-soccon-mingw.ads: Add Windows-specific constants.
12793 (Need_Netdb_Buffer): New constant.
12794 (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
12795 wrapper and import inet_addr(3) from the standard sockets library
12796 directly instead.
12797 (In_Addr): Add alignment clause.
12798 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12799
128002007-06-06 Robert Dewar <dewar@adacore.com>
12801
12802 * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
12803 s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
12804 s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
12805 s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
12806 s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
12807 s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
12808 a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
12809 a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
12810 a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
12811 g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
12812 g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
12813 i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
12814 s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
12815 s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
12816 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
12817 s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
12818 s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
12819 s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
12820 s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
12821 s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
12822 s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
12823 s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
12824 s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
12825 s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
12826 s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
12827 s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
12828 s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
12829 s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
12830 s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
12831 s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
12832 s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
12833 a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
12834 Unchecked_* by Ada.Unchecked_*
12835
128362007-06-06 Robert Dewar <dewar@adacore.com>
12837
12838 * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
12839 s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
12840 g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
12841 output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
12842 g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
12843 a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
12844
12845 * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
12846 s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
12847 s-tasloc.adb, s-tasloc.ads: New files.
12848
128492007-06-06 Bob Duff <duff@adacore.com>
12850
9e81dbc7 12851 * g-expect-vms.adb:
ec11296f
AC
12852 (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
12853 * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
12854 (Send_Signal, Close): Raise Invalid_Process if the process id is
12855 invalid.
12856 (Pattern_Matcher_Access): Is now a general access type to be able to
12857 use aliased string.
12858
128592007-06-06 Thomas Quinot <quinot@adacore.com>
12860 Arnaud Charlet <charlet@adacore.com>
12861
a472f546
EB
12862 * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
12863 (SIGEMT is now used instead of SIGTERM on AIX).
ec11296f
AC
12864
12865 * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
12866 (Time_Slice_Supported): Set to True.
a472f546 12867 Use SIGEMT instead of SIGTERM as SIGADAABORT.
ec11296f
AC
12868
128692007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
12870
12871 * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
12872 (Time, Time)): Use To_Relative_Time rather than manual calculation to
12873 express the bounds of Duration as Time. Raise Time_Error when the
12874 result is greater or equal to the higher bound of Duration (on the
12875 margin case).
12876 ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
12877 Ada_High_And_Leaps.
12878 ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
12879 Ada_High_And_Leaps.
12880 ("-" (Time, Time)): Reorder code.
12881 (All_Leap_Seconds): Removed.
12882 (Arithmetic_Operations.Add): Remove sign related kludge.
12883 (Arithmetic_Operations.Difference): Control the leaps seconds processing
12884 with flag Leap_Support.
12885 (Arithmetic_Operations.Subtract): Remove sign related kludge.
12886 (Check_Within_Time_Bounds): New procedure.
12887 (Clock): Control the leap seconds processing with flag Leap_Support.
12888 (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
12889 (Formatting_Operations.Split): Control the leap seconds processing with
12890 flag Leap_Support.
12891 (Formatting_Operations.Time_Of): Control the leaps seconds processing
12892 with flag Leap_Support. Adjust the year, month and day (if applicable)
12893 when the value of day seconds designates a new day.
12894 (Split): Use parameter associations for better readability. Integrate
12895 flag Is_Ada_05.
12896 (Time_Of): Use parameter associations for better readability. Integrate
12897 flag Is_Ada_05.
12898
12899 * a-calfor.adb (Split): Use parameter associations for better
12900 readability. Integrate flag Is_Ada_05.
12901 (Time_Of): Remove flag Leap_Checks. Use parameter associations for
12902 better readability. Integrate flag Is_Ada_05.
12903
129042007-06-06 Arnaud Charlet <charlet@adacore.com>
12905
9e81dbc7
AS
12906 * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
12907 s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
12908 s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
12909 s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
12910 s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
12911 s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
12912 s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
12913 s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
12914 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
ec11296f 12915 s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
9e81dbc7 12916 s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
ec11296f
AC
12917 time when entering this routine to detect a backward clock setting
12918 (manual setting or DST adjustment), to avoid waiting for a longer delay
12919 than needed.
12920 (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
12921 Remove handling of deferred priority change, and replace by setting the
12922 task priority directly, as required by AI-188.
12923 Update comments.
12924 (Max_Task_Image_Length): New constant.
12925 Replace Warnings (Off) by Unreferenced pragma, cleaner.
12926 (Dynamic_Priority_Support): Removed, no longer needed.
12927 (Poll_Base_Priority_Change): Ditto.
12928 (Set_Ceiling): Add this procedure to change the ceiling priority
12929 associated to a lock. This is a dummy implementation because dynamic
12930 priority ceilings are not supported by the underlying system.
12931
12932 * a-dynpri.adb (Set_Priority): Take into account case where Target is
12933 accepting a RV with its priority boosted.
12934 Remove handling of deferred priority change, and replace by setting the
12935 task priority directly, as required by AI-188.
12936
12937 * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
12938 Succeeded = True.
12939 Remove handling of deferred priority change, and replace by setting the
12940 task priority directly, as required by AI-188.
12941 (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
12942 of Self_Id earlier.
12943
12944 * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
12945 (Poll_Base_Priority_Change): Removed.
12946 Code clean up: use SSL.Current_Target_Exception.
12947
12948 * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
12949 to run as this is a potentially dispatching point.
12950 (Call_Synchronous): Use Local_Defer_Abort.
12951 (Callable): Relax assertion.
12952 (Selective_Wait): Relax assertion in case abort is not allowed.
12953 Remove handling of deferred priority change, and replace by setting the
12954 task priority directly, as required by AI-188.
12955
12956 * s-tasuti.adb (Make_Passive): Adjust assertions.
12957 Remove handling of deferred priority change, and replace by setting the
12958 task priority directly, as required by AI-188.
12959
129602007-06-06 Arnaud Charlet <charlet@adacore.com>
12961
9e81dbc7
AS
12962 * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
12963 system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
12964 system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
12965 system-vxworks-mips.ads, system-vxworks-alpha.ads,
12966 system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
12967 system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
12968 system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
12969 system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
ec11296f
AC
12970 system-solaris-sparcv9.ads, system-vms.ads, system.ads,
12971 system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
12972 system-linux-ia64.ads: Document mapping between Ada and OS priorities.
12973 This patch changes the largest non-binary modulus from 2**31-1 to
12974 2**32-1.
12975 (Compiler_System_Version): Removed, no longer used.
12976 Clean up system files by removing flags only used on a single target.
12977 Also remove obsolete flags, only used during bootstrap from system.ads
12978 (Address): Add a pragma Preelaborable_Initialization.
12979
12980 * system-aix.ads: Ditto.
12981 (GCC_ZCX_Support): Set to true.
12982 Update priority range on AIX and map Ada priorities to target
12983 priorities appropriately for different scheduling policies.
12984
12985 * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
12986
129872007-06-06 Vincent Celier <celier@adacore.com>
12988
12989 * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
12990 mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
12991
9e81dbc7
AS
12992 * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
12993 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
12994 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
12995 mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
ec11296f 12996 mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
a472f546
EB
12997 MLib.Tgt, containing the default versions of the exported subprograms.
12998 For each platform, create a specific version of the body of new child
12999 package MLib.Tgt.Specific that contains only the body of subprograms
13000 that are different from the default.
13001 (Archive_Builder_Append_Options): New function.
ec11296f
AC
13002
130032007-06-06 Matthew Gingell <gingell@adacore.com>
13004
a472f546
EB
13005 * s-osinte-aix.adb: Map Ada priorities to target priorities
13006 appropriately for different scheduling policies.
ec11296f
AC
13007
130082007-06-06 Arnaud Charlet <charlet@adacore.com>
13009
13010 * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
13011 its C counterpart.
13012 Remove references to Unchecked_Conversion, and use Ada.xxx instead.
9e81dbc7 13013 Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
ec11296f
AC
13014
130152007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
13016
a472f546
EB
13017 * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
13018 Noop on VMS, added for interface commonality.
ec11296f
AC
13019
130202007-06-06 Eric Botcazou <ebotcazou@adacore.com>
13021 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13022 Olivier Hainque <hainque@adacore.com>
13023
13024 * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
13025 renamed expression of a full renaming at toplevel.
13026 (gnat_to_gnu_entity, case object): If not defining, do not look inside
13027 the values the constant is initialized to if it is an N_Allocator.
13028 (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
13029 TYPE_SIZE_UNIT of inner types after the stride is elaborated.
13030 (make_aligning_type): Accept an extra ROOM argument for storage to be
13031 made available before the aligned field, and an extra BASE_ALIGN
13032 argument for callers to pass the alignment guaranteed to be honored for
13033 the whole aligning object. Avoid call to finish_record_type, which only
13034 interferes with the sizes we want to set.
13035 (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
13036 make_aligning_type for super-aligned objects on stack.
13037 (components_to_record): Pass the adjusted size of the type when creating
13038 fields in the qualified union for the variant part.
13039 (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
13040 (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
13041 packed array type.
13042 (maybe_pad_type): Set TYPE_USER_ALIGN.
13043 (make_aligning_type): Likewise.
13044 ALIGN argument is unsigned int.
13045 (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
13046 (gnat_to_gnu_param): Likewise, for parameters.
13047 (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
13048 if it is constant and stems from a function call.
13049 (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
13050 of the record is specified. Adjust accordingly.
13051 (adjust_packed): New static function.
13052 (gnat_to_gnu_field): Use it to adjust the packedness setting.
13053 (components_to_record): Likewise.
13054 (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
13055 side-effects if the object is deemed constant.
13056 (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
13057 type instead of merely finalizing it. Tidy.
13058 <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
13059 <E_Access_Type>: Likewise.
13060 (defer_debug_incomplete_list): Rename to defer_finalize_list.
13061 (defer_debug_level): Delete.
13062 (gnat_to_gnu_entity) <debug_deferred>: Likewise
13063 <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
13064 type.
13065 <E_Record_Type>: Do not explicitly defer finalizing the type.
13066 Adjust for write_record_type_debug_info renaming.
13067 <E_Subprogram_Type>: Likewise.
13068 Finalize deferred types right after deferred incomplete types are
13069 expanded.
13070 (rest_of_type_decl_compilation): New global function.
13071 (components_to_record): Rename defer_debug parameter to do_not_finalize.
13072 (components_to_record): Propagate the packedness to the fields of the
13073 qualified union type if there is a variant part.
13074 (gnat_to_gnu_entity) <E_Array_Type>: Use new function
13075 instead of inline code to adjust the XUT field offsets.
13076 (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
13077 <E_Record_Subtype>: Do not let finish_record_type compute the sizes
13078 and write the debug info if the type derives from a discriminated one.
13079 (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
13080 <E_Array_Subtype>: Likewise.
13081 <E_String_Literal_Subtype>: Likewise.
13082 (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
13083 an alignment clause.
13084 (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
13085 before giving warning.
13086 (prepend_one_attribute_to): New function, helper to prepend an attribute
13087 to an attribute list.
13088 (gnat_to_gnu_entity) <E_Procedure>: Use it.
13089 (prepend_attributes): Likewise.
13090 (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
13091 <E_Array_Type>: Declare the padding type for the element type, if any.
13092 <E_Array_Subtype>: Likewise.
13093 (defer_limited_with): New variable.
13094 (Gigi_Equivalent_Type): New function.
13095 (gnat_to_gnu_entity): Use it at start and use result throughout.
13096 (gnat_to_gnu_entity, case E_Access_Type): Rework to use
13097 Gigi_Equivalent_Type, support Limited_With, allow two levels of
13098 indirection, precompute if unconstrained array to simplify logic, and
13099 use defer_limited_with to defer elaboration of some types from limited
13100 with.
13101 (finalize_from_with_types): New function.
13102
131032007-06-06 Gary Dismukes <dismukes@adacore.com>
13104 Eric Botcazou <ebotcazou@adacore.com>
13105 Tristan Gingold <gingold@adacore.com>
13106 Olivier Hainque <hainque@adacore.com>
13107
a472f546
EB
13108 * trans.c (Identifier_to_gnu): Change test for deferred constant by
13109 adding guard that the entity is an E_Constant before testing presence
13110 of Full_view (and remove unnecessary test that entity is not a type).
ec11296f
AC
13111 For a CONST_DECL used by reference, manually retrieve
13112 the DECL_INITIAL. Do not invoke fold in the other DECL_P cases either.
13113 (struct language_function): Move from utils.c to here.
13114 (struct parm_attr): New structure.
13115 (parm_attr, parm_attr vector, parm_attr GC vector): New types.
13116 (f_parm_attr_cache): New macro.
13117 (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
13118 expressions for the 'First, 'Last and 'Length attributes of the
13119 unconstrained array IN parameters.
13120 (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
13121 Allocate the information structure for the function earlier, as well
13122 as the language-specific part.
13123 If the parameter attributes cache has been populated, evaluate the
13124 cached expressions on entry.
13125 (takes_address): Add OPERAND_TYPE parameter. Handle N_Function_Call,
13126 N_Procedure_Call_Statement and N_Indexed_Component.
13127 (Pragma_to_gnu): Translate inspection_point to an asm statement
13128 containaing a comment and a reference to the object (either its address
13129 for BLKmode or its value).
13130 (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
13131 to go to DECL_INITIAL. Together with the size constraint relaxation
13132 in create_var_decl, enlarges the set of situations in which an
13133 identifier may be used as an initializer without implying elaboration
13134 code.
13135 (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
13136 DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
13137 node.
13138 (maybe_stabilize_reference): Remove lvalues_only parameter.
13139 (gnat_stabilize_reference): Adjust for above change.
13140 (gnat_to_gnu): Do not set location information on the result
13141 if it is a reference.
13142 (add_cleanup): Add gnat_node parameter and set the location of the
13143 cleanup to it.
13144 (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
13145 (Exception_Handler_to_gnu_zcx): Likewise.
13146 (gigi): Remove the cgraph node if the elaboration procedure is empty.
13147 (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
13148 the former right after the latter.
13149 (start_stmt_group): Make global.
13150 (end_stmt_group): Likewise.
13151 (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
13152 vars.
13153 (gnu_program_error_label_stack): Likewise.
13154 (gigi): Initialize them.
13155 (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
13156 (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
13157 New cases.
13158 (push_exception_label_stack): New function.
13159 (takes_address): New function.
13160
13161 * utils.c (struct language_function): Move to trans.c from here.
13162 (unchecked_convert): Do not wrap up integer constants in
13163 VIEW_CONVERT_EXPRs.
13164 (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
13165 the latter for aggregate types, unexpected by later passes, and relax an
13166 arbitrary size constraint on the former.
13167 (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
13168 to compare the sizes.
13169 (convert_vms_descriptor): When converting to a fat pointer type, be
13170 prepared for a S descriptor at runtime in spite of a SB specification.
13171 (shift_unc_components_for_thin_pointers): New function.
13172 (write_record_type_debug_info): For variable-sized fields, cap the
13173 alignment of the pointer to the computed alignment.
13174 (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
13175 If REP_LEVEL is 2, do not compute the sizes.
13176 (build_vms_descriptor): Adjust for new prototype of finish_record_type.
13177 (build_unc_object_type): Likewise.
13178 (declare_debug_type): New function.
13179
9e81dbc7 13180 * ada-tree.def: USE_STMT: removed (not emitted anymore).
ec11296f 13181
9e81dbc7
AS
13182 * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
13183 no statement is expandable anymore.
13184 (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
13185 (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
13186 when the user requested it explicitely.
13187 (gnat_post_options): By default, set flag_eliminate_unused_debug_types
13188 to 0 for Ada.
13189 (get_alias_set): Return alias set 0 for a type if
13190 TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
ec11296f 13191
9e81dbc7
AS
13192 * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
13193 (DECL_FUNCTION_STUB): New accessor macro.
13194 (SET_DECL_FUNCTION_STUB): New setter macro.
ec11296f 13195
9e81dbc7 13196 * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
ec11296f
AC
13197
13198 * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
13199 declarations.
13200
132012007-06-06 Jose Ruiz <ruiz@adacore.com>
13202
13203 * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
13204 Rename to Abort_Task_Interrupt to be able to keep the same interface
13205 as the rest of the targets.
13206
13207 * s-osinte-vxworks.ads s-osinte-vxworks.adb
13208 (To_VxWorks_Priority): Remove explicit "in" mode indicator
13209
13210 * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
13211 New files.
13212
132132007-06-06 Robert Dewar <dewar@adacore.com>
13214
13215 * a-chahan.ads: Remove obsolescent pragmas
13216
13217 * a-chlat1.ads: Minor reformatting
13218
132192007-06-06 Robert Dewar <dewar@adacore.com>
13220
13221 * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
13222 for Errout
13223
13224 * errout.adb: New Finalize/Compilation_Errors/Output_Messages
13225 implementation
13226
13227 * errout.ads (Finalize): Changed interface
13228 (Output_Messages): New procedure
13229 (Compilation_Errors): New Interface
13230
13231 * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
13232 Finalize/Output_Messages interface for Errout
13233 (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
13234 Errout.
13235
132362007-06-06 Thomas Quinot <quinot@adacore.com>
13237 Olivier Hainque <hainque@adacore.com>
13238 Robert Dewar <dewar@adacore.com>
13239
13240 * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
13241 check.
13242 (Raise_Current_Excep): Call Debug_Raise_Exception just before
13243 propagation starts, to let debuggers know about the event in a reliable
13244 fashion.
13245 (Local_Raise): Moved to System.Exceptions
13246 More convenient to have this as a separate unit
13247
13248 * s-except.adb, s-except.ads: New files.
13249
13250 * a-exextr.adb (Unhandled_Exception): Delete - replaced by
13251 Debug_Unhandled_Exception in System.Exceptions where it belongs
13252 together with a couple of other debug helpers.
13253 (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
13254 the former Unhandled_Exception.
13255
13256 * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
13257 (Warn_No_Exception_Propagation): New procedure
13258 (Warn_If_No_Propagation): Rewritten for new warning generation
13259 (Expand_Exception_Handlers): New warning generation
13260 (Expand_N_Raise_xxx_Error): Rewritten for new warnings
13261 (Add_Exception_Label): Use Special_Exception_Package_Used for test
13262 instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
13263 (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
13264 even if restriction is set (makes life easier in Check_Returns)
13265 (Expand_Local_Exception_Handlers): Follow renamed entity chain when
13266 checking exception identities.
13267 (Expand_Local_Exception_Handlers): Do not optimize when all others case
13268 (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
13269 block for handler (used by Check_Returns)
13270 (Expand_Local_Exception_Handlers): Local_Raise now takes an address
13271 (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
13272 remove all exception handlers when optimizing local raise statements.
13273 (Find_Local_Handler): Use Get_Renamed_Entity
13274 (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
13275 marked analyzed after expanding exception handlers, do not generate
13276 redundant cleanup actions, because they have been constructed already.
13277
132782007-06-06 Thomas Quinot <quinot@adacore.com>
13279
13280 * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
13281 presence of this categorization pragma is mandated by the language.
13282 (Limited_Controlled): Add missing pragma Preelaborable_Initialization
13283 for this type.
13284
132852007-06-06 Vincent Celier <celier@adacore.com>
13286 Robert Dewar <dewar@adacore.com>
13287
9e81dbc7
AS
13288 * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
13289 butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
13290 err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
13291 fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
13292 lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
13293 makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
13294 par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
13295 prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
13296 prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
13297 sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
ec11296f 13298 uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
9e81dbc7 13299 ali.ads, ali.adb:
ec11296f
AC
13300 Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
13301 package Namet. Make File_Name_Type and Unit_Name_Type types derived from
13302 Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
13303 Use variables of types File_Name_Type and Unit_Name_Type in error
13304 messages.
13305 (Get_Name): Add parameter Ignore_Special, and set it reading file name
13306 (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
13307 here.
13308 Define flags Flag217-Flag230 with associated subprograms
13309 (Flag_Word5): New record type.
13310 (Flag_Word5_Ptr): New access type.
13311 (To_Flag_Word5): New unchecked conversion.
13312 (To_Flag_Word5_Ptr): Likewise.
13313 (Flag216): New function.
13314 (Set_Flag216): New procedure.
13315
133162007-06-06 Arnaud Charlet <charlet@adacore.com>
13317
13318 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
13319 instead of 'Size.
13320
13321 * a-stwifi.ads, a-stzfix.ads: Minor reformatting
13322
133232007-06-06 Javier Miranda <miranda@adacore.com>
13324
13325 * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
13326 the package.
13327 (Object_Specific_Data_Array): This is now internal to the package.
13328 (Object_Specific_Data): This is now internal to the package.
13329 (Select_Specific_Data_Element): This is now internal to the package.
13330 (Select_Specific_Data_Array): This is now internal to the package.
13331 (Select_Specific_Data): This is now internal to the package.
13332 (Offset_To_Top_Function_Ptr): This is now public.
13333 (To_Offset_To_Top_Function_Ptr): Removed.
13334 (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
13335 local to subprogram Offset_To_Top.
13336 (Predefined_DT): Removed.
13337 (Typeinfo_Ptr): Removed.
13338 (OSD): This function is now internal to this package.
13339 (SSD): This function is now internal to this package.
13340 (DT): New function that displaces the pointer to the table of primitives
13341 to get access to the enclosing wrapper record.
13342 (IW_Membership): Code cleanup.
13343 (Offset_To_Top): Code cleanup.
13344 (Predefined_DT): Removed.
13345 (Register_Interface_Tag): Removed.
13346 (Set_Interface_Table): Removed.
13347 (Set_Offset_Index): Removed.
13348 (Set_Offset_To_Top): Code cleanup.
13349 (Set_OSD): Removed.
13350 (Set_Signature): Removed.
13351 (Set_SSD): Removed.
13352 (Set_Tagged_Kind): Removed.
13353 (Typeinfo_Ptr): Removed.
13354 (TSD): Removed.
13355 (Displace): Add missing check on null actual.
13356
13357 * exp_disp.ads, exp_disp.adb
13358 (Select_Expansion_Utilities): Removed.
13359 (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
13360 (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
13361 the interface requires a new parameter.
13362 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
13363 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
13364 calls to subprograms Build_T, Build_S, etc. by the corresponding code.
13365 Done to remove package Select_Expansion_Utilities.
13366 (Make_DT): New implementation for statically allocated dispatch tables.
13367 (Make_Secondary_DT): Moved to the scope of Make_DT.
13368 (Register_Primitive): Code cleanup plus incoporate the use of the new
13369 function DT_Address_Attribute.
13370 (Expand_Interface_Thunk): The profile of this subprogram has been
13371 changed to return the Thunk_Id and the corresponding code.
13372 (Fill_DT_Entry): Removed. Its functionality is now provided by
13373 subprogram Register_Primitive.
13374 (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
13375 subprogram Register_Primitive.
13376 (Register_Primitive): New subprogram that incorporates the previous
13377 functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
13378 (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
13379 was only required to call Make_DT_Access_Action, which is now removed.
13380 (Ada_Actions): Removed
13381 (Action_Is_Proc): Removed
13382 (Action_Nb_Arg): Removed
13383 Replace all the calls to Make_DT_Access_Action by direct calls to
13384 Make_Procedure_Call_Statement or Make_Function_Call.
13385 (Set_DTC_Entity_Value): New subprogram.
13386 (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
13387 (Expand_Interface_Thunk): Add missing support for primitives that are
13388 functions with a controlling result (case in which there is no need
13389 to generate the thunk).
13390
13391 * exp_atag.ads, exp_atag.adb
13392 (Build_DT): New subprogram that displaces the pointer to reference the
13393 base of the wrapper record.
13394 (Build_Typeinfo_Offset): Removed.
13395 (RTE_Tag_Node): Removed.
13396 (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
13397 (Build_Get_RC_Offset): Removed.
13398 (Build_Inherit_Predefined_Prims): Removed.
13399 (Build_Inherit_TSD: Removed.
13400 (Build_New_TSD): Removed.
13401 (Build_Set_External_Tag): Removed.
13402 (Build_Set_Predefined_Prim_Op_Address): Add documentation.
13403 (Build_Set_Prim_Op_Address): Add documentation.
13404 (Build_Set_TSD): Removed.
13405
13406 * rtsfind.ads, rtsfind.adb
13407 (Load_Fail): If load fails and we are not in configurable run-time
13408 mode, then raise Unrecoverable_Error.
13409 (Text_IO_Kludge): Generate an error message if a run-time library is
13410 not available in a given run-time (ie. zfp run-time).
13411 (RTE_Record_Component): Add code to check that the component we search
13412 for is not found in two records in the given run-time package.
13413 (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
13414 (RE_DT_Predef_Prims_Offset): New entity
13415 (RE_Static_Offset_To_Top): New entity
13416 (RE_HT_Link): New entity.
13417 (System_Address_Image): Addition of this run-time package.
13418 (RE_Address_Image): New entity.
13419 (RE_Abstract_Interface): Removed.
13420 (RE_Default_Prim_Op_Count): Removed.
13421 (RE_DT_Entry_Size): Removed.
13422 (RE_DT_Min_Prologue_Size): Removed.
13423 (RE_DT_Prologue_Size): Removed.
13424 (RE_Ifaces_Table_Ptr): Removed.
13425 (RE_Interface_Data_Ptr): Removed.
13426 (RE_Type_Specific_Data): Removed.
13427 (RE_Primary_DT): Removed.
13428 (RE_Register_Interface_Tag): Removed.
13429 (RE_Set_Offset_Index): Removed.
13430 (RE_Set_OSD): Removed.
13431 (RE_Set_SSD): Removed.
13432 (RE_Set_Signature): Removed.
13433 (RE_Set_Tagged_Kind): Removed.
13434 (RE_Address_Array): New entity.
13435 (RE_DT): New entity.
13436 (RE_Iface_Tag): New entity.
13437 (RE_Interfaces_Table): New entity.
13438 (RE_No_Dispatch_Table): New entity.
13439 (RE_NDT_Prims_Ptr): New entity.
13440 (RE_NDT_TSD): New entity.
13441 (RE_Num_Prims): New entity.
13442 (RE_Offset_To_Top_Function_Ptr): New entity.
13443 (RE_OSD_Table): New entity.
13444 (RE_OSD_Num_Prims): New entity.
13445 (RE_Predef_Prims): New entity
13446 (RE_Predef_Prims_Table_Ptr): New entity.
13447 (RE_Primary_DT): New entity.
13448 (RE_Signature): New entity.
13449 (RE_SSD): New entity.
13450 (RE_TSD): New entity.
13451 (RE_Type_Specific_Data): New entity.
13452 (RE_Tag_Kind): New entity.
13453
134542007-06-06 Thomas Quinot <quinot@adacore.com>
13455
13456 * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
13457 C imported variable.
13458 (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
13459 on entry.
13460
134612007-06-06 Robert Dewar <dewar@adacore.com>
13462
13463 * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
13464 character
13465
134662007-06-06 Vincent Celier <celier@adacore.com>
13467
13468 * a-tifiio.adb (Put, internal): For negative numbers, check that there
13469 is room for at least one digit and the minus sign.
13470 (Put.Put_Character): Never put a character outside of the range of
13471 string To.
13472
134732007-06-06 Olivier Hainque <hainque@adacore.com>
13474 Eric Botcazou <ebotcazou@adacore.com>
13475
13476 * utils2.c (build_allocator): Provide the extra arguments to
13477 make_aligning_type for super-aligned objects allocated from the default
13478 pool. Leave enough room for a pointer before the aligning field, and
13479 store the system's allocator return value there.
13480 (build_call_alloc_dealloc): When releasing a super-aligned object,
13481 retrieve the system's allocator return value from where build_allocator
13482 has stored it, just ahead of the adjusted address we are passed.
13483 (build_call_raise): Handle properly the generation of line numbers when
13484 the node is marked No_Location.
13485 (compare_elmt_bitpos): Use tree_int_cst_compare. Stabilize the sort
13486 by using DECL_UID on ties.
13487 (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
13488 main variant.
13489 (build_call_raise): Handle converting exception into goto; support new
13490 argument KIND.
13491 (build_component_ref): Add new arg to build_call_raise.
13492
134932007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
13494
13495 * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
13496 "." in the case of nnn.xxx when nnn terminates with an underscore.
13497 Parse the remaining "#" or ":" in the case of nnn#.xxx#
13498
134992007-06-06 Robert Dewar <dewar@adacore.com>
13500
13501 * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
13502
135032007-06-06 Arnaud Charlet <charlet@adacore.com>
13504 Vincent Celier <celier@adacore.com>
13505 Robert Dewar <dewar@adacore.com>
13506
13507 * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
13508 needed.
13509 (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
13510 ((destructor)) for adafinal, even when switch -a is used.
13511 Do not issue pragma Linker_Destructor for adafinal when switch -a is
13512 used.
13513 (Gen_Object_Files_Options): Add formatting of Linker Options, when
13514 Output_Linker_Option_List is set. Suppress this formatting when
13515 Zero_Formatting is set.
13516 Add case for CLI_Target.
13517 (System_Restrictions_Used): New flag, used to avoid generating with of
13518 System_Restrictions and initialization of the data unless there is
13519 some use of System.Restrictions in the partition.
13520 (Check_System_Restrictions_Used): New procedure
13521
9e81dbc7 13522 * s-stalib.adb: Remove with of System.Restrictions. No longer needed
ec11296f
AC
13523 since we only with this unit in the binder file if it is used elsewhere
13524 in the partition.
13525
135262007-06-06 Vincent Celier <celier@adacore.com>
13527
13528 * bindusg.adb: Add line for @<response file>
13529 Add lines for new switches -R and -Z
13530
13531 * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
13532 hierarchy in the list of files of the closure when -R is used
13533 (Gnatbind): Accept arguments starting with '@' to indicate response
13534 files and take the arguments from the response files.
13535 If List_Closure is set, display the referenced files
13536
135372007-06-06 Javier Miranda <miranda@adacore.com>
13538 Robert Dewar <dewar@adacore.com>
13539 Ed Schonberg <schonberg@adacore.com>
13540
13541 * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
13542 which the address-clause is applied to in-mode actuals (allowed by
13543 13.1(22)).
13544 (Apply_Discriminant_Check): Do not generate a check if the type is
13545 constrained by a current instance.
13546 (Activate_Division_Check): New procedure
13547 (Activate_Overflow_Check): New procedure
13548 (Activate_Range_Check): New procedure
13549 Call these new Activate procedures instead of setting flags directly
13550 (Apply_Array_Size_Check): Removed, no longer needed.
13551 Code clean up: remove obsolete code related to GCC 2.
13552 (Get_E_Length): Protect against bomb in case scope is standard
13553 (Selected_Range_Checks): If the node to be checked is a conversion to
13554 an unconstrained array type, and the expression is a slice, use the
13555 bounds of the slice to construct the required constraint checks.
13556 Improve NOT NULL error messages
13557 (Apply_Constraint_Check): If the context is a null-excluding access
13558 type, diagnose properly the literal null.
13559
135602007-06-06 Pascal Obry <obry@adacore.com>
13561
13562 * clean.adb (Clean_Archive): Use untouched casing for the archive name
13563 and the corresponding .deps file.
13564 (Clean_Interface_Copy_Directory): Use untouched casing for the library
13565 src directory. Minor code-clean-up. Use untouched casing for files
13566 read into the library src dir.
13567 (Clean_Library_Directory): Idem.
13568 (Parse_Cmd_Line): Accept new switch -aP
13569
135702007-06-06 Javier Miranda <miranda@adacore.com>
13571 Ed Schonberg <schonberg@adacore.com>
13572 Robert Dewar <dewar@adacore.com>
13573 Eric Botcazou <ebotcazou@adacore.com>
13574 Arnaud Charlet <charlet@adacore.com>
13575
13576 * einfo.ads, einfo.adb (Available_View): New synthesized attribute
13577 applicable to types that have the With_Type flag set. Returns the
13578 non-limited view of the type, if available, otherwise the type itself.
13579 For class-wide types, there is no direct link in the tree, so we have
13580 to retrieve the class-wide type of the non-limited view of the Etype.
13581 New attributes Static_Initialization and Static_Elaboration_Desired.
13582 Remove the pragma Thread_Body, and the associated flag
13583 Is_Thread_Body in entities, and all related code.
13584 (Suppress_Value_Tracking_On_Call): New flag
13585 E_Exception has Esize and Alignment fields
13586 (Universal_Aliasing): New function.
13587 (Set_Universal_Aliasing): New procedure.
13588 (Write_Entity_Flags): Deal with Universal_Aliasing flag.
13589 (Check_Nested_Access): New procedure.
13590 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
13591 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
13592 (Related_Interface): New attribute. Present in dispatch table pointer
13593 components of records. Set to point to the entity of the corresponding
13594 interface type.
13595 (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
13596 (Original_Access_Type): Remove, not needed.
13597 (Root_Type): Handle properly subtypes of class-wide-types.
13598 Update comments.
13599
13600 * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
13601 class-wide types visible through limited-with clauses.
13602 (Try_Primitive_Operation): When examining all primitive operations of a
13603 tagged type, do not consider subprograms labeled as hidden unless they
13604 belong to a private generic type with a tagged parent.
13605 (Try_Object_Operation): Extensive rewriting, to handle properly various
13606 overloading cases, when several ancestors may have class-wide operations
13607 that are possible candidates, and when the overloaded functions return
13608 array types and have defaulted parameters so that the call may be
13609 interpreted as an indexing.
13610 (Analyze_Allocator): Remove Mark_Allocator and its invocation.
13611 (Process_Function_Call): use Next, rather than Next_Actual, to analyze
13612 successive actuals before analyzing the call itself.
13613 (Try_Primitive_Operation): A primitive operation is compatible with the
13614 prefix if the prefix has a synchronized type and the type of the formal
13615 is its corresponding record, as can be the case when the primitive
13616 operation is declared outside of the body of the type.
13617 (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
13618 perform homonym traversal, looking for class-wide operation matches
13619 (formerly done in statements of Try_Class_Wide_Operation). Matches on
13620 access parameters are now restricted to anonymous access types.
13621 (Mark_Allocator): An allocator with a discriminant association parent is
13622 a coextension.
13623 (Try_One_Prefix_Interpretation): If the type of the object is
13624 incomplete, as can be happen when it is a limited view obtained through
13625 a limited_with_clause, the selected component is not part of a prefixed
13626 call.
13627 (Complete_Object_Operation): Diagnose properly an object that is not
13628 aliased when the corresponding controlling formal is an access
13629 parameter.
13630 (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
13631 ambiguous calls in prefixed notation, where two primitives differ only
13632 in that the controlling argument of one is an access parameter.
13633
13634 * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
13635 whether a function that returns an unconstrained type can be inlined.
13636 (Process_Formals): Diagnose properly the illegal use of an incomplete
13637 type in the profile of an access_to_subprogram declaration.
13638 (Check_Synchronized_Overriding): Nothing check for concurrent types, the
13639 operations are attached to the corresponding record.
13640 (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
13641 When processing a primitive of a concurrent type which implements an
13642 interface change the type of all controlling formals to that of the
13643 corresponding record type.
13644 (Check_Synchronized_Overriding): Relax the conditional logic when trying
13645 to determine the tagged type to which a primitive belongs.
13646 (Check_Conventions): Capture condition to ignore a primitive operation
13647 (which is shared between the loop in Check_Conventions and the one in
13648 Check_Convention) in a new local function Skip_Check.
13649 (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
13650 confusion with Check_Conventions' own Prim_Op local variable.
13651 (Create_Extra_Formals): Test for a tagged result type rather than a
13652 controlling result when determining whether to add a BIP_Alloc_Form
13653 formal and a BIP_Final_List formal to the function.
13654 (Check_Conformance); For parameters that are anonymous access types,
13655 subtype conformance requires that the not null and the constant
13656 indicators must match
13657 (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
13658 to retrieve the appropriate type when processing a concurrent type
13659 declared within a generic. Minor comment reformatting. Change invocation
13660 of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
13661 mitive.
13662 (Analyze_Subprogram_Body): If the return type of a function is an
13663 anonymous access to the limited view of a class-wide type, and the
13664 non-limited view of the type is available, update the type of the
13665 function so that code can be generated.
13666 (Process_Formals): In case of access-subtype itype whose designated
13667 type is also an itype (situation that happens now with access to
13668 subprograms) we mark the access-type itype with the Has_Delayed_Freeze
13669 attribute to avoid backend problems.
13670 (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
13671 init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
13672 anonymous types' designated types are same before testing
13673 Subtypes_Statically_Match.
13674 (Create_Extra_Formals): Test for a named access parameter that is a
13675 controlling formal as an additional condition for adding an
13676 accessibility level formal. This can occur in the subp type created for
13677 dispatching calls in Expand_Dispatching_Call, and allows calling
13678 Create_Extra_Formals from that procedure rather than special-casing the
13679 extra formals there.
13680 (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
13681 when the function has a controlling result.
13682 (Check_Returns): Add much more knowledge of the optimization of local
13683 raise statements to gotos, to retain proper warnings in this case.
13684 (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
13685 nodes when looking for last statement.
13686
13687 * sem_type.ads, sem_type.adb (Specific_Type): Add support for
13688 class-wide types visible through limited with clauses.
13689 (Add_One_Interp): If the operands are anonymous access types, the
13690 predefined operator on universal_access is immediately visibles
13691 (Find_Unique_Type): Handle anonymous access to subprogram types just as
13692 other anonymous access types.
13693 (Disambiguate): Take into account CIL convention.
13694 (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
13695
136962007-06-06 Robert Dewar <dewar@adacore.com>
13697
13698 * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
13699 sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
13700 elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
13701 Fix lower bound of tables.
13702 Add rep clauses.
13703
13704 * nlists.adb: Ditto.
13705 (Prev_Node, Next_Node): Change index type to Int so that it properly
13706 covers the range First_Node_Id - 1 up.
13707
137082007-06-06 Javier Miranda <miranda@adacore.com>
13709 Ed Schonberg <schonberg@adacore.com>
13710 Bob Duff <duff@adacore.com>
13711 Hristian Kirtchev <kirtchev@adacore.com>
13712
9e81dbc7 13713 * exp_aggr.ads, exp_aggr.adb:
ec11296f
AC
13714 (Build_Record_Aggr_Code): Add missing initialization of secondary tags
13715 in extension aggregates.
13716 (Flatten): Other conditions being met, an aggregate is static if the
13717 low bound given by component associations is different from the low
13718 bound of the base index type.
13719 (Packed_Array_Aggregate_Handled): If the component type is itself a
13720 packed array or record, the front-end must expand into assignments.
13721 (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
13722 Init_Pr, instead of Ancestor_Is_Expression.
13723 (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
13724 coextension chain root, either generate a list controller or use the
13725 already existing one.
13726 (Static_Array_Aggregate): New procedure to construct a positional
13727 aggregate that can be handled by the backend, when all bounds and
13728 components are compile-time known constants.
13729 (Expand_Record_Aggregate): Force conversion of aggregates of tagged
13730 types covering interface types into assignments.
13731 (Replace_Type): move to Build_Record_Aggr_Code.
13732 (Expand_Record_Aggr_Code): if the target of the aggregate is an
13733 interface type, convert to the definite type of the aggregate itself,
13734 so that needed components are visible.
13735 (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
13736 components and the context is an extended return statement do not
13737 create a transient block for it, to prevent premature finalization
13738 before the return is executed.
13739 (Gen_Assign): Do not generate a call to deep adjust routine if the
13740 component type is itself an array of controlled (sub)-components
13741 initialized with an inner aggregate.
13742 (Component_Check): New name for Static_Check. This name is now more
13743 appropriate, and documentation is added which was missing.
13744 (Component_Check): Add test for bit aligned component value
13745 (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
13746 Tagged_Comps, name is more appropriate given added function below.
13747 (Component_Not_OK_For_Backend): Check for bit aligned component ref.
13748
137492007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
13750 Javier Miranda <miranda@adacore.com>
13751 Robert Dewar <dewar@adacore.com>
13752
13753 * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
13754 Terminated: Add unchecked type conversion from System.Address to
13755 System.Tasking.Task_Id when calling the predefined primitive
13756 _disp_get_task_id.
13757 Disable new Ada 05 accessibility check for JVM.NET targets, which
13758 cannot be implemented in a practical way.
13759 (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
13760 the sources always references the tag of the actual object. Therefore,
13761 if 'Tag is applied in the sources to class-wide interface objects we
13762 generate code that displaces "this" to reference the base of the object.
13763 (Expand_N_Attribute_Reference, case Size): Return specified size if
13764 known to front end.
13765 (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
13766 has code that displaces the pointer of the object to manage interface
13767 types. However this code must not be executed when the prefix is a
13768 subprogram. This bug caused the wrong expansion of the internally
13769 generated assignment that fills the dispatch table when the primitive
13770 is a function returning a class-wide interface type.
13771 (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
13772 Set_Attribute_Name for Name_Unaligned_Valid.
13773
137742007-06-06 Ed Schonberg <schonberg@adacore.com>
13775 Gary Dismukes <dismukes@adacore.com>
13776
13777 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
13778 If the initialization is the equivalent aggregate of the initialization
13779 procedure of the type, do not remove it.
13780 (Expand_N_Attribute_Definition_Clause): Exclude access variables
13781 initialized to null from having their expression reset to empty and
13782 note this exception in the comment.
13783
137842007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
13785 Robert Dewar <dewar@adacore.com>
13786 Ed Schonberg <schonberg@adacore.com>
13787 Gary Dismukes <dismukes@adacore.com>
13788
13789 * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
13790 Add "with" and "use" clauses for Sem_Attr.
13791 (Expand_Current_Value): Do not replace occurences of attribute
13792 references where the prefix must be a simple name.
13793
13794 * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
13795 Namet. Add new arrays Attribute_Name_Modifies_Prefix and
13796 Attribute_Requires_Simple_Name_Prefix.
13797 (Name_Modifies_Prefix): Body of new function.
13798 (Requires_Simple_Name_Prefix): Body of new function.
13799 (Resolve_Attribute, case Access): Improve error message for case of
13800 mismatched conventions.
13801 (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
13802 incomplete type.
13803 (Analyze_Attribute, case 'Access): If the type of the prefix is a
13804 constrained subtype for a nominal unconstrained type, use its base type
13805 to check for conformance with the context.
13806 (Resolve_Attribute): Remove test of the access type being associated
13807 with a return statement from condition for performing accessibility
13808 checks on access attributes, since this case is now captured by
13809 Is_Local_Anonymous_Access.
13810 (Analyze_Access_Attribute): Set Address_Taken on entity
13811 (Analyze_Attribute, case Address): Set Address_Taken on entity
13812 (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
13813 validating an access attribute whose prefix is a current instance.
13814 (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
13815 applied to dispatching operations, if freezing is required then we set
13816 the attribute Has_Delayed_Freeze in the prefix's entity.
13817 (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
13818 current scope if access of local subprogram taken
13819 (Analyze_Access_Attribute): Check legality of self-reference even if the
13820 expression comes from source, as when a single component association in
13821 an aggregate has a box association.
13822 (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
13823 the prefix if it is a protected operation and the attribute is
13824 Unrestricted_Access.
13825 (Resolve_Attribute, case 'Access): Set the Etype of the attribute
13826 reference to the base type of the context, to force a constraint check
13827 when the context is an access subtype with an explicit constraint.
13828 (Analyze_Attribute, case 'Class): If the prefix is an interface and the
13829 node is rewritten as an interface conversion. leave unanalyzed after
13830 resolution, to ensure that type checking against the context will take
13831 place.
13832
138332007-06-06 Ed Schonberg <schonberg@adacore.com>
13834 Javier Miranda <miranda@adacore.com>
13835 Robert Dewar <dewar@adacore.com>
13836
13837 * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
13838 wrapper when the full view of the controlling type of an inherited
13839 function that dispatches on result implements interfaces.
13840 (Expand_N_Object_Declaration): In cases where the type of the
13841 declaration is anonymous access, create finalization list for it.
13842 (Expand_N_Object_Declaration): Generate a persistent_bss directive only
13843 if the object has no explicit initialization, to match description of
13844 functionality of pragam Persistent_BSS.
13845 (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
13846 new function to build static aggregates, to replace initialization call
13847 when static initialization is desired.
13848 (Freeze_Type): Generate a list controller for an access type whenever
13849 its designated type has controlled anonymous access discriminants.
13850 (Build_Equivalent_Aggregate): New procedure to compute a static
13851 aggregate to be used as default initialization for composite types,
13852 instead of a generating a call to the initialization procedure for the
13853 type.
13854 (Build_Initialization_Call): When available, replace a call to the
13855 initialization procedure with a copy of the equivalent static aggregate
13856 for the type.
13857 (Expand_N_Object_Declaration): Use New_Occurrence_Of in generated
13858 declarations for objects of a class-wide interface type, rather than
13859 just identifiers, to prevent visibility problems.
13860 (Expand_N_Object_Declaration): When expanding the declaration for an
13861 object of a class-wide interface type, preserve the homonym chain of
13862 the original entity before exchanging it with that of the generated
13863 renaming declaration.
13864 (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
13865 active, because there is no way to handle the exception.
13866 (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
13867 to do a minimum decoration of the Access_Disp_Table list.
13868 (Expand_Record_Controller): Avoid the addition of the controller between
13869 the component containing the tag of a secondary dispatch table and its
13870 adjacent component that stores the offset to the base of the object.
13871 This latter component is only generated when the parent type has
13872 discriminants ---documented in Add_Interface_Tag_Components).
13873 (Apply_Array_Size_Check): Removed, no longer needed.
13874 (Expand_N_Full_Type_Declaration): If the type has anonymous access
13875 components, create a Master_Entity for it only if it contains tasks.
13876 (Build_Init_Procedure): Suppress the tag assignment compiling under
13877 no run-time mode.
13878 (Freeze_Record_Type): Remove code associated with creation of dispatch
13879 table.
13880 (Init_Secondary_Tags): Update type of actuals when generating calls to
13881 Ada.Tags.Set_Offset_To_Top
13882 (Stream_Operation_OK): Disable use of streams compiling under no
13883 run-time mode
13884 (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
13885 if Has_Init_Expression set.
13886 (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
13887 Register_Primitive, which provides the same functionality.
13888 (Requires_Init_Proc): Return false in case of interface types.
13889 (Add_Secondary_Tables): Use the new attribute Related_Interface to
13890 cleanup the code.
13891 (Predefined_Primitive_Freeze): Do not assume that an internal entity
13892 is always associated with a predefined primitive because the internal
13893 entities associated with interface types are not predefined primitives.
13894 Therefore, the call to Is_Internal is replaced by a call to the
13895 function Is_Predefined_Dispatching_Operation.
13896 (Make_Eq_If): When generating the list of comparisons for the
13897 components of a given variant, omit the controller component that is
13898 present if the variant has controlled components.
13899
139002007-06-06 Javier Miranda <miranda@adacore.com>
13901 Hristian Kirtchev <kirtchev@adacore.com>
13902 Bob Duff <duff@adacore.com>
13903
13904 * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
13905 handle the creation of finalization lists and calls for nested
13906 coextensions when the root of the chains is part of a return statement.
13907 (Inside_A_Return_Statement): New function inside Complete_Coextension_
13908 Finalization.
13909 (Expand_Record_Equality): Skip components that are interface types.
13910 (Displace_Allocator_Pointer): Add missing support for interface subtypes
13911 (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
13912 with Rewrite_Coextension. Change the condition for detecting coextension
13913 root nodes.
13914 (Is_Local_Access_Discriminant): Removed.
13915 (Rewrite_Coextension): New routine which rewrites a static coextension
13916 as a temporary and uses its unrestricted access in the construction of
13917 the outer object.
13918 (Complete_Coextension_Finalization): New routine. Generate finalization
13919 attachment calls to all delayed coextensions.
13920 (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
13921 the allocator is not a coextension itself and has delayed coextensions.
13922 If the current allocator is controlled, but also a coextension, delay
13923 the generation of the finalization attachment call.
13924 Rename local variable "Node" to "Nod" in order to avoid confusion with
13925 "Elists.Node".
13926 (Expand_Allocator_Expression): Call Adjust for initialized allocators of
13927 limited types that are not inherently limited. Such an allocator is
13928 illegal, but is generated by the expander for a return statement, to
13929 copy the result onto the secondary stack. This is the only case where a
13930 limited object can be copied. Generate code to displace the pointer
13931 to the object if the qualified expression is a class-wide interface
13932 object. Such displacement was missing and hence the copy of the object
13933 was wrong.
13934 (Apply_Accessibility_Check): Handle allocated objects initialized in
13935 place.
13936 (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
13937 and Expand_Allocator_Expression. Allocating class-wide interface objects
13938 this routine displaces the pointer to the allocated object to reference
13939 the component referencing the corresponding secondary dispatch table.
13940 Expand_Allocator_Expression): Add missing support to allocate class-wide
13941 interface objects initialized with a qualified expression.
13942 (Get_Allocator_Final_List): Test for an anonymous access type that is a
13943 function result type, and use the finalization list associated with the
13944 function scope in that case (such an anonymous type should not be
13945 treated like an access parameter's type).
13946
139472007-06-06 Ed Schonberg <schonberg@adacore.com>
13948 Gary Dismukes <dismukes@adacore.com>
13949 Javier Miranda <miranda@adacore.com>
13950
13951 * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
13952 controlled type, use Make_Handler_For_Ctrl_Operation to construct the
13953 required exception handler.
13954 (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
13955 properly the case of a function whose return type is a limited
13956 class-wide interface type. Modify the code of the accessibility
13957 check to handle class-wide interface objects. In this case we need to
13958 displace "this" to reference the primary dispatch table to get access
13959 to the TSD of the object (to evaluate its accessibility level).
13960 (Expand_N_Extended_Return_Statement): Test for a tagged result type
13961 rather than a controlling result as one of the conditions for
13962 generating tests of the implicit BIP_Alloc_Form formal. The
13963 initialization assignment is also handled according to whether the
13964 result is tagged instead of controlling.
13965 In the case where the init assignment is inserted in the "then" part of
13966 the allocation conditional, rewrite the target to be a dereference of
13967 the implicit BIP_Object_Access formal.
13968 If the returned value is unconstrained and created on the secondary
13969 stack, mark the enclosing block and function so that the secondary
13970 stack is not reclaimed on return.
13971 Treat returns from functions with controlling results similarly to
13972 returns from functions with unconstrained result subtypes.
13973 If the object returned is unconstrained, and an allocator must be
13974 created for it, analyze the allocator once the block for the extended
13975 return is installed, to ensure that finalizable components
13976 of the expression use the proper finalization list. Guard the call to
13977 Move_Final_List with a check that there is something to finalize.
13978 (Make_Tag_Ctrl_Assignment): Use "old" handling
13979 of controlled type assignment for virtual machines, since new code uses
13980 unsupported features (such as direct access to bytes in memory).
13981
139822007-06-06 Gary Dismukes <dismukes@adacore.com>
13983 Ed Schonberg <schonberg@adacore.com>
13984
13985 * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
13986 accessibility actual, check for the case of an aliased object that has
13987 been rewritten as an Access attribute, and assign Prev to Prev_Orig so
13988 we fall into processing for the attribute rather than the name of the
13989 object.
13990 (Expand_Inline_Call): If an actual is a literal, and the corresponding
13991 formal has its address taken in the body, create a temporary to capture
13992 value. If the return type is a limited interface, do not treat the
13993 return value as Controlled.
13994 (Is_In_Place_Function): If the return type is a limited interface,
13995 treat as returning in place. The actual returned object may not always
13996 be limited, but the caller has to assume that it is returned in place.
13997 (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
13998 context of an allocator, use the correct finalization chain (that is,
13999 the chain belonging to the access type, rather than the chain belonging
14000 to the current scope).
14001 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
14002 result type rather than a controlling result as a precondition for
14003 adding an allocation form actual to a build-in-place call.
14004 (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
14005 (Freeze_Subprogram): Code cleanup. Remove all the code that register the
14006 primitive in the dispatch tables. This work is now done by Make_DT when
14007 the type is frozen.
14008 (Register_Predefined_DT_Entry): Removed.
14009 (Add_Return): If end label is not present, use sloc of last statement
14010 for generated return statement in procedure, for better gdb behavior
14011 on expanded code.
14012 (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
14013 object address nodes to ensure proper processing by routines like
14014 Insert_After*.
14015 (Expand_Call): Fix generation of validity check for parameter
14016 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
14017 the allocation form parameter if the result subtype is constrained,
14018 except when the function has a controlling result.
14019 (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
14020 rather than Is_Controlled and Has_Controlled_Component, since we want to
14021 include class-wide result types in this treatment. Also test for a
14022 controlling result, since that also requires passing a finalization
14023 list.
14024 (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
14025 even when the result subtype is constrained, to handle calls involving
14026 controlling results.
14027 (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
14028 is now called even when the result subtype is constrained, to handle
14029 calls involving controlling results.
14030 (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
14031 on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
14032 now performs the test).
14033 (Make_Build_In_Place_Call_In_Object_Declaration):
14034 Add_Alloc_Form_Actual_* is now called even when the result subtype is
14035 constrained, to handle calls involving controlling results.
14036 (Add_Return): Accomodate rewritten pattern from local raise to goto
14037 transformation, so that we still recognize an transfer statement
14038 and do the right thing here in that case.
14039 (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
14040 and end of subprogram code.
14041 (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
14042 support for primitives that are functions (without formals) with a
14043 controlling result.
14044 (Inherited_From_Formal): If the actual subtype has not generic parent
14045 type, it is not an actual for a formal derived type, and there is no
14046 operation to inherit from the formal.
14047
140482007-06-06 Ed Schonberg <schonberg@adacore.com>
14049 Thomas Quinot <quinot@adacore.com>
14050
14051 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
14052 inserted cleanup code appropriately for GDB use.
14053 (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
14054 exception handler for Deep_Adjust or Deep_Finalize.
14055 (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
14056 Raise_From_Controlled_Operation is available, use a call to that
14057 subprogram instead of a plain "raise Program_Error" node to raise
14058 Program_Error if an exception is propagated from an Adjust or Finalize
14059 operation.
14060 (Insert_Actions_In_Scope_Around): If the statement to be wrapped
14061 appears in the optional statement list of a triggering alternative, the
14062 scope actions can be inserted directly there, and not in the list that
14063 includes the asynchronous select itself.
14064
140652007-06-06 Ed Schonberg <schonberg@adacore.com>
14066 Robert Dewar <dewar@adacore.com>
14067 Hristian Kirtchev <kirtchev@adacore.com>
14068
14069 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
14070 generated exception handler appropriately when debugging generated code.
14071 Deal properly with No_Exception_Propagation restriction mode.
14072 (Expand_N_Abort_Statement): Add an unchecked type conversion from
14073 System.Address to System.Tasking.Task_Id when processing the result of
14074 the predefined primitive _disp_get_task_id.
14075 (Expand_N_Asynchronous_Select): Clarify comment.
14076 (Expand_N_Protected_Type_Declaration): Minor code cleanup.
14077 (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
14078 (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
14079 (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
14080 privals and for generated call to Complete_Entry_Body, for better gdb
14081 behavior.
14082 (Copy_Result_Type): Utility to construct a parameter and result profile
14083 for protected functions whose return type is an anonymous access to
14084 subprogram.
14085 (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
14086 call the above.
14087 (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
14088 point when the local-raise-to-goto transformation has taken place.
14089
140902007-06-06 Javier Miranda <miranda@adacore.com>
14091 Nicolas Setton <setton@adacore.com>
14092
14093 * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
14094 functionality when the backend is generating code.
14095 Otherwise any serious error
14096 reported by the backend calling the frontend routine Error_Msg
14097 changes the Compilation_Mode to Check_Semantics, disables the
14098 functionality of this routine and causes the generation of
14099 spureous additional errors.
14100
14101 * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
14102 debugging information now generated by the compiler for fat-pointer
14103 types.
14104 Document the contents of DW_AT_producer in the GNAT Vendor extensions to
14105 DWARF2/3.
14106 Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
14107
141082007-06-06 Thomas Quinot <quinot@adacore.com>
14109
14110 * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
14111 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
14112 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
14113 For a remote call to a function with a classwide return type, apply an
14114 E.4(18) check to the returned value.
14115 (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
14116 stream attributes of the designated type of an RACW, as they are not
14117 dispatching primitive operations.
14118
141192007-06-06 Geert Bosch <bosch@adacore.com>
14120
14121 * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
14122 negative literal
14123 (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
14124 positive
14125 (Do_Divide_Fixed_Universal): Handle case of negative Frac.
14126 (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
14127 positive
14128 (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
14129
141302007-06-06 Javier Miranda <miranda@adacore.com>
14131
14132 * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
14133 attribute compiling package Ada.Tags under No_Run_Time_Mode.
14134
141352007-06-06 Javier Miranda <miranda@adacore.com>
14136
14137 * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
14138 deallocation of class-wide interface objects.
14139 (Expand_Dispatching_Constructor_Call): Take into account that if the
14140 result of the dispatching constructor is an interface type, the
14141 function returns a class-wide interface type; otherwise the returned
14142 object would be actual. The frontend previously accepted returning
14143 interface types because Expand_Interface_Actuals silently performed
14144 the management of the returned type "as if" it were a class-wide
14145 interface type.
14146 (Expand_Dispatching_Constructor_Call): Replace call to
14147 Make_DT_Access_Action by direct call to Make_Function_Call.
14148
141492007-06-06 Robert Dewar <dewar@adacore.com>
14150 Ed Schonberg <schonberg@adacore.com>
14151
14152 * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
14153 compute masking constant, since we now set Esize properly to the
14154 underlying size.
14155 (Create_Packed_Array_Type): Set proper Esize value adjusted as required
14156 to match the alignment.
14157 (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
14158 packed arrays of 8 bits or less.
14159
14160 * freeze.adb (Freeze_Entity): When freezing the formals of a
14161 subprogram, freeze the designated type of a parameter of an access type
14162 only if it is an access parameter.
14163 Increase size of C convention enumeration object
14164 (Freeze_Entity, array type case): Make sure Esize value is properly
14165 adjusted for the alignment if it is known.
14166 (Freeze_Entity, array type case): When checking bit packed arrays for
14167 the size being incorrect, check RM_Size, not Esize.
14168 (Freeze_Record_Type): Check for bad discriminated record convention
14169 (In_Exp_Body): Return true if the body is generated for a subprogram
14170 renaming, either an attribute renaming or a renaming as body.
14171 (Check_Itype): If the designated type of an anonymous access component
14172 is a non-protected subprogram type, indicate that it is frozen, to
14173 prevent out-of-scope freeze node at some subsequent call.
14174 (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
14175 only if the subprogram is neither imported nor exported, as well as the
14176 NCA descriptor class if the subprogram is exported.
14177
141782007-06-06 Ed Schonberg <schonberg@adacore.com>
14179 Arnaud Charlet <charlet@adacore.com>
14180 Robert Dewar <dewar@adacore.com>
14181 Gary Dismukes <dismukes@adacore.com>
14182
14183 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
14184 default initialization on an imported object, when there is no
14185 initialization call generated for it.
14186 (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
14187 restriction
14188
14189 * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
14190 Static_Elaboration_Desired.
14191 Remove pragma Thread_Body.
14192 Implement a new pragma No_Body
14193 Removes the Explicit_Overriding pragma
14194 Remove Optional_Overriding pragma
14195 (Prag): Deal with Universal_Aliasing.
14196 (Name_CIL, Name_CIL_Constructor, Convention_CIL,
14197 Pragma_CIL_Constructor): New names.
14198
14199 * sem_cat.adb (Validate_Object_Declaration): An initialization that
14200 uses the equivalent aggregate of a type must be treated as an implicit
14201 initialization.
14202 (Get_Categorization): Check a unit for pragma Preelaborate only if it
14203 has none of the other categories.
14204 (Process_Import_Or_Interface_Pragma): Report an error for an attempt
14205 to apply Import to an object renaming declaration.
14206
14207 * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
14208 from a C++ class should be declared as limited and that it will be
14209 considererd limited.
14210 (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
14211 should be declared as limited and that it will be considererd limited.
14212 (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
14213 (Analyze_Pragma, case Export): Diagnose export of enumeration literal
14214 (Analyze_Pragma): Deal with Universal_Aliasing.
14215 (Sig_Flags): Likewise.
14216 (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
14217 (Overflow_Checks_Unsuppressed): New flag.
14218 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
14219 (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
14220 case of JVM or .NET targets, and compiling user code.
14221 Add debugging convenience routine rv
14222
142232007-06-06 Robert Dewar <dewar@adacore.com>
14224
14225 * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
14226 are interface type.
14227 (Build_Elementary_Input_Call): For floating-point use right type in the
14228 absence of strange size or stream size clauses.
14229 (Build_Elementary_Write_Call): Same fix
14230 (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
14231 set to value that does not match base type size.
14232
142332007-06-06 Ed Schonberg <schonberg@adacore.com>
14234
14235 * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
14236 object of a limited type can be initialized with a call to a function
14237 that returns in place. If the limited type has unknown discriminants,
14238 and the underlying type is a constrained composite type, build an actual
14239 subtype from the function call, as is done for private types.
14240 (Side_Effect_Free): An expression that is the renaming of an object or
14241 whose prefix is the renaming of a object, is not side-effect free
14242 because it may be assigned through the renaming and its value must be
14243 captured in a temporary.
14244 (Has_Controlled_Coextensions): New routine.
14245 (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
14246 as is done for other limited types.
14247 (Non_Limited_Designated_Type): new predicate.
14248 (Make_CW_Equivalent_Type): Modified to handle class-wide interface
14249 objects.
14250 Remove all handling of with_type clauses.
14251
9e81dbc7 14252 * par-ch10.adb: Remove all handling of with_type clauses.
ec11296f
AC
14253
14254 * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
14255 checksum if the main source could not be parsed.
14256 (Loat_Unit): When processing a child unit, determine properly whether
14257 the parent unit is a renaming when the parent is itself a child unit.
14258 Remove handling of with_type clauses.
14259
14260 * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
14261 (Set_Is_Static_Coextension): New procedure.
14262 (Has_Local_Raise): New function
14263 (Set_Has_Local_Raise): New procedure
14264 (Renaming_Exception): New field
14265 (Has_Init_Expression): New flag
14266 (Delay_Finalize_Attach): Remove because flag is obsolete.
14267 (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
14268 Remove all handling of with_type clauses.
14269 (Exception_Junk): Can now be set in N_Block_Statement
14270
142712007-06-06 Vincent Celier <celier@adacore.com>
14272 Robert Dewar <dewar@adacore.com>
14273
14274 * frontend.adb (Frontend): Return immediately if the main source could
14275 not be parsed, because of preprocessing errors.
14276
14277 * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
14278 (Gnat1drv): Exit with errors if the main source could not be parsed,
14279 because of preprocessing errors.
14280 (Check_Rep_Info): New procedure
14281
142822007-06-06 Robert Dewar <dewar@adacore.com>
14283
14284 * g-hesorg.ads, g-heasor.ads,
14285 g-busorg.ads, g-bubsor.ads: Update documentation
14286 GNAT.Heap/Bubble_Sort_G is now pure
14287
142882007-06-06 Robert Dewar <dewar@adacore.com>
14289
14290 * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
14291
142922007-06-06 Robert Dewar <dewar@adacore.com>
14293 Ed Schonberg <schonberg@adacore.com>
14294
9e81dbc7 14295 * g-comlin.ads, g-comlin.adb:
ec11296f
AC
14296 Add new warning for renaming of function return objects
14297
14298 * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
14299 (Tree_Read): Use size of object instead of type'object_size, since the
14300 latter is incorrect for packed array types.
14301 (Tree_Write): Same fix
14302
14303 * opt.ads: Add new warning for renaming of function return objects
14304 (Generating_Code): New boolean variable used to indicate that the
14305 frontend as finished its work and has called the backend to process
14306 the tree and generate the object file.
14307 (GCC_Version): Is now private
14308 (Static_Dispatch_Tables): New constant declaration.
14309 (Overflow_Checks_Unsuppressed): New flag.
14310 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
14311 (List_Closure): New flag for gnatbind (-R)
14312 Zero_Formatting: New flag for gnatbind (-Z)
14313 (Special_Exception_Package_Used): New flag.
14314 (Warn_On_Unrepped_Components): New flag.
14315
14316 * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
14317 unit is a compilation unit, rather than relying on its scope, so that
14318 Standard can be renamed.
14319 (Analyze_Object_Renaming): Add new warning for renaming of function
14320 return objects.
14321 Also reject attempt to rename function return object in Ada 83 mode.
14322 (Attribute_Renaming): In case of tagged types, add the body of the
14323 generated function to the freezing actions of the type.
14324 (Find_Type): A protected type is visible right after the reserved word
14325 "is" is encountered in its type declaration. Set the entity and type
14326 rather than emitting an error message.
14327 (New_Scope): Properly propagate Discard_Names to inner scopes
14328 (Check_Nested_Access): New procedure.
14329 (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
14330 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
14331
14332 * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
14333 Add new warning for renaming of function return objects
14334 (Check_References): Suppress warnings for objects whose type or
14335 base type has Warnings suppressed.
14336 (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
14337 (Set_Warning_Switch): Include new -gnatwc in -gnatwa
14338
143392007-06-06 Vincent Celier <celier@adacore.com>
14340 Emmanuel Briot <briot@adacore.com>
14341 Olivier Hainque <hainque@adacore.com>
14342
14343 * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
14344 absolute value of Header.Block_Size when displaying the freed physical
14345 memory in traces.
14346 (Allocate): Compute Storage_Address using Integer_Address, not
14347 Storage_Offset, because the range of Storage_Offset may not be large
14348 enough.
14349 (Configure): New parameter Low_Level_Traces
14350 (Allocate, Deallocation, Free_Physically): Added low-level traces
14351 (Configure): new parameter Errors_To_Stdout.
14352 (Output_File): new subprogram
14353 (Deallocate, Dereference): Send error messages to the proper stream
14354 (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
14355 documented. Previous code would send it to the current output file
14356 defined in GNAT.IO, which might not be stdout
14357 (Is_Valid): Adjust comment to mention that a positive reply means that
14358 Header_Of may be used to retrieve the allocation header associated with
14359 the subprogram Storage address argument. Return False early if this
14360 address argument is misaligned.
14361
143622007-06-06 Vincent Celier <celier@adacore.com>
14363
14364 * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
14365 switch -P
14366 (ASIS_Main): New global variable
14367 (Get_Closure): New procedure
14368 (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
14369 check, metric or pretty. Call Get_Closure in this case.
14370 (Check_Files): For GNAT LIST, check all sources of all projects when
14371 All_Projects is True.
14372 (GNATCmd): Accept -U for GNAT LIST
14373
143742007-06-06 Vincent Celier <celier@adacore.com>
14375
14376 * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
14377 has been specified
14378 Correct error message when invocation of the linker fails
14379 Add explicit size clause for the C imported variables
14380 Object_List_File_Supported and Using_GNU_Linker to emphasize that
14381 we expect char size.
14382 Read target parameters earlier, since this is needed to set
14383 Target_VM properly. Also do not use -static/shared-libgcc for non GCC
14384 targets.
14385
143862007-06-06 Vincent Celier <celier@adacore.com>
14387
9e81dbc7 14388 * gnatls.adb:
ec11296f
AC
14389 Add 3 spaces before the default project directory when displaying
14390 the project search path.
14391 Add new command line switch '-l' to display license information.
14392
143932007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
14394
14395 * gmem.c: Add support for timestamps on memory operations.
14396
14397 * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
14398 operations (not used currently, just foundation for future
14399 enhancements). Add possibility to perform full dump of gmem.out file.
14400 (Print_Back_Traces): Declare accesses to root arrays constants since
14401 they aren't modified.
14402 (Print_Back_Traces): allocate root arrays on the heap rather than stack.
14403
144042007-06-06 Vincent Celier <celier@adacore.com>
14405
14406 * gnatsym.adb: Update Copyright notice
14407 (Parse_Cmd_Line): Accept new switch -D
14408 (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
14409 file.
14410
14411 * prj.ads (Policy): New policy Direct
14412 (Yes_No_Unknown): New enumeration type
14413 (Project_Data): New component Libgnarl_Needed
14414
14415 * prj-nmsc.adb (Check_For_Source): When recording a source file make
14416 use the untouched pathname casing.
14417 (Get_Directories): Ensure that the Display_Exec_Directory is using the
14418 proper casing on non case-sensitive platforms like Windows.
14419 (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
14420 on all platforms, as it is not possible to know which one is allowed
14421 before processing the project files.
14422 (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
14423 specified when symbol policy is Direct. Check that when there is a
14424 symbol file defined (either by default or with attribute
14425 Library_Symbol_File) it is not the same as the reference symbol file.
14426 (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
14427 (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
14428 extending projects.
14429 (Record_Ada_Source): Record a source that has been locally removed in an
14430 imported project.
14431
14432 * symbols.ads (Policy): New policy Direct
14433
14434 * symbols-vms.adb (Initialize): Take new policy Direct in case
14435 statement
14436
144372007-06-06 Vincent Celier <celier@adacore.com>
14438
14439 * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
14440 Correct obvious bug (return Dir; instead of return Directory;).
14441 (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
14442
144432007-06-06 Thomas Quinot <quinot@adacore.com>
14444
14445 * g-pehage.adb (Produce): Open output files in Binary mode, so that
14446 they have UNIX line endings (LF only) even on Windows, and thus pass
14447 all GNAT style checks.
14448
144492007-06-06 Emmanuel Briot <briot@adacore.com>
14450
14451 * g-regpat.adb (Quote): Fix improper quoting of '.'
14452
144532007-06-06 Thomas Quinot <quinot@adacore.com>
14454
14455 * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
14456 default, set False on a per-runtime basis.
14457 (Need_Netdb_Buffer): New constant.
14458
14459 * g-socket.ads, g-socket.adb: Import new package
14460 GNAT.Sockets.Thin.Task_Safe_NetDB.
14461 (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
14462 binding to obtain proper message.
14463 (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
14464 Replace various occurrences of Arry (Arry'First)'Address with the
14465 equivalent Arry'Address (GNAT always follows implementation advice from
14466 13.3(14)).
14467 (Get_Host_By_Address, Get_Host_By_Name,
14468 Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
14469 instead, rely on platform-specific task safe netdb operations provided
14470 by g-socthi.
14471
14472 * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
14473 parameter Process_Blocking_IO.
14474 (Host_Error_Messages): Add stub body.
14475 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
14476 (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
14477 Safe_Getservbyport): Move functions into new child package
14478 Task_Safe_NetDB.
14479 (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
14480 Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
14481 (In_Addr): Add alignment clause.
14482
144832007-06-06 Robert Dewar <dewar@adacore.com>
14484
14485 * g-trasym.ads, g-traceb.ads: Update list of supported targets
14486 Add note about symbolic traceback
14487
144882007-06-06 Pascal Obry <obry@adacore.com>
14489
14490 * hostparm.ads (Normalized_CWD): Use the host directory separator
14491 instead of the hardcoded forward slash which is not the proper
14492 character on Windows for example.
14493 (Java_VM): Removed.
14494
144952007-06-06 Vincent Celier <celier@adacore.com>
14496 Arnaud Charlet <charlet@adacore.com>
14497
14498 * a-clrefi.adb, a-clrefi.ads: New files
14499
14500 * impunit.adb: Add s-os_lib in the list of user visible units.
14501 (Non_Imp_File_Names_95): Add a-clrefi to this list
14502 Remove obsolete run-time entries.
14503 (Non_Imp_File_Names_05): Add Ada 2005 entries for:
14504 "a-exetim" -- Ada.Execution_Time
14505 "a-extiti" -- Ada.Execution_Time.Timers
14506
14507 * mlib-prj.ads, mlib-prj.adb
14508 (Build_Library): Use untouched object dir and library dir. At the
14509 same time makes sure that the checks are done using the canonical
14510 form. Removes hard-coded directory separator and use the proper host
14511 one instead.
14512 (Process_Project): Do not look in object directory to check if libgnarl
14513 is needed for a library, if there is no object directory.
14514 (Build_Library): Scan the ALI files to decide if libgnarl is needed for
14515 linking.
14516 (Build_Library): When invoking gnatbind, use a response file if the
14517 total size of the arguments is too large.
14518
14519 * Makefile.rtl: (g-sttsne): New object file.
14520 Add entry for a-clrefi, s-utf_32, System.Exceptions
14521
14522 * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
14523 (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
14524 (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
14525 Change g-string to s-string, g-os_lib to s-os_lib
14526 Change all g-utf_32 references to s-utf_32
14527
145282007-06-06 Tristan Gingold <gingold@adacore.com>
14529 Olivier Hainque <hainque@adacore.com>
14530
14531 * init.c: Do not adjust IP of an imported VMS exception of ia64.
14532 LIB$STOP is called to raise an exception and the IP of the exception
14533 is the instruction right after the call.
14534 (__gnat_adjust_context_for_raise, AIX): Implement.
14535 (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
14536 adjust_context_for_raise before Raise_From_Signal_Hanler.
14537 (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
14538 siginfo is passed to the handler, necessary to let the zcx propagation
14539 engine unwind past it.
14540
145412007-06-06 Olivier Hainque <hainque@adacore.com>
14542
14543 * initialize.c (__gnat_initialize for vxworks): Update documentation
14544 on the ZCX support, using different sets of crtstuff objects than with
14545 GCC 3.4.
14546
145472007-06-06 Robert Dewar <dewar@adacore.com>
14548
14549 * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
14550 spec from body
14551 (Layout_Type): Fix recomputation of size from alignment.
14552
145532007-06-06 Ed Schonberg <schonberg@adacore.com>
14554 Javier Miranda <miranda@adacore.com>
14555
14556 * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
14557 association in an instance.
14558 (Copy_Generic_Node): If the node is a string literal, no need to copy
14559 its descendants.
14560 (Is_Generic_Formal): For a formal subprogram, the declaration is the
14561 grandparent of the entity.
14562 (Analyze_Formal_Interface_Type): Transform into a full type declaration,
14563 to simplify handling of formal interfaces that derive from other formal
14564 interfaces.
14565 (Instantiate_Subprogram_Body): The defining unit name of the body of
14566 the instance should be a defining identifier.
14567 (Install_Formal_Packages): make global to the package, for use in
14568 instantiations of child units.
14569 (Analyze_Package_Instantiation): Do not attempt to set information on an
14570 enclosing master of an entry when expansion is disabled.
14571 (Instantiate_Type): If the actual is a tagged synchronized type and the
14572 generic ancestor is an interface, create a generic actual for the
14573 corresponding record.
14574 (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
14575 declaration, to ensure that the interface list is processed correctly.
14576 (Inline_Instance_Body): If enclosing scope is an instance body, remove
14577 its entities from visibiility as well.
14578 (Pre_Analyze_Actuals): if the actual is an allocator with constraints
14579 given with a named association, analyze the expression only, not the
14580 discriminant association itself.
14581 (Reset_Entity): If the analysis of a selected component is transformed
14582 into an expanded name in the prefix of a call with parameters, do not
14583 transform the original node into an expanded name, to prevent visibility
14584 errors in the case of nested generics.
14585 (Check_Private_View): For an array type, check whether the index types
14586 may need exchanging.
14587
145882007-06-06 Arnaud Charlet <charlet@adacore.com>
14589 Vincent Celier <celier@adacore.com>
14590
14591 * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
14592 since both are separated.
14593 Add support for imported CIL packages.
14594 Add further special handling of "value_type" for CIL.
14595 Add special handling of pragma Import for CIL.
14596
14597 * make.ads, make.adb: When switch -eS is used, direct all outputs to
14598 standard output instead of standard error, except errors.
14599 (Absolute_Path): Use untouched casing for the parent directory.
14600 (Add_Library_Search_Dir): Use the untouched directory name.
14601 (Add_Source_Search_Dir): Idem.
14602 (Change_To_Object_Directory): Update output to use proper casing.
14603 (Create_Binder_Mapping_File): Use the untouched filename to set
14604 ALI_Name.
14605 (Gnatmake): Use untouched library and executable directory names.
14606 (Insert_Project_Sources): Use untouched filename for spec and body.
14607 (Is_In_Object_Directory): Use untouched object directory.
14608 (Mark_Directory): Idem.
14609 (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
14610 contains the non-canonical filename in all cases.
14611 (Change_To_Object_Directory): In verbose mode, display the name of the
14612 object directory we're changing to.
14613 (Compile_Sources): Make sure, when a project file is used, to compile
14614 the body of the unit, when there is one, even when only the spec is
14615 recorded in an ALI file.
14616 (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
14617 spec to the body.
14618 (Report_Compilation_Failed): New procedure
14619 (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
14620 procedures moved from the spec to the body.
14621 (Extract_Failure): Removed, not used
14622 Replace explicit raises of exception Bind_Failed and Link_Failed with
14623 calls to Make_Failed with the proper message.
14624 Replace explicit raises of exception Compilation_Failed with calls to
14625 procedure Report_Compilation_Failed.
14626 (Initialize): Create mapping files unconditionally when using project
14627 files.
14628
14629 * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
14630 Pragma_CIL_Constructor): New names.
14631
14632 * targparm.ads, targparm.adb
14633 (Compiler_System_Version): Removed, no longer used.
14634 (Get_Target_Parameters): Relax checks on system.ads validity. Add
14635 handling of two new system flags: JVM and CLI.
14636
146372007-06-06 Jose Ruiz <ruiz@adacore.com>
14638 Arnaud Charlet <charlet@adacore.com>
14639
14640 * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
14641 time, use the default s-interr body that provides interrupt support
14642 based on signals.
14643 (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
14644 a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
14645 g-soccon.ads, and s-taprop.adb for the marte run time.
14646 (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
14647 timers are supported on marte.
14648 (EH_MECHANISM for marte): Do not use ZCX.
14649 (THREADSLIB for marte): Use -lmarte.
14650 Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
14651 Add mlib-tgt-specific.o to gnatmake objects
14652 mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
14653 longer of MLib.Tgt.
14654 (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
14655 6, either kernel or rtp, use a specialized version of s-osinte.ads.
14656
146572007-06-06 Pascal Obry <obry@adacore.com>
14658
14659 * mkdir.c (__gnat_mkdir): Add support for UTF-8.
14660
146612007-06-06 Vincent Celier <celier@adacore.com>
14662
14663 * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
14664 separator, use instead the proper host directory separator.
14665 (Copy_ALI_Files): Make sure that an already existing ALI file in the
14666 ALI copy dir is writable, before doing the copy.
14667
9e81dbc7 14668 * mlib-utl.ads, mlib-utl.adb:
ec11296f
AC
14669 (Gcc): If length of command line is too long, put the list of object
14670 files in a response file, if this is supported by the platform.
14671 (Ar): If invocation of the archive builder is allowed to be done in
14672 chunks and building it in one shot would go above an OS dependent
14673 limit on the number of characters on the command line, build the archive
14674 in chunks.
14675
146762007-06-06 Vincent Celier <celier@adacore.com>
14677
14678 * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
14679 of specified object file is not equal to base name of source.
14680
146812007-06-06 Javier Miranda <miranda@adacore.com>
14682 Hristian Kirtchev <kirtchev@adacore.com>
14683 Ed Schonberg <schonberg@adacore.com>
14684
14685 * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
14686 the full type declaration.
14687 (Analyze_Component_Declaration): Add local variable E to capture the
14688 initialization expression of the declaration. Replace the occurences of
14689 Expression (N) with E.
14690 (OK_For_Limited_Init_In_05): Allow initialization of class-wide
14691 limited interface object with a function call.
14692 (Array_Type_Declaration): If the declaration lacks subtype marks for
14693 indices, create a simple index list to prevent cascaded errors.
14694 (Is_Null_Extension): Ignore internal components created for secondary
14695 tags when checking whether a record extension is a null extension.
14696 (Check_Abstract_Interfaces): Add missing support for interface subtypes
14697 and generic formals.
14698 (Derived_Type_Declaration): Add missing support for interface subtypes
14699 and generic formals.
14700 (Analyze_Object_Declaration): If an initialization expression is
14701 present, traverse its subtree and mark all allocators as static
14702 coextensions.
14703 (Add_Interface_Tag_Component): When looking for components that may be
14704 secondary tags, ignore pragmas that can appear within a record
14705 declaration.
14706 (Check_Abstract_Overriding): an inherited function that dispatches on
14707 result does not need to be overriden if the controlling type is a null
14708 extension.
14709 (Mentions_T): Handle properly a 'class attribute in an anonymous access
14710 component declaration, when the prefix is an expanded name.
14711 (Inherit_Component): If the derivation is for a private extension,
14712 inherited components remain visible and their ekind should not be set
14713 to Void.
14714 (Find_Type_Of_Object): In the case of an access definition, always set
14715 Is_Local_Anonymous_Access. We were previously not marking the anonymous
14716 access type of a return object as a local anonymous type.
14717 (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
14718 range with character literal bounds.
14719 (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
14720 (Access_Subprogram_Declaration): Indicate that the type declaration
14721 depends on an incomplete type only if the incomplete type is declared
14722 in an open scope.
14723 (Analyze_Subtype_Declaration): Handle properly subtypes of
14724 synchronized types that are tagged, and that may appear as generic
14725 actuals.
14726 (Access_Subprogram_Declaration): An anonymous access to subprogram can
14727 appear as an access discriminant in a private type declaration.
14728 (Add_Interface_Tag_Components): Complete decoration of the component
14729 containing the tag of a secondary dispatch table and the component
14730 containing the offset to the base of the object (this latter component
14731 is only generated when the parent type has discriminants --as documented
14732 in this routine).
14733 (Inherit_Components): Use the new decoration of the tag components to
14734 improve the condition that avoids inheriting the components associated
14735 with secondary tags of the parent.
14736 (Build_Discriminanted_Subtype): Indicate to the backend that the
14737 size of record types associated with dispatch tables is known at
14738 compile time.
14739 (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
14740 (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
14741 to include task, protected, and synchronized interfaces as limited
14742 interfaces.
14743 (Process_Discriminants): Remove the setting of
14744 Is_Local_Anonymous_Access on the type of (anonymous) access
14745 discriminants of nonlimited types.
14746 (Analyze_Interface_Type_Declaration): Complete the decoration of the
14747 class-wide entity it is is already present. This situation occurs if
14748 the limited-view has been previously built.
14749 (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
14750 field.
14751 (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
14752 Related_Interface.
14753
147542007-06-06 Ed Schonberg <schonberg@adacore.com>
14755
14756 * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
14757 of the type that specify the position of interface tags when the type
14758 inherits discriminated array components from the parent type.
14759 If a component is initialized with a box, check for the presence of a
14760 default expression in its declaration before using its default
14761 initialization procedure.
14762 (Resolve_Record_Aggregate): If a component is box-initialized, and the
14763 component type has a discriminants, create a partial aggregate for it
14764 by copying the discriminants of the component subtype.
14765 Reject attempt to initialize a discriminant with a box.
14766 (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
14767 associated with dispatch tables is known at compile time.
14768 (Get_Value): If an association in a record aggregate has a box
14769 association, and the corresponding record component has a default
14770 expression, always copy the default expression, even when the
14771 association has a single choice, in order to create a proper
14772 association for the expanded aggregate.
14773
147742007-06-06 Ed Schonberg <schonberg@adacore.com>
14775 Robert Dewar <dewar@adacore.com>
14776
14777 * par-ch12.adb (P_Generic_Associations): The source position of an
14778 Others association is that of the others keyword, not that of the token
14779 that follows the box.
14780 (P_Formal_Type_Definition): Handle formal access types that carry a
14781 not null indicator.
14782
14783 * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
14784 multiple identifier are present, save Scan_State before scanning the
14785 colon, to ensure that separate trees are constructed for each
14786 declaration.
14787 (P_Identifier_Declarations): For object declaration, set new flag
14788 Has_Init_Expression if initialization expression present.
14789 (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
14790 Improve NOT NULL error messages
14791
147922007-06-06 Robert Dewar <dewar@adacore.com>
14793
14794 * par-ch4.adb: (P_Name): Recover from literal used as name
14795
147962007-06-06 Vincent Celier <celier@adacore.com>
14797
14798 * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
14799 defaulted to False.
14800 In the "not" case, recursive call with Complemented set to True.
14801 Do not allow "or" or "and" operators when Complemented is True.
14802
148032007-06-06 Vincent Celier <celier@adacore.com>
14804
14805 * prj.adb (Project_Empty): Gives default value for new component
14806 Libgnarl_Needed
14807
14808 * prj-attr.ads: Minor reformatting
14809
14810 * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
14811 directory using the untouched casing.
14812 (For_All_Source_Dirs): Idem.
14813
14814 * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
14815 directories specified with switches -aP.
14816 (Add_Search_Project_Directory): New procedure
14817 (Initialize_Project_Path): Put the directories in table
14818 Search_Directories in the project search path.
14819 (Initialize_Project_Path): For VMS, transform into canonical form the
14820 project path.
14821
148222007-06-06 Arnaud Charlet <charlet@adacore.com>
14823
14824 * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
14825 true if configurable run-time or No_Run_Time is set.
14826 (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
14827 processing an unit which is not the one being compiled.
14828
148292007-06-06 Arnaud Charlet <charlet@adacore.com>
14830
14831 * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
14832 Replace UC by Ada.UC
14833
14834 * s-bitops.adb: Get rid of System.Pure_Exceptions.
14835 Replace UC by Ada.UC
14836
148372007-06-06 Robert Dewar <dewar@adacore.com>
14838
14839 * scng.adb: (Check_End_Of_Line): Deal with very long lines
14840
148412007-06-06 Robert Dewar <dewar@adacore.com>
14842
14843 * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
14844 Remove no longer used nodes.
14845
148462007-06-06 Javier Miranda <miranda@adacore.com>
14847 Ed Schonberg <schonberg@adacore.com>
14848 Robert Dewar <dewar@adacore.com>
14849
14850 * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
14851 on obsolescent withed unit in case of limited-withed units.
14852 (Analyze_Compilation_Unit): Add guard to code that removed an
14853 instantiation from visibility, to prevent compiler aborts when
14854 instantiation is abandoned early on.
14855 (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
14856 current unit being analyzed, and Distinguish local incomplete types
14857 from limited views of types declared elsewhere.
14858 (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
14859 to state that the class-wide entity is shared by the limited-view
14860 and the full-view.
14861 (Analyze_With_Clause): Improve placement of flag for case of
14862 unimplemented unit.
14863 (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
14864 manner similar to GNAT.Current_Exception. This is a violation of
14865 restriction (No_Exception_Propagation), and also inhibits the
14866 optimization of local raise to goto.
14867 (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
14868 and if so set Most_Recent_Exception_Used flag in Opt, and also check
14869 for violation of restriction No_Exception_Propagation.
14870
148712007-06-06 Javier Miranda <miranda@adacore.com>
14872 Hristian Kirtchev <kirtchev@adacore.com>
14873 Gary Dismukes <dismukes@adacore.com>
14874
14875 * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
14876 use of entity Exception_Occurrence if it is not available in the
14877 target run-time.
14878
14879 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
14880 concurrent types are declared within an Ada 2005 generic, build their
14881 corresponding record types since they are needed for overriding-related
14882 semantic checks.
14883 (Analyze_Protected_Type): Rearrange and simplify code for testing that a
14884 protected type does not implement a task interface or a nonlimited
14885 interface.
14886 (Analyze_Task_Type): Rearrange and simplify code for testing that a task
14887 type does not implement a protected interface or a nonlimited interface.
14888 (Single_Task_Declaration, Single_Protected_Declaration): use original
14889 entity for variable declaration, to ensure that debugging information
14890 is correcty generated.
14891 (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
14892 routines if the expander is not active.
14893 (Analyze_Task_Body): Mark all handlers to stop optimization of local
14894 raise, since special things happen for task exception handlers.
14895
14896 * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
14897 concurrent types declared within a generic.
14898 (Check_Dispatching_Operation): Do not emit warning about late interface
14899 operations in the context of an instance.
14900 (Check_Dispatching_Call): Remove restriction against calling a
14901 dispatching operation with a limited controlling result.
14902 (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
14903 Register_Interface_DT_Entry by calls to Register_Primitive.
14904 (Check_Dispatching_Formals): Handle properly a function with a
14905 controlling access result.
14906
149072007-06-06 Robert Dewar <dewar@adacore.com>
14908 Arnaud Charlet <charlet@adacore.com>
14909
14910 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
14911 Check for restriction No_Implementation_Attributes if in Ada 95 mode.
14912 (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
14913 (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
14914 message when using a VM, since this attribute is not supported.
14915 (Analyze_Record_Representation_Clause): Give unrepped component warnings
14916
14917 * usage.adb: Add new warning for renaming of function return objects
14918 Indicate that -gnatwp and -gnatwP concern front-end inlining
14919 Add line for -gnatyg
14920 Add usage information for -gnatw.c/C
14921
149222007-06-06 Robert Dewar <dewar@adacore.com>
14923 Ed Schonberg <schonberg@adacore.com>
14924
14925 * sem_ch5.adb
14926 (Find_Var): Do not consider function call in test for infinite loop
14927 warning if warnings set off for function entity.
14928 (One_Bound): Do not create a temporary for a loop bound if it is a
14929 character literal.
14930 (Analyze_Assignment): Traverse the right hand side of an assignment and
14931 mark all allocators as static coextensions.
14932 (Analyze_Assignment): Exempt assignments involving a dispatching call
14933 to a function with a controlling access result from the check requiring
14934 the target to be class-wide.
14935
149362007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
14937 Ed Schonberg <schonberg@adacore.com>
14938 Robert Dewar <dewar@adacore.com>
14939 Javier Miranda <miranda@adacore.com>
14940
14941 * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
14942 chain of coextensions when an allocator serves as the root of such a
14943 chain.
14944 (Propagate_Coextensions): Remove the test for the root being an
14945 allocator.
14946 (Resolve_Allocator): Add condition to ensure that all future decoration
14947 occurs on an allocator node. Add processing and cleanup for static
14948 coextensions.
14949 (Valid_Conversion): If the operand type is the limited view of a
14950 class-wide type, use the non-limited view is available to determine
14951 legality of operation.
14952 (Ambiguous_Character): move to spec, for use elsewhere.
14953 (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
14954 (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
14955 character literals.
14956 (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
14957 Do_Division_Check flag explicitly.
14958 (Resolve_Actuals): If the actual is of a synchronized type, and the
14959 formal is of the corresponding record type, this is a call to a
14960 primitive operation of the type, that is declared outside of the type;
14961 the actual must be unchecked-converted to the type of the actual
14962 (Resolve_Call): Kill all current values for any subprogram call if
14963 flag Suppress_Value_Tracking_On_Call is set.
14964 (Resolve_Type_Conversion): Generate error message the the operand
14965 or target of interface conversions come from a limited view.
14966 (Check_Infinite_Recursion): Ignore generated calls
14967 (Check_Allocator_Discrim_Accessibility): New procedure for checking
14968 that an expression that constrains an access discriminant in an
14969 allocator does not denote an object with a deeper level than the
14970 allocator's access type.
14971 (Resolve_Allocator): In the case of an allocator initialized by an
14972 aggregate of a discriminated type, check that associations for any
14973 access discriminants satisfy accessibility requirements by calling
14974 Check_Allocator_Discrim_Accessibility.
14975 (Resolve_Equality_Op): Handle comparisons of anonymous access to
14976 subprogram types in the same fashion as other anonymous access types.
14977 (Resolve_Concatenation_Arg): Remove initial character '\' in an error
14978 message that is not a continuation message.
14979 (Resolve_Type_Conversion): Add missing support for conversion to
14980 interface type.
14981 (Resolve_Actuals): Introduce a transient scope around the call if an
14982 actual is a call to a function returning a limited type, because the
14983 resulting value must be finalized after the call.
14984 (Resolve_Actuals): If the call was given in prefix notations, check
14985 whether an implicit 'Access reference or implicit dereference must be
14986 added to make the actual conform to the controlling formal.
14987
149882007-06-06 Robert Dewar <dewar@adacore.com>
14989 Javier Miranda <miranda@adacore.com>
14990
14991 * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
14992 (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
14993 overriding of an inherited private subprogram now there is no need to
14994 inherit its dispatching slot and reduce the size of the dispatch table.
14995 Set_All_DT_Position now ensures that the same slot is now assigned to
14996 both entities. This is required to statically build the dispatch table.
14997 (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
14998 of calling Set_All_DT_Position to re-evaluate the position of the
14999 entries in the dispatch table. Such reevaluation is not desired if
15000 the tagged type is already frozen.
15001
150022007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
15003 Gary Dismukes <dismukes@adacore.com>
15004 Robert Dewar <dewar@adacore.com>
15005 Javier Miranda <miranda@adacore.com>
15006
15007 * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
15008 reference acts as an lvalue when the attribute name modifies the prefix
15009 (Is_Coextension_Root): New routine.
15010 (Mark_Static_Coextensions): New routine.
15011 (Type_Access_Level): Revise code for checking the level of the
15012 anonymous access type of a return object.
15013 (Safe_To_Capture_Value): Not safe to capture if Address_Taken
15014 (Matches_Prefixed_View_Profile): Remove the no longer necessary
15015 retrieval of the corresponding controlling record type.
15016 (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
15017 concurrent types declared within a generic as well as class wide types.
15018 Emit a mode incompatibility error whenever a protected entry or routine
15019 override an interface routine whose first parameter is not of mode
15020 "out", "in out" or access to variable.
15021 (Overrides_Synchronized_Primitive): Rename to
15022 Find_Overridden_Synchronized_Primitive.
15023 (Collect_Interface_Components): New subprogram that collects all the
15024 components of a tagged record containing tags of secondary dispatch
15025 tables.
15026 (Add_Global_Declaration): New procedure
15027 (Abstract_Interface_List): Handle properly the case of a subtype of a
15028 private extension.
15029 (Type_Access_Level): In the case of a type whose parent scope is a
15030 return statement, call Type_Access_Level recursively on the enclosing
15031 function's result type to determine the level of the return object's
15032 type.
15033 (Build_Elaboration_Entity): Build name of elaboration entity from the
15034 scope chain of the entity, rather than the unit name of the file name.
15035 (Check_Nested_Access): New procedure.
15036 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
15037 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
15038 (Get_Renamed_Entity): Utility routine for performing common operation
15039 of chasing the Renamed_Entity field of an entity.
15040
150412007-06-06 Robert Dewar <dewar@adacore.com>
15042
15043 * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
15044 elaboration model
15045 (Check_A_Call): Add check for entry call which was causing blowup
15046
150472007-06-06 Olivier Hainque <hainque@adacore.com>
15048
15049 * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
15050 special code on ia64-vms to handle major incompatibilities between the
15051 GCC unwinding ABI and the VMS Condition Handling Facility, both calling
15052 this routine with a very different set of arguments and expectations on
15053 the return value.
15054
150552007-06-06 Thomas Quinot <quinot@adacore.com>
15056
15057 * socket.c (__gnat_close_signalling_fd): New function.
15058 (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
15059 __gnat_safe_getservbyname, __gnat_safe_getservbyport):
15060 New supporting functions for task safe Netdb operations.
15061
150622007-06-06 Thomas Quinot <quinot@adacore.com>
15063 Olivier Hainque <hainque@adacore.com>
15064
15065 * a-except-2005.ads, a-except-2005.adb
15066 (Raise_From_Controlled_Operation): New procedure in
15067 (private part of) Ada.Exceptions (standard runtime version). Used to
15068 provide informational exception message when Program_Error is raised as
15069 a result of an Adjust or Finalize operation propagating an exception.
15070 (Rmsg_28): Fix description for E.4(18) check.
15071 (Raise_Current_Excep): Call Debug_Raise_Exception just before
15072 propagation starts, to let debuggers know about the event in a reliable
15073 fashion.
15074 Take the address of E and dereference to make sure it is homed on stack
15075 and prevent the stores from being deleted, necessary for proper
15076 debugger behavior on "break exception" hits.
15077 (Local_Raise): Moved to System.Exceptions
15078
15079 * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
15080 exception message from the current occurrence and raise Program_Error
15081 has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
15082
150832007-06-06 Jose Ruiz <ruiz@adacore.com>
15084 Arnaud Charlet <charlet@adacore.com>
15085
15086 * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
15087 lock, if needed.
15088
15089 * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
15090 priority associated to a lock.
15091
15092 * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
15093 assertion to take into account case of no abort restriction.
15094 (Initialize_Protection_Entries): Add initialization for the field
15095 New_Ceiling associated to the protected object.
15096 (Unlock_Entries): Change the ceiling priority of the underlying lock, if
15097 needed.
15098
15099 * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
15100 since this function needs to be set consistently with Update_Exception.
15101
15102 * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
15103 since this function needs to be set consistently with Update_Exception.
15104
15105 * s-taskin.ads: Update comments on
15106 Interrupt_Server_Blocked_On_Event_Flag.
15107 (Unbind_Handler): Fix handling of server_task wakeup
15108 (Server_Task): Set self's state so that Unbind_Handler can take
15109 appropriate actions.
15110 (Common_ATCB): Now use a constant from System.Parameters to determine
15111 the max size of the Task_Image field.
15112
15113 * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
15114 Initialize_Analyzer function.
15115 ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
15116 take into account case of no abort restriction.
15117 ([Vulnerable_]Complete_Master): Modify assertion.
15118
15119 * s-tataat.adb (Finalize): Use the nestable versions of
15120 Defer/Undefer_Abort.
15121
15122 * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
15123
15124 * s-tpobop.ads: Update comments.
15125
15126 * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
15127 of locking the object manually, to avoid inconsistencies between
15128 Lock/Unlock_Entry assertions.
15129
15130 * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
15131 terminating
15132 application and System.Parameters.No_Abort is True.
15133 Update comments on Interrupt_Server_Blocked_On_Event_Flag.
15134 (Unbind_Handler): Fix handling of server_task wakeup
15135 (Server_Task): Set self's state so that Unbind_Handler can take
15136 appropriate actions.
15137
151382007-06-06 Thomas Quinot <quinot@adacore.com>
15139
15140 * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
15141 declarations instead of an explicit null body, for conciseness.
15142
151432007-06-06 Robert Dewar <dewar@adacore.com>
15144
15145 * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
15146 illegal aggregate and the type is still Any_Composite.
15147 (Subtypes_Statically_Match): Fix problem of empty discriminant list
15148
151492007-06-06 Ed Schonberg <schonberg@adacore.com>
15150
15151 * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
15152 to prevent subsequent expansion.
15153
151542007-06-06 Robert Dewar <dewar@adacore.com>
15155
15156 * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
15157
151582007-06-06 Ed Schonberg <schonberg@adacore.com>
15159 Robert Dewar <dewar@adacore.com>
15160
15161 * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
15162 exceptions.
15163 (Write_Itype): Handle case of string literal subtype, which
15164 comes up in this context.
15165 (Update_Itype): when debugging expanded code, update sloc of itypes
15166 associated with defining_identifiers and ranges, for gdb use.
15167 (Sprint_Node_Actual): Add static keyword to object or exception
15168 declaration output if Is_Statically_Allocated is True.
15169 (Sprint_End_Label): Set entity of end marker for a subprogram, package,
15170 or task body, so that the tree carries the proper Sloc information for
15171 debugging use.
15172 (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
15173
151742007-06-06 Arnaud Charlet <charlet@adacore.com>
15175
15176 * s-secsta.adb (Chunk): Ensure this object has a static size known at
15177 compile time, to avoid dynamic memory allocation
15178 (Elaboration code): Only use dynamic memory allocation when needed.
15179
151802007-06-06 Quentin Ochem <ochem@adacore.com>
15181
15182 * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
15183 "Overflow_Guard".
15184 (Stack_Analyzer): Added field "Overflow_Guard"
15185 (Task_Result): Added field "Overflow_Guard".
15186 (Index_Str): New constant.
15187 (Task_Name_Str): New constant.
15188 (Actual_Size_Str): New constant.
15189 (Pattern_Array_Element_Size): New constant.
15190 (Get_Usage_Range): New subprogram.
15191 (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
15192 Now align the output.
15193 Added comments.
15194 (Initialize): Added value for Overflow_Guard.
15195 (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
15196 Update the value of the overflow guard according to the actual
15197 beginning of the pattern array.
15198 (Initialize_Analyzer): Added parameter Overflow_Guard.
15199 Take this parameter into accound when computing the max size.
15200 (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
15201 (Report_Result): Removed extra useless procedure.
15202 Updated call to Output_Result.
15203 Moved full computation of the Task_Result here.
15204
152052007-06-06 Thomas Quinot <quinot@adacore.com>
15206
15207 * g-soccon-darwin.ads, gen-soccon.c: Add new constant
15208 Thread_Blocking_IO, always True by default, set False on a per-runtime
15209 basis.
15210 Add Windows-specific constants
15211 Add new constant Need_Netdb_Buffer.
15212 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
15213 not, whether to use getXXXbyYYY_r.
15214
15215 * gsocket.h: Add new constant Need_Netdb_Buffer.
15216 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
15217 not, whether to use getXXXbyYYY_r.
15218
152192007-06-06 Eric Botcazou <ebotcazou@adacore.com>
15220
15221 * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
15222 than their first call.
15223 Add type Dummy_Communication_Block used in the generation of the pre-
15224 defined dispatching primitive _disp_asynchronous_select.
15225 (Storage_Element): Put Pragma Universal_Aliasing on it.
15226
152272007-06-06 Vincent Celier <celier@adacore.com>
15228
15229 * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
15230 function.
15231
15232 * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
15233 letter if it is not followed by a '/' or a '\'.
15234 (Windows): New Boolean function
15235
15236 * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
15237 Ada 2005.
15238 (Containing_Directory): On Windows, keep at least one '/' or '\' after a
15239 drive letter.
15240 (Containing_Directory): Raise Use_Error when the directory is a root
15241 directory.
15242 (Extension): When returning the result, use a conversion to Result_Type,
15243 not a qualification.
15244
152452007-06-06 Robert Dewar <dewar@adacore.com>
15246
15247 * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
15248 (Set_Style_Check_Options): Recognize new -gnatyg style switch
15249
15250 * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
15251 Warn_On_Non_Local_Exception to False, to turn off warnings for
15252 No_Exception_Propagation in ZFP runtime.
15253 (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
15254 back-ends.
15255 (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
15256
152572007-06-06 Vincent Celier <celier@adacore.com>
15258
15259 * switch-b.adb (Scan_Binder_Switches): Add processing for new
15260 switches -R and -Z
15261
15262 * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
15263 (Scan_Make_Switches): Recognize new switch -aP
15264
152652007-06-06 Matthew Gingell <gingell@adacore.com>
15266 Jose Ruiz <ruiz@adacore.com>
15267
15268 * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
15269 VxWorks task descriptor in the Ada run time, call a C subprogram
15270 (__gnat_get_stack_info) that extracts the required information.
15271
15272 * sysdep.c: Back out temporary lynxos workaround.
15273 (__gnat_get_stack_info): Add this procedure that passes to the Ada run
15274 time the stack information associated to the currently executing task.
15275 Only VxWorks systems require this function.
15276
152772007-06-06 Eric Botcazou <ebotcazou@adacore.com>
15278
15279 * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
15280 add the stack bias if the offset is computed from a frame address.
15281 (__gnat_backtrace): Adjust for above change.
15282
152832007-06-06 Thomas Quinot <quinot@adacore.com>
15284
15285 * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
15286 PE_Non_Transportable_Actual.
15287 (By_Descriptor_Last): New constant.
15288 (By_Copy_Return): Likewise.
15289
152902007-06-06 Vincent Celier <celier@adacore.com>
15291
15292 * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
15293 is.
15294
15295 * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
15296 /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
15297 /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
15298 Add missing comment for /OPTIMIZE=SPACE
15299 Add entry for OPTIMIZE=SPACE
15300 Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
15301 Add documentation for new qualifiers corresponding to -gnatw.c/.C
15302
153032007-06-06 Vincent Celier <celier@adacore.com>
15304 Robert Dewar <dewar@adacore.com>
15305
15306 * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
15307 -gnatw.C)
15308
15309 * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
15310 Document gnatbind switch -a
15311 (case Constructions): Document that variables declarations are allowed
15312 for previously declared variables.
15313 Fix external lib project example
15314 -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
15315 Indicate that "#if not X or Y then" is not allowed in input files to
15316 gnatprep.
15317 Document gnatw.x and gnatw.X warning flags
15318 Mention -Winline switch to activate warnings when back-end inlining is
15319 ineffective.
15320 Add gnatcheck rule descriptions
15321 Describe how to use the GNAT driver to call a tool on a closure.
15322 Describe how to run project-wide checks or metrics.
15323 Document gnatbind's -R option
15324 Updated to account for Ada 2005 support
15325
15326 * gnat_rm.texi (Case Construction): Allow variable declarations for
15327 previously declared variables.
15328 (Representation Clauses and Pragmas): Lift restriction on alignment
15329 clauses for record types.
15330 (Ada.Characters.*): Fix typo in reference to A.3.3(27).
15331 Document No_Exception_Propagation restriction
15332 Document No_Body pragma
15333 Updated to account for Ada 2005 support; corrected some typos
15334 (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
15335
15336 * gnat-style.texi: Make it clear that we never use mode IN for
15337 procedures or functions
15338
15339 * ug_words: Add entries for -gnatw.x and -gnatw.X
15340 Add entries for -gnatw.c/.C
15341
153422007-06-06 Pascal Obry <obry@adacore.com>
15343 Vincent Celier <celier@adacore.com>
15344
15345 * makegpr.adb (Add_Archive_Path): Use untouched object and library
15346 dirs and library name.
15347 (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
15348 comments.
15349 (Build_Library): Idem.
15350 (Compile_Individual_Sources): Idem.
15351 (Compile_Link_With_Gnatmake): Idem.
15352 (Compile_Sources): Idem.
15353 (Get_Imported_Directories): Idem.
15354 (Link_Executables): Idem. Same change for the executable dir.
15355 (Check_Compilation_Needed): C_Source_Path new variable containing
15356 the canonical form of Source_Path to check against the source names
15357 in the dependency file.
15358 (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
15359 verbose mode, display the name of the object directory we're changing
15360 to.
15361 (Saved_Switches): New name of table X_Switches
15362 (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
15363 (Usage): New line for switch -aP
15364 (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
15365 testing if a directory should be added to the search path.
15366
153672007-06-06 Javier Miranda <miranda@adacore.com>
15368
9e81dbc7 15369 * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
ec11296f
AC
15370 a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
15371 declaration after freezing point of all its associated tagged types;
15372 otherwise such types are frozen too early.
15373
153742007-06-06 Robert Dewar <dewar@adacore.com>
15375
15376 * a-reatim.adb: Documentation addition
15377
15378 * g-cgideb.adb: Minor code reorganization
15379
15380 * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
15381 mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
15382 s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
15383
15384 * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
15385 function. Change name New_Scope to Push_Scope
15386 (Get_Debug_Flag_K): Remove unused obsolete function.
15387
15388 * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
15389 Push_Scope.
15390
15391 * makeusg.adb: Update Copyright notice
15392 Add line for switch -aP
15393
15394 * makeusg.adb: Fix wording of some usage messages
15395
15396 * s-assert.adb (Raise_Assert_Failure): Add call to
15397 Debug_Raise_Assert_Failure.
15398
15399 * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
15400 (2, Standard'Alignment) for compatibility with AAMP (where alignment
15401 is restricted to 1).
15402
15403 * s-wchjis.adb: Remove use of System.Pure_Exceptions
15404
15405 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
15406 node location to No_Location when we're not debugging the expanded
15407 code.
15408
dbc30a96
AO
154092007-05-22 Alexandre Oliva <aoliva@redhat.com>
15410
15411 * misc.c (enumerate_modes): Consider log2_b to always be one.
15412
719bb4e3 154132007-05-14 Rafael Ávila de Espíndola <espindola@google.com>
ca5ba2a3
RAE
15414
15415 * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
15416
d7598e11
PO
154172007-05-02 Pascal Obry <obry@adacore.com>
15418
15419 * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
15420 to use Stream_IO.File_Type. This is needed to make use of the UTF-8
15421 encoding support of Stream_IO.
15422 (Write_Unit): Idem.
15423
15424 * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
15425 filename and corresponding encoding to match the OS requirement.
15426 (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
15427 routine will fail on specific devices like CON: AUX: ...
15428
15429 PR ada/29856: Add missing braces
15430
1be52f61
AP
154312007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
15432
15433 PR ada/31660
15434 * ada-tree.h (lang_tree_node): Fix typo in chain_next.
15435
395a40e0
JH
154362007-04-21 Jan Hubicka <jh@suse.cz>
15437
15438 * misc.c (gnat_expand_body): Don't call target for destructors,
15439 avoid redundant check on syntax errors.
15440
3d95caa4
AP
154412007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
15442
15443 * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
15444 instead of checking GIMPLE_STMT_P in chain_next.
15445
ea30850a
AK
154462007-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
15447
15448 PR ada/31576
15449 * system-linux-alpha.ads: Disable constant condition warning for the
15450 Default_Bit_Order variable.
15451 * system-linux-s390.ads: Likewise.
15452 * system-linux-s390x.ads: Likewise.
15453 * system-linux-sparc.ads: Likewise.
15454
4b437c6b
AC
154552007-04-06 Javier Miranda <miranda@adacore.com>
15456 Matt Heaney <heaney@adacore.com>
15457 Robert Dewar <dewar@adacore.com>
15458
15459 a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
15460 a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
15461 a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
15462 a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
15463 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
15464 a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
15465 a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
15466 a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
15467 a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
15468 a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
15469 a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
15470 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
15471 a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
15472 a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
15473 a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
15474 a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
15475 a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
15476 i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
15477 unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
15478 a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
15479 a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
15480 a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
15481 expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
15482 s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
15483 s-taprop-tru64.adb, s-taprop-irix.adb,
15484 s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
15485 s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
15486 s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
9e81dbc7
AS
15487 s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
15488 s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
15489 a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
15490 a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
15491 g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
15492 s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
15493 s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
15494 s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
15495 s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
15496 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
15497 s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
15498 a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
15499 a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
15500 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
4b437c6b 15501 a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
9e81dbc7 15502 a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
4b437c6b
AC
15503 a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
15504 access types.
15505 Update documentation.
15506 Minor rewording.
15507
155082007-04-06 Robert Dewar <dewar@adacore.com>
15509
15510 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
15511 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
15512 system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
15513 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
15514 system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
15515 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
15516 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
15517 system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
15518 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
9e81dbc7 15519 system-hpux-ia64.ads, targparm.adb,
4b437c6b
AC
15520 targparm.ads (Functions_Return_By_DSP_On_Target): Removed
15521
15522 * system.ads: Move Functions_Return_By_DSP to obsolete section,
15523 kept for bootstrap purposes only.
15524
155252007-04-06 Arnaud Charlet <charlet@adacore.com>
15526
15527 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
15528 s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
15529 s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
15530 (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
15531
155322007-04-06 Robert Dewar <dewar@adacore.com>
15533
15534 * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
15535 (Local_Raise): New dummy procedure called when a raise is converted
15536 to a local goto. Used for debugger to detect that the exception
15537 is raised.
15538
15539 * debug.adb: Document new d.g flag (expand local raise statements to
15540 gotos even if pragma Restriction (No_Exception_Propagation) is not set)
15541
15542 * exp_sel.adb: Use Make_Implicit_Exception_Handler
15543
15544 * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
15545 suppress warnings for unused handlers.
15546 (Warn_If_No_Propagation): Use new flag -gnatw.x to suppress
15547 warnings for raise statements not handled locally.
15548 (Get_RT_Exception_Entity): New function
15549 (Get_Local_Call_Entity): New function
15550 (Find_Local_Handler): New function
15551 (Warn_If_No_Propagation): New procedure
15552 (Expand_At_End_Handler): Call Make_Implicit_Handler
15553 (Expand_Exception_Handlers): Major additions to deal with local handlers
15554 (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
15555 Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
15556 for local raise
15557
15558 * exp_ch11.ads (Get_RT_Exception_Entity): New function
15559 (Get_Local_Call_Entity): New function
15560
15561 * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
15562 of restrictions that the binder will never suggest adding.
15563
15564 * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
15565 to No_Elist.
15566
15567 * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
15568 be with'ed in the presence of pragma Restriction
15569 (No_Exception_Propagation).
15570
15571 * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
15572
15573 * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
15574 parameter, then the handler is not a suitable target for a local raise,
15575 and this is a violation of restriction No_Exception_Propagation.
15576 (Analyze_Handled_Statements): Analyze choice parameters in exception
15577 handlers before analyzing statement sequence (needed for proper
15578 detection of local raise statements).
15579 (Analyze_Raise_Statement): Reraise statement is a violation of the
15580 No_Exception_Propagation restriction.
15581
15582 * s-rident.ads: Add new restriction No_Exception_Propagation
15583
15584 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
15585 function, like Make_Exception_Handler but sets Local_Raise_Statements
15586 to No_List.
15587 (Add_Unique_Serial_Number): Deal with case where this is called during
15588 processing of configuration pragmas.
15589
155902007-04-06 Thomas Quinot <quinot@adacore.com>
15591 Pat Rogers <rogers@adacore.com>
15592 Pascal Obry <obry@adacore.com>
15593
15594 * g-stsifd-sockets.adb: New file.
15595
15596 * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
15597 g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
15598 g-socthi-vms.adb: Move signalling
15599 fd management to a nested package, so that they can conveniently be
15600 moved to a subunit that is shared across Windows, VMS, and VxWorks
15601 (Ada implementation) or completed with imported bodies from socket.c
15602 (UNIX case).
15603 (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
15604 subprograms.
15605 (Check_Selector): Use Read_Signalling_Fd to read and discard data from
15606 the signalling file descriptor.
15607 (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
15608 signalling file descriptor.
15609 (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
15610 instead of creating a pair of sockets for signalling here.
15611
15612 * g-socthi.adb: Ditto.
15613 Set the runtime process to ignore SIGPIPEs on platforms that support
15614 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
15615
15616 * g-socthi-mingw.adb: Ditto.
15617 (WS_Version): Use Windows 2.2.
15618 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
15619
15620 * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
15621 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
15622
15623 * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
15624 added GNAT byte swapping facility
15625 Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
15626
15627 * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
15628
15629 * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
15630 New subprograms.
15631 (__gnat_create_signalling_fds): New subprogram.
15632 Set the runtime process to ignore SIGPIPEs on platforms that support
15633 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
15634
156352007-04-06 Hristian Kirtchev <kirtchev@adacore.com>
15636 Vincent Celier <celier@adacore.com>
15637
15638 * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
15639 New version of Ada.Calendar which supports the new upper bound of Ada
15640 time (2399-12-31 86_399.999999999).
15641 The following modifications have been made to the package:
15642 - New representation of time as count of nanoseconds since the start of
15643 Ada time (1901-1-1 0.0).
15644 - Target independent Split and Time_Of routines which service both
15645 Ada 95 and Ada 2005 code.
15646 - Target independent interface to the Ada 2005 children of Calendar.
15647 - Integrated leap seconds into Ada 95 and Ada 2005 mode.
15648 - Handling of non-leap centenial years.
15649 - Updated clock function.
15650 - Updated arithmetic and comparison operators.
15651
15652 * a-caldel.adb (To_Duration): Add call to target independent routine in
15653 Ada.Calendar to handle the conversion of time to duration.
15654
15655 * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
15656 (UTC Offset).
15657 If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
15658 set off to 0.
15659 (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
15660 targets do not have a natural time zone, GMT is used as a default.
15661 (__gnat_get_task_options): New.
15662
15663 * a-direct.adb (Modification_Time): Add with and use clauses for
15664 Ada.Calendar and Ada.
15665 Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
15666 since it is no longer needed.
15667 (Duration_To_Time): Removed.
15668 (OS_Time_To_Long_Integer): Removed.
15669 (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
15670 Formatting Time_Of routines which automatically handle time zones,
15671 buffer periods and leap seconds.
15672
15673 * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
15674 target independent routines in Ada.Calendar.
15675
9e81dbc7 15676 * a-calfor.ads, a-calfor.adb:
4b437c6b
AC
15677 Code cleanup and addition of validity checks in various routines.
15678 (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
15679 Ada.Calendar.
15680
15681 * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
15682 independent routine in Ada.Calendar.
15683
156842007-04-06 Olivier Hainque <hainque@adacore.com>
15685
9e81dbc7 15686 * adaint.c:
4b437c6b
AC
15687 (convert_addresses): Adjust prototype and dummy definition to expect an
15688 extra file_name argument.
15689
15690 * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
15691 filling the now expected file_name argument with the appropriate
15692 argv[0] expansion.
15693 (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
15694 (tracebk): Array of void * instead of char *, corresponding to what
15695 convert_addresses expects.
15696 (exename): New static global, to hold the executable file name to be
15697 used in all convert_addresses invocations.
15698 (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
15699 change.
15700 (__gnat_gmem_a2l_initialize): Resolve exename.
15701 (__gnat_convert_addresses): Use exename as the convert_addresses
15702 file_name argument.
15703
15704 * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
15705 "convert_addresses", now expecting a filename argument. Import the
15706 necessary entities to compute the filename to use and pass it to
15707 convert_addresses.
15708
157092007-04-06 Matt Gingell <gingell@adacore.com>
15710
15711 * system-aix.ads: Back out previous change.
15712 (Functions_Return_By_DSP): Removed
15713
157142007-04-06 Pascal Obry <obry@adacore.com>
15715
15716 * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
15717 or the monotonic used by Ada.Real_Time) to compute the sleep duration
15718 on Windows.
15719
157202007-04-06 Jose Ruiz <ruiz@adacore.com>
15721
15722 * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
15723 function. Its value changes in different VxWorks versions, and it is
15724 now handled by the function __gnat_get_task_options.
15725
15726 * s-taprop-vxworks.adb (Create_Task): Call the function
15727 __gnat_get_task_options to get the required options for creating a task.
15728
157292007-04-06 Pascal Obry <obry@adacore.com>
15730 Thomas Quinot <quinot@adacore.com>
15731
15732 * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
15733 dealing with filename.
15734 (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
15735 filename from a standard string to a wide-string depending on the
15736 encoding value.
15737 (__gnat_freopen): Idem.
15738 (__gnat_current_time): New function (wrapper for time(3) standard C
15739 function).
15740
15741 * g-os_lib.ads (Current_Time): New function. Returns the current
15742 system time as an OS_Time value.
15743
15744 * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
15745 (Monotonic_Clock): Same.
15746
157472007-04-06 Quentin Ochem <ochem@adacore.com>
15748
15749 * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
15750 not on a natural.
15751 (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
15752
157532007-04-06 Jose Ruiz <ruiz@adacore.com>
15754
15755 * a-retide.adb: Add elaboration code to ensure that the tasking run
15756 time is initialized when using delay operations even when no task is
15757 created.
15758
157592007-04-06 Javier Miranda <miranda@adacore.com>
15760
15761 * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
15762 component Num_Prim_Ops.
15763 (Set_Num_Prim_Ops): Removed.
15764 Remove all the assertions because all the routines of this
15765 package are inline always.
15766 (Get_Offset_Index): Add support to primary dispatch tables.
15767 Move the documentation about the dispatch table to a-tags.ads
15768 (Set_External_Tag): Removed
15769 (Inherit_TSD): Removed.
15770 (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
15771 moved to a-tags.ads
15772 (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
15773 Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
15774 of the TSD field "Table" because this field has been renamed to
15775 "Ifaces_Table".
15776 (Inherit_CPP_DT): Removed.
15777 (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
15778 Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
15779 declarations have been moved to a-tags.ads
15780 (Check_Size): Removed.
15781 (Expanded_Name): Updated to get access to the new field of TSD
15782 containing the address of the expanded name.
15783 (Get_Access_Level/Set_Access_Level): Removed.
15784 (Get_Predefined_Prim_Op_Address): Removed.
15785 (Set_Predefined_Prim_Op_Address): Removed.
15786 (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
15787 (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
15788 (Set_Expanded_Name): Removed.
15789 (Inherit_DT): Removed.
15790 (Inherit_CPP_DT): Removed.
15791 (Set_RC_Offset): Removed.
15792 (Set_TSD): Removed.
15793 (Base_Address): New function that displaces "this" to point to the base
15794 of the object (that is, to point to the primary tag of the object).
15795
157962007-04-06 Ed Schonberg <schonberg@adacore.com>
15797 Javier Miranda <miranda@adacore.com>
15798
15799 * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
15800 anonymous access component, do not create a master_id if type already
15801 has one, as may happen if the type is a subcomponent of a packed array
15802 type.
15803 (Build_Init_Procedure, Component_Needs_Simple_Initialization,
15804 Initialize_Tag): Remove code associated with the old CPP pragmas.
15805 CPP_Virtual and CPP_Vtable are no longer supported.
15806 (Build_Offset_To_Top_Internal): Add support for concurrent record types
15807 (Build_Offset_To_Top_Functions): Add support for concurrent record types
15808 (Freeze_Record_Type): Remove call to
15809 Init_Predefined_Interface_Primitives.
15810 (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
15811 code required to initialize the tags of the secondary dispatch tables.
15812 This leaves the algoritm more clear.
15813 (Init_Secondary_Tags): Add support for concurrent record types
15814 (Make_Predefined_Primitive_Specs): Code cleanup.
15815 (Predefined_Primitive_Bodies): Code cleanup.
15816 (Build_Master_Renaming): New local subprogram.
15817 (Expand_N_Full_Type_Declaration): Build the master_id associated with
15818 anonymous access to task type components.
15819 (Expand_N_Subtype_Indication): The bounds of a range constraint in a
15820 subtype indication are resolved during analysis, and must not be done
15821 here.
15822 (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
15823
158242007-04-06 Geert Bosch <bosch@adacore.com>
15825 Ed Schonberg <schonberg@adacore.com>
15826 Javier Miranda <miranda@adacore.com>
15827 Bob Duff <duff@adacore.com>
15828
15829 * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
15830 for conversion of a Float_Type'Truncation to integer.
15831
15832 * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
15833 check if a node is an attribute that can be handled directly by the
15834 back end.
15835 (Expand_N_Attribute_Reference): Suppress expansion of floating-point
15836 attributes that can be handled directly by the back end.
15837 (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
15838 use new predicate Is_Access_Protected_Subprogram_Type.
15839 (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
15840 and Unchecked_Union if it is generated as part of the default Output
15841 procedure for a type with default discriminants.
15842 (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
15843 if we are compiling under restriction No_Dispatching_Calls.
15844 (Constrained): Use Underlying_Type, in case the type is private without
15845 discriminants, but the full type has discriminants.
15846 (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
15847 call to Build_Get_Access_Level.
15848 (Expand_N_Attribute_Reference): The use of 'Address with class-wide
15849 interface objects requires a call to the run-time subprogram that
15850 returns the base address of the object.
15851 (Valid_Conversion): Improve error message on illegal attempt to store
15852 an anonymous access to subprogram value into a record component.
15853
15854 * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
15855 null".
15856 (Simplify_Type_Conversion): New procedure that performs simplification
15857 of Int_Type (Float_Type'Truncation (X)).
15858 (Resolve_Type_Conversion): Call above procedure after resolving operand
15859 and before performing checks. This replaces the existing ineffective
15860 code in Exp_Ch4.
15861 (Set_String_Literal_Subtype): When creating the internal static lower
15862 bound subtype for a string literal, use a newly created copy of the
15863 subtree representing the lower bound.
15864 (Resolve_Call): Exclude build-in-place function calls from transient
15865 scope treatment. Update comments to describe this exception.
15866 (Resolve_Equality_Op): In case of dispatching call check violation of
15867 restriction No_Dispatching_Calls.
15868 (Resolve_Call): If the call returns an array, the context imposes the
15869 component type of the array, and the function has one non-defaulted
15870 parameter, rewrite the call as the indexing of a call with a single
15871 parameter, to handle an Ada 2005 syntactic ambiguity for calls written
15872 in prefix form.
15873 (Resolve_Actuals): If an actual is an allocator for an access parameter,
15874 the master of the created object is the innermost enclosing statement.
15875 (Remove_Conversions): For a binary operator, check if type of second
15876 formal is numeric, to check if an abstract interpretation is present
15877 in the case of exponentiation as well.
15878
158792007-04-06 Ed Schonberg <schonberg@adacore.com>
15880 Bob Duff <duff@adacore.com>
15881
15882 * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
15883 copying a parameter list in a call, set properly the First_Named_Formal
15884 and Next_Named_Formal fields in the new list and in the enclosing call.
15885 (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
15886 names, to ease typing in the debugger. Improve comments.
15887 (Watch_Node): New variable, intended to be set in the debugger.
15888 (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
15889 called when the watched node is created.
15890 (New_Node_Debugging_Output): Combined version of local procedures
15891 New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
15892 with a parameter so that conditional breakpoints like "if Node = 12345"
15893 work.
15894 (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
15895 Add Elist1 function
15896
158972007-04-06 Thomas Quinot <quinot@adacore.com>
15898 Ed Schonberg <schonberg@adacore.com>
15899 Gary Dismukes <dismukes@adacore.com>
15900
15901 * checks.ads, checks.adb (Selected_Range_Checks): No range check is
15902 required for a conversion between two access-to-unconstrained-array
15903 types.
15904 (Expr_Known_Valid): Validity checks do not apply to discriminants, but
15905 to discriminant constraints on discriminant objects. This rule must
15906 apply as well to discriminants of protected types in private components.
15907 (Null_Exclusion_Static_Checks): If No_Initialization is set on an
15908 object of a null-excluding access type then don't require the
15909 the object declaration to have an expression and don't emit a
15910 run-time check.
15911
159122007-04-06 Arnaud Charlet <charlet@adacore.com>
9e94c78f 15913 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
15914
15915 * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
15916 and made constant.
15917
15918 * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
15919 Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
15920 carry any.
15921
15922 * fe.h (Compiler_Abort): Add third parameter.
15923
15924 * misc.c (internal_error_function): Build third argument from current
15925 input location and pass it to Compiler_Abort.
15926
159272007-04-06 Gary Dismukes <dismukes@adacore.com>
15928
15929 * cstand.adb (Create_Standard): When the target's storage unit size is
15930 greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
15931 Standard_String.
15932
159332007-04-06 Nicolas Roche <roche@adacore.com>
15934
15935 * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
15936 absolute path can have the following form: device:/a/b. In this case
15937 '/' should be inserted between the path and the filename.
15938
159392007-04-06 Olivier Hainque <hainque@adacore.com>
9e94c78f 15940 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
15941
15942 * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
15943 VAR_DECL to a CONST_DECL we make for a public constant when we know the
15944 corresponding definition has created the so made visible variable.
15945 Handle anonymous access to protected subprogram.
15946 (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
15947 object with an address clause volatile. Re-enable original fix.
15948 <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
15949 too.
15950 (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
15951 associated with either the Equivalent or Root type, instead of the
15952 naked type node.
15953 (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
15954 subtree for every field of a global record type.
15955 (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
15956 discriminants, invoke again variable_size on its newly computed sizes.
15957
159582007-04-06 Robert Dewar <dewar@adacore.com>
15959 Thomas Quinot <quinot@adacore.com>
15960 Ed Schonberg <schonberg@adacore.com>
15961 Bob Duff <duff@adacore.com>
15962
15963 * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
15964 (Next_Component_Or_Discriminant): New function and procedure
15965 (First_Index, First_Literal, Master_Id,
15966 Set_First_Index, Set_First_Literal, Set_Master_Id):
15967 Add missing Ekind assertions.
15968 (Is_Access_Protected_Subprogram_Type): New predicate.
15969 (Has_RACW): New entity flag, set on package entities to indicate that
15970 the package contains the declaration of a remote accecss-to-classwide
15971 type.
15972 (E_Return_Statement): This node type has the Finalization_Chain_Entity
15973 attribute, in case the result type has controlled parts.
15974 (Requires_Overriding): Add this new flag, because "requires
15975 overriding" is subtly different from "is abstract" (see AI-228).
15976 (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
15977 Is_Abstract_Type. Make sure these are called only when appropriate.
15978 (Has_Pragma_Unreferenced_Objects): New flag
15979
15980 * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
15981 class-wide, the tag of the right-hand side must be an exact match, not
15982 an ancestor of that of the object on left-hand side.
15983 (Move_Activation_Chain): New procedure to create the call to
15984 System.Tasking.Stages.Move_Activation_Chain.
15985 (Expand_N_Extended_Return_Statement): Generate code to call
15986 System.Finalization_Implementation.Move_Final_List at the end of a
15987 return statement if the function's result type has controlled parts.
15988 Move asserts to Build_In_Place_Formal.
15989 (Move_Final_List): New function to create the call statement.
15990 (Expand_N_Assignment_Statement): In case of assignment to a class-wide
15991 tagged type, replace generation of call to the run-time subprogram
15992 CW_Membership by call to Build_CW_Membership.
15993 (Expand_N_Return_Statement): Replace generation of call to the run-time
15994 subprogram Get_Access_Level by call to Build_Get_Access_Level.
15995 (Expand_N_Simple_Function_Return): Replace generation of call to the
15996 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
15997
15998 * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
15999 Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
16000 access to protected operations.
16001 (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
16002 master and chain actual parameters to a build-in-place function call
16003 involving tasks.
16004 (BIP_Formal_Suffix): Add new enumeration literals to complete the case
16005 statement.
16006 (Make_Build_In_Place_Call_In_Allocator,
16007 Make_Build_In_Place_Call_In_Anonymous_Context,
16008 Make_Build_In_Place_Call_In_Assignment,
16009 Make_Build_In_Place_Call_In_Object_Declaration): Call
16010 Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
16011 (Expand_Inlined_Call): If the subprogram is a null procedure, or a
16012 stubbed procedure with a null body, replace the call with a null
16013 statement without using the full inlining machinery, for efficiency
16014 and to avoid invalid values in source file table entries.
16015
16016 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
16017 renamings of calls to build-in-place functions.
16018
16019 * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
16020 provides the functionality of RTE_Available to record components.
16021 (RTU_Entity): The function Entity has been renamed to RTU_Entity
16022 to avoid undesired overloading.
16023 (Entity): New subprogram that returns the entity for the referened
16024 unit. If this unit has not been loaded, it returns Empty.
16025 (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
16026 Remove no longer used entities.
16027 (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
16028 (RE_Type_Specific_Data): New entity.
16029 (RE_Move_Any_Value): New entity.
16030 (RE_TA_A, RE_Get_Any_Type): New entities.
16031 (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
16032 RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
16033 RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
16034 (Entity): New subprogram that returns the entity for the referened
16035 unit. If this unit has not been loaded, it returns Empty.
16036 (RTE): Addition of a new formal that extends the search to the scopes
16037 of the record types found in the chain of the package.
16038
16039 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
16040 "abstract subprograms must be visible" message, whether or not the type
16041 is an interface; that is, remove the special case for interface types.
16042 (Analyze_Function_Return): Remove error message "return of task objects
16043 is not yet implemented" because this is now implemented.
16044 (Create_Extra_Formals): Add the extra master and activation chain
16045 formals in case the result type has tasks.
16046 Remove error message "return of limited controlled objects is not yet
16047 implemented".
16048 (Create_Extra_Formals): Add the extra caller's finalization list formal
16049 in case the result type has controlled parts.
16050 (Process_Formals): In case of access formal types there is no need
16051 to continue with the analysis of the formals if we already notified
16052 errors.
16053 (Check_Overriding_Indicator): Add code to check overriding of predefined
16054 operators.
16055 (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
16056 flags for formals that do not require them,.
16057 (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
16058 hidden entity is use visible or directly visible.
16059 (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
16060 Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
16061 Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
16062 New_Overloaded_Entity): Split Is_Abstract flag into
16063 Is_Abstract_Subprogram and Is_Abstract_Type.
16064
16065 * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
16066 a return statement's finalization list to the caller's list, used for
16067 build-in-place functions with result type with controlled parts.
16068 Remove no longer used entities.
16069
16070 * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
16071 longer needed, because the full type is now limited, and therefore a
16072 pass-by-reference type.
16073 (Foreign_Task_Level): New constant.
16074
16075 * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
16076 move tasks from the activation chain belonging to a return statement to
16077 the one passed in by the caller, and update the master to the one
16078 passed in by the caller.
16079 (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
16080 of unactivated tasks, so we don't kill the ones that are being returned
16081 by a build-in-place function.
16082 (Create_Task): Ignore AI-280 for foreign threads.
16083
160842007-04-06 Ed Schonberg <schonberg@adacore.com>
16085 Robert Dewar <dewar@adacore.com>
16086 Bob Duff <duff@adacore.com>
16087 Gary Dismukes <dismukes@adacore.com>
16088
16089 * errout.adb (Unwind_Internal_Type): Use predicate
16090 Is_Access__Protected_Subprogram_Type.
16091
16092 * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
16093 (Freeze_Entity, packed array case): Do not override explicitly set
16094 alignment and size clauses.
16095 (Freeze_Entity): An entity declared in an outer scope can be frozen if
16096 the enclosing subprogram is a child unit body that acts as a spec.
16097 (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
16098 (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
16099 Remove all code for DSP option
16100
16101 * layout.adb (Layout_Record_Type): Use First/
16102 Next_Component_Or_Discriminant
16103 (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
16104 to handle properly the anonymous access case.
16105
16106 * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
16107 for all access attributes, because overload resolution should work the
16108 same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
16109 causes the error message for the ambiguous "X'Access = Y'Access" and
16110 "X'Unrestricted_Access = Y'Access" and so forth to match.
16111 (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
16112 now that anonymous access to protected operations have their own kind.
16113 (Resolve_Attribute): In case of dispatching call check the violation of
16114 restriction No_Dispatching_Calls.
16115 (Check_Array_Type): Check new -gnatyA array index style option
16116
16117 * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
16118 attempt to derive from a synchronized tagged type.
16119 (Analyze_Type_Declaration): If there is a incomplete tagged view of the
16120 type, inherit the class-wide type already created, because it may
16121 already have been used in a self-referential anonymous access component.
16122 (Mentions_T): Recognize self-referential anonymous access components
16123 that use (a subtype of) the class-wide type of the enclosing type.
16124 (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
16125 Derived_Type for Prev formal on call to
16126 Check_Anonymous_Access_Components rather than Empty.
16127 (Make_Incomplete_Type_Declaration): Add test for case where the type has
16128 a record extension in deciding whether to create a class-wide type,
16129 rather than just checking Tagged_Present.
16130 (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
16131 to stand-alone object declarations as well as component declarations.
16132 (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
16133 prevent accidental overwriting when enclosing package appears in
16134 a limited_with_clause.
16135 (Array_Type_Declaration): If the component type is an anonymous access,
16136 the associated_node for the itype is the type declaration itself.
16137 (Add_Interface_Tag_Components): Modified to support concurrent
16138 types with abstract interfaces.
16139 (Check_Abstract_Interfaces): New subprogram that verifies the ARM
16140 rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
16141 (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
16142 to complete the decoration of synchronized interface types. Add also
16143 a call to Check_Abstract_Interfaces to verify the ARM rules.
16144 (Derive_Interface_Subprograms): Modified to support concurrent types
16145 with abstract interfaces.
16146 (Analyze_Subtype_Indication): Resolve the range with the given subtype
16147 mark, rather than delaying the full resolution depending on context.
16148 (Analyze_Component_Declaration,Analyze_Interface_Declaration,
16149 Analyze_Object_Declaration,Analyze_Subtype_Declaration,
16150 Array_Type_Declaration,Build_Derived_Record_Type,
16151 Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
16152 Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
16153 Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
16154 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
16155 called only when appropriate.
16156 (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
16157 to private type.
16158 (Analyze_Subtype_Declaration): For an access subtype declaration, create
16159 an itype reference for the anonymous designated subtype, to prevent
16160 scope anonmalies in gigi.
16161 (Build_Itype_Reference): New utility, to simplify construction of such
16162 references.
16163
161642007-04-06 Vincent Celier <celier@adacore.com>
16165
16166 * errutil.adb (Initialize): Initialize warnings table, if all warnings
16167 are suppressed, supply an initial dummy entry covering all possible
16168 source locations.
16169
16170 * make.adb (Scan_Make_Arg): Reject options that should start with "--"
16171 and start with only one, such as "-RTS=none".
16172 (Collect_Arguments): Do not check for sources outside of projects.
16173 Do not collect arguments if project is externally built.
16174 (Compile_Sources): Do nothing, not even check if the source is up to
16175 date, if its project is externally built.
16176 (Compile): When compiling a predefined source, add -gnatpg
16177 as the second switch, after -c.
16178 (Compile_Sources): Allow compilation of Annex J renames without -a
16179 (Is_In_Object_Directory): Check if the ALI file is in the object
16180 even if there is no project extension.
16181 (Create_Binder_Mapping_File): Only put a unit in the mapping file for
16182 gnatbind if the ALI file effectively exists.
16183 (Initialize): Add the directory where gnatmake is invoked in front of
16184 the path if it is invoked from a bin directory, even without directory
16185 information, so that the correct GNAT tools will be used when spawned
16186 without directory information.
16187
16188 * makeusg.adb: Change switch -S to -eS
16189 Add lines for new switches -we, -wn and -ws
16190 Add line for new switch -p
16191
16192 * prj-proc.adb (Process): Set Success to False when Warning_Mode is
16193 Treat_As_Error and there are warnings.
16194
16195 * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
16196 -gnatww Change gnatmake switch -S to -eS
16197 (Scan_Make_Switches): Code reorganisation. Process separately multi
16198 character switches and single character switches.
16199 (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
16200 False when switch is not recognized by gnatmake.
16201 (Scan_Make_Switches): Set Setup_Projects True when -p or
16202 --create-missing-dirs is specified.
16203
16204 * fname.adb (Is_Predefined_File_Name): Return True for annex J
16205 renamings Calendar, Machine_Code, Unchecked_Conversion and
16206 Unchecked_Deallocation only when Renamings_Included is True.
16207
16208 * par.adb: Allow library units Calendar, Machine_Code,
16209 Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
16210 when -gnatg is not specified.
16211 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
16212 there is no need to generate always a record_definition_node in case
16213 of synchronized interface types.
16214 (SIS_Entry_Active): Initialize global variable to False
16215 (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
16216 indicate cases where AI-447 says "not null" is legal.
16217
16218 * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
16219
16220 * makegpr.adb (Check_Compilation_Needed): Take into account dependency
16221 files with with several lines starting with the object fileb name.
16222 (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
16223 is specified.
16224 (Initialize): Add the directory where gprmake is invoked in front of the
16225 path, if it is invoked from a bin directory or with directory
16226 information, so that the correct GNAT tools will be used when invoked
16227 directly.
16228 (Check_Compilation_Needed): Process correctly backslashes on Windows.
16229
16230 * vms_data.ads: Update switches/qualifiers
16231
162322007-04-06 Ed Schonberg <schonberg@adacore.com>
16233 Thomas Quinot <quinot@adacore.com>
16234
16235 * exp_aggr.adb:
16236 If the array component is a discriminated record, the array aggregate
16237 is non-static even if the component is given by an aggregate with
16238 static components.
16239 (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
16240 (Convert_Aggr_In_Allocator): If the allocator is for an access
16241 discriminant and the type is controlled. do not place on a finalization
16242 list at this point. The proper list will be determined from the
16243 enclosing object.
16244 (Build_Record_Aggr_Code): If aggregate has box-initialized components,
16245 initialize record controller if needed, before the components, to ensure
16246 that they are properly finalized.
16247 (Build_Record_Aggr_Code): For the case of an array component that has a
16248 corresponding array aggregate in the record aggregate, perform sliding
16249 if required.
16250
162512007-04-06 Javier Miranda <miranda@adacore.com>
16252 Gary Dismukes <dismukes@adacore.com>
16253 Ed Schonberg <schonberg@adacore.com>
16254
16255 * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
16256 run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
16257
16258 * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
16259 accessibility on class-wide allocators if the allocator occurs at the
16260 same scope level as the allocator's type. The check is guaranteed to
16261 succeed in that case, even when the expression originates from a
16262 parameter of the containing subprogram.
16263 (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
16264 under No_Dispatching_Calls restriction. During the semantic analysis
16265 we already notified such violation.
16266 (Tagged_Membership): Constant folding. There is no need to check
16267 the tag at run-time if the type of the right operand is non
16268 class-wide abstract.
16269 Replace call to Is_Ancestor by call to Is_Parent
16270 to support concurrent types with interface types.
16271 (Expand_N_Allocator): Add an assertion associated with the generation
16272 of the master_id.
16273 (Expand_N_Slice): Do not enable range check to nodes associated
16274 with the frontend expansion of the dispatch table.
16275 (Is_Local_Access_Discriminant): Subsidiary function to
16276 Expand_N_Allocator.
16277 (Tagged_Membership): Replace generation of call to the run-time
16278 subprogram CW_Membership by call to Build_CW_Membership.
16279 (Expand_Allocator_Expression): Replace generation of call to the
16280 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
16281
16282 * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
16283 initialize most the TSD components by means of an aggregate.
16284 Modify the declaration of the object containing the TSD
16285 because we now expand code that has a higher level of abstraction.
16286 The TSD has a discriminant containing the Inheritance Depth Level,
16287 value that is used in the membership test but also to fix the size
16288 of the table of ancestors.
16289 (Expand_Interface_Conversion): Insert function body at the closest place
16290 to the conversion expression, to prevent access-before-elaboration
16291 errors in the backend.
16292 Code improved to reduce the size of the dispatch table if
16293 compiling under restriction No_Dispatching_Calls plus code cleanup.
16294 Code reorganization plus removal of calls to Set_Num_Prim_Ops
16295 (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
16296 (Expand_Dispatching_Call): Minor code reorganization plus addition of
16297 code to return immediately if compiling under No_Dispatching_Calls
16298 restriction.
16299 (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
16300 CPP_Virtual and CPP_Vtable are no longer supported.
16301 (Expand_Interface_Conversion): Add missing support for interface type
16302 derivations.
16303 (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
16304 Is_Parent to support concurrent types with interfaces.
16305 (Init_Predefined_Interface_Primitives): Removed.
16306 (Make_Secondary_DT): Modified to support concurrent record types.
16307 (Set_All_DT_Position): Modified to support concurrent record types.
16308 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
16309 with Get_External_Tag, Inherit_TSD, Set_External_Tag.
16310 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
16311 with CW_Membership.
16312 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
16313 with Get_Access_Level, Get_Predefined_Prim_Op_Address,
16314 Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
16315 Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
16316 Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
16317 (Expand_Dispatching_Call): Replace generation of call to the run-time
16318 subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
16319 calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
16320 Address.
16321 (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
16322 the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
16323 Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
16324 Build_Set_Prim_Op_Address.
16325 (Get_Remotely_Callable): Subprogram removed.
16326 (Init_Predefined_Interface_Primitives): Replace generation of call to
16327 the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
16328 Prims.
16329
16330 * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
16331 First (Parameter_Associations ()) with the call to First_Actual that
16332 returns an actual parameter expression for both named and positional
16333 associations.
16334
16335 * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
16336 check violation of restriction No_Dispatching_Calls.
16337 (Check_Controlling_Type): A formal of a tagged incomplete type is a
16338 controlling argument.
16339
16340 * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
16341 First/Next_Component_Or_Discriminant
16342 (Insert_Actions): Add entries for new N_Push and N_Pop nodes
16343 (Find_Implemented_Interface): Removed. All the calls to this subprogram
16344 specify Any_Limited_Interface, and this functionality is already
16345 provided by the function Has_Abstract_Interfaces.
16346 (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
16347 support concurrent types implementing interfaces.
16348 (Find_Implemented_Interface): Removed. All the calls to this subprogram
16349 specify kind Any_Limited_Interface, and this functionality is already
16350 provided by the function Has_Abstract_Interfaces.
16351 (Remove_Side_Effects): replace Controlled_Type by
16352 CW_Or_Controlled_Type whenever the issue is related to
16353 using or not the secondary stack.
16354
16355 * par-ch12.adb (P_Formal_Type_Definition): Update calls to
16356 P_Interface_Type_Definition to fulfill the new interface (the formal
16357 Is_Synchronized is no longer required).
16358
16359 * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
16360 Update dependencies.
16361
16362 * exp_atag.ads, exp_atag.adb: New file
16363
163642007-04-06 Ed Schonberg <schonberg@adacore.com>
16365 Bob Duff <duff@adacore.com>
16366 Cyrille Comar <comar@adacore.com>
16367
16368 * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
16369 anonymous, use finalization list of enclosing dynamic scope.
16370 (Expand_N_Package_Declaration): For a library package declaration
16371 without a corresponding body, generate RACW subprogram bodies in the
16372 spec (just as we do for the task activation call).
16373 (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
16374 Is_Abstract_Type. Make sure these are called only when appropriate.
16375 Remove all code for DSP option
16376 (CW_Or_Controlled_Type): new subprogram.
16377
9e94c78f 163782007-04-06 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
16379 Ed Schonberg <schonberg@adacore.com>
16380 Gary Dismukes <dismukes@adacore.com>
16381
16382 * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
16383 parameter. If it is set to true, return a result capped according to
16384 the global upper bound for the index of an entry family.
16385 (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
16386 (Build_Find_Body_Index): Adjust for above change.
16387 (Entry_Index_Expression): Likewise.
16388 (Is_Potentially_Large_Family): New function extracted from...
16389 (Collect_Entry_Families): ...here. Call it to detect whether the family
16390 is potentially large.
16391 (Build_Entry_Count_Expression): If the family is potentially large, call
16392 Family_Size with 'Cap' set to true.
16393 (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
16394 a protected version of an operation declared in the private part of
16395 a protected object, because they may be invoked through a callback.
16396 (Set_Privals): If the type of a private component is an anonymous access
16397 type, do not create a new itype for each protected body.
16398 If the body of a protected operation creates
16399 controlled types (including allocators for class-widetypes), the
16400 body of the corresponding protected subprogram must include a
16401 finalization list.
16402 (Build_Activation_Chain_Entity): Build the chain entity for extended
16403 return statements.
16404 (Type_Conformant_Parameters): Use common predicate Conforming_Types
16405 to determine whether operation overrides an inherited primitive.
16406 (Build_Wrapper_Spec): Add code to examine the parents while looking
16407 for a possible overriding candidate.
16408 (Build_Simple_Entry_Call): Set No_Initialization on the object used to
16409 hold an actual parameter value since its initialization is separated
16410 from the the declaration. Prevents errors on null-excluding access
16411 formals.
16412
164132007-04-06 Thomas Quinot <quinot@adacore.com>
8a57e48f 16414 Pablo Oliveira <oliveira@adacore.com>
4b437c6b
AC
16415
16416 * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
16417 Do an Unchecked_Conversion to handle the passage from the Underlying
16418 Type to the Base Type when calling Build_To_Any_Call and
16419 Build_From_Any_Call.
16420 (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
16421 E_Constant, depending upon Variable formal.
16422 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
16423 PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
16424 parameter that requires an extra constrained parameter, declare
16425 temporary for actual as a variable, not a constant.
16426 (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
16427 the unit being compiled is the one that contains the stub type.
16428 Change primitive operation name for the RACW associated with a RAS
16429 from Call to _Call so it cannot clash with any legal identifier.
16430 (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
16431 Is_RAS.
16432 (Append_RACW_Bodies): New subprogram.
16433 (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
16434 Add_Receiving_Stubs_To_Declarations functions.
16435 When expanding a package body, this list correspond to the
16436 statements in the HSS at the end of the pacakge.
16437 When expanding a package spec, this list correspond to the
16438 spec declarations.
16439 (Add_Receiving_Stubs_To_Declarations): Append the function
16440 registering the receiving stubs at the end of the 'Stmts' list.
16441 (RCI_Package_Locator): Pass the new Version generic formal when
16442 instantiating a RCI_Locator package.
16443 (Build_From_Any_Function): To compute the High bound for an
16444 unconstrained array actual, we add the Low bound with the length.
16445 Thus we must convert the low bound and the length to an appropriate
16446 type before doing the sum.
16447 (Build_Subprogram_Receiving_Stubs, PolyORB):
16448 * Retrieve the extra formals parameters at the
16449 end of the parameter stream.
16450 * Use Move_Any_Value to write back out parameters
16451 after executing the request as it is more efficient
16452 than Copy_Any_Value.
16453 * Build the any containing Extra Formals with the
16454 appropriate typecode.
16455 (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
16456 empty Component_List.
16457 (Build_Actual_Object_Declaration): New subprogram. Build and insert into
16458 the tree the declaration for an object that serves as actual parameter
16459 in server-side stubs.
16460 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
16461 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
16462 Use Build_Actual_Object_Declaration to prepare the actuals.
16463 (Add_Parameter_To_NVList): Set the parameter mode to In for
16464 Extra Constrained Parameters.
16465 (Build_General_Calling_Stubs): Set the parameter type to boolean for
16466 Extra Constrained parameters.
16467 (Build_To_Any_Function, Build_From_Any_Function,
16468 Built_TypeCode_Function): When Typ is implicit, call the correct
16469 function with the first not implicit parent type.
16470 (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
16471 (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
16472 typecode from the Etype. Therefore we retrieve the correct typecode
16473 with a call to Get_Any_Type.
16474 (Copy_Specification): Do controlling formal type substitution based on
16475 Is_Controlling_Formal flag, instead of caller-provided object type.
16476 (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
16477 a RACW primitive operation, we might get a subprogram declaration for an
16478 ancestor of the RACW designated type (not for the designated type
16479 itself), in the case where this operation is inherited. In this case we
16480 have no easy means of determining the original tagged type for which
16481 the primitive was declared, so instead we now rely on
16482 Copy_Specification to use the Is_Controlling_Formal flag to determine
16483 which formals require type substitution.
16484
164852007-04-06 Robert Dewar <dewar@adacore.com>
16486 Ed Schonberg <schonberg@adacore.com>
16487
16488 * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
16489 GNAT.Current_Exception are not allowed if pragma Restrictions
16490 (No_Exception_Propagation) is set and in any case make the associated
16491 handler unsuitable as a target for a local raise statement.
16492 (Expand_Dispatching_Constructor_Call): Replace generation of call to the
16493 run-time subprogram CW_Membership by call to Build_CW_Membership.
16494 (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
16495 by a function call, a temporary must be created before expanding the
16496 Constructor_Call itself, to prevent out-of-order elaboration in the
16497 back-end when stack checking is enabled..
16498
164992007-04-06 Ed Schonberg <schonberg@adacore.com>
16500
16501 * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
16502 result are the bounds of the left operand, not the right.
16503
165042007-04-06 Ed Schonberg <schonberg@adacore.com>
16505
16506 * exp_strm.adb
16507 (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
16508 discriminant defaults.
16509 (Build_Record_Or_Elementary_Output_Procedure): Ditto.
16510 (Make_Component_List_Attributes): Ditto.
16511
165122007-04-06 Ed Schonberg <schonberg@adacore.com>
16513 Bob Duff <duff@adacore.com>
16514
16515 * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
16516 an association with a box as providing a value even though the
16517 initialization procedure for the type is not available.
16518 (Resolve_Record_Aggregate): Check that a choice of an association with a
16519 box corresponds to a component of the type.
16520 (Resolve_Record_Aggregate): Split Is_Abstract flag into
16521 Is_Abstract_Subprogram and Is_Abstract_Type.
16522
16523 * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
16524 assert.
16525
16526 * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
16527 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
16528 called only when appropriate.
16529
165302007-04-06 Olivier Hainque <hainque@adacore.com>
16531
16532 * g-alleve.ads (Low Level Vector type definitions): Map each to the
16533 associated vector view instead of all to the unsigned char view.
16534
16535 * g-altcon.adb (Generic_Conversions): New internal generic package,
16536 offering facilities for all the Vector/View conversion routines
16537 implemented by this unit.
16538 (To_View/To_Vector - all versions): Reimplemented in a systematic
16539 manner, using the internal Generic_Conversions facilities.
16540
165412007-04-06 Pascal Obry <obry@adacore.com>
16542
16543 * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
16544 string.
16545 (Create): Free the source string before storing the new one.
16546
165472007-04-06 Vincent Celier <celier@adacore.com>
16548
16549 * g-debpoo.adb (Validity): New package with a complete new
16550 implementation of subprograms Is_Valid and Set_Valid.
16551 (Is_Valid): Move to local package Validity
16552 (Set_Valid): Move to local package Validity
16553
165542007-04-06 Arnaud Charlet <charlet@adacore.com>
8a57e48f 16555 Pablo Oliveira <oliveira@adacore.com>
4b437c6b
AC
16556
16557 * g-expect.adb (Get_Command_Output): When expanding the output buffer
16558 we must ensure that there is enough place for the new data we are going
16559 to copy in.
16560
165612007-04-06 Thomas Quinot <quinot@adacore.com>
16562
16563 * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
16564 computation.
16565
165662007-04-06 Jose Ruiz <ruiz@adacore.com>
16567 Vincent Celier <celier@adacore.com>
16568
16569 * gnatcmd.adb (B_Start): Add prefix of binder generated file.
16570 (Stack_String): Add this String that contains the name of the Stack
16571 package in the project file.
16572 (Packages_To_Check_By_Stack): Add this list that contains the packages
16573 to be checked by gnatstack, which are the naming and the stack packages.
16574 (Check_Files): If no .ci files were specified for gnatstack we add all
16575 the .ci files belonging to the projects, including binder generated
16576 files.
16577 (Non_VMS_Usage): Document that gnatstack accept project file switches.
16578 (GNATCmd): Update the B_Start variable if we are in a VMS environment.
16579 Add gnatstack to the list of commands that use project file related
16580 switches, and get the single attribute Switches from the stack package
16581 in a project file when calling gnatstack. Parse the -U flag for
16582 processing files belonging to all projects in the project tree.
16583 Remove all processing for command Setup
16584
16585 * prj-attr.adb: Add new package Stack with single attribute Switches
16586
16587 * vms_conv.ads (Command_Type): Add command Stack.
16588 Move to body declarations that are only used in the body: types Item_Id,
16589 Translation_Type, Item_Ptr, Item and its subtypes.
16590
16591 * vms_conv.adb: (Initialize): Add data for new command Stack.
16592 Add declarations moved from the spec: types Item_Id, Translation_Type,
16593 Item_Ptr, Item and its subtypes.
16594 (Cargs_Buffer): New table
16595 (Cargs): New Boolean global variable
16596 (Process_Buffer): New procedure to create arguments
16597 (Place): Put character in table Buffer or Cargs_Buffer depending on the
16598 value of Cargs.
16599 (Process_Argument): Set Cargs when processing qualifiers for GNAT
16600 COMPILE
16601 (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
16602 empty, for table Cargs_Buffer.
16603 (Initialize): Remove component Setup in Command_List
16604
166052007-04-06 Vincent Celier <celier@adacore.com>
16606
16607 * gprep.adb (Process_Files.Process_One_File): Use full file name when
16608 issuing pragma Source_Reference.
16609
166102007-04-06 Emmanuel Briot <briot@adacore.com>
16611
16612 * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
16613 [[:xdigit:]] character class.
16614 Also raise an exception when an invalid character class is used.
16615
166162007-04-06 Pascal Obry <obry@adacore.com>
16617
16618 * i-cstrea.ads: (fopen): Add encoding parameter.
16619 (freopen): Idem.
16620 Change reference from a-sysdep.c to sysdep.c in comment.
16621 Update copyright notice.
16622 This set of patch add support for the encoding form parameter.
16623
16624 * mingw32.h (S2WSU): New macro to convert from a string to a
16625 wide-string using the UTF-8 encoding. The S2WS macro supports now only
16626 standard 8bits encoding.
16627 (WS2SU): As above but converting from wide-sring to string.
16628 This is needed as it is necessary to have access to both versions in the
16629 runtime for the form parameter encoding support.
16630 This set of patch add support for the encoding form parameter.
16631 (S2WS): Improve implementation to handle cases where the filename is not
16632 UTF-8 encoded. In this case we default to using the current code page
16633 for the conversion.
16634
16635 * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
16636 type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
16637 the constants defined in adaint.h.
16638 (fopen): Add encoding parameter.
16639 (freopen): Idem.
16640
16641 * s-ficobl.ads (AFCB): Add Encoding field to record the filename
16642 encoding. This is needed for the Reset routine (freopen low level-call).
16643
16644 * s-fileio.adb (Open): Decode encoding form parameter and set the
16645 corresponding encoding value into AFCB structure.
16646 (Reset): Pass the encoding value to freopen.
16647 (Close): Move the call to Lock_Task to the beginning of the procedure.
16648
166492007-04-06 Geert Bosch <bosch@adacore.com>
16650 Robert Dewar <dewar@adacore.com>
16651
16652 * i-fortra.ads: Add Double_Complex type.
16653
16654 * impunit.adb: (Is_Known_Unit): New function
16655 Add Gnat.Byte_Swapping
16656 Add GNAT.SHA1
16657 Add new Ada 2005 units
16658 Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
16659 Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
16660 Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
16661 Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
16662
16663 * impunit.ads (Is_Known_Unit): New function
16664
16665 * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
16666 a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
16667 a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
16668 g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
16669 s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
16670 s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
16671 New files.
16672
16673 * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
16674
16675 * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
16676
9e94c78f 166772007-04-06 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
16678 Arnaud Charlet <charlet@adacore.com>
16679
16680 * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
16681 __gnat_adjust_context_for_raise.
16682 (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
16683 implementation of floating point operations as native x86 targets.
16684 So the FPU should be initialized in the same way using finit. Fix
16685 floating point operations accuracy issues.
16686 (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
16687 member in struct sigaction, so as to avoid warning for incompatible
16688 pointer types.
16689
9e94c78f 166902007-04-06 Serguei Rybin <rybin@adacore.com>
4b437c6b
AC
16691
16692 * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
16693 switches from previously loaded tree
16694
166952007-04-06 Thomas Quinot <quinot@adacore.com>
16696
16697 * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
16698 cases where a given dependency has a body or not.
16699 (Write_With_File_Names): New subprogram, common code for the two cases
16700 above.
16701
167022007-04-06 Ed Schonberg <schonberg@adacore.com>
16703 Javier Miranda <miranda@adacore.com>
16704
9e81dbc7 16705 * lib-xref.ads, lib-xref.adb:
4b437c6b
AC
16706 Modify the loop that collects type references, to include interface
16707 types that the type implements. List each of these interfaces when
16708 building the entry for the type.
16709 (Generate_Definition): Initialize component Def and Typ of new entry
16710 in table Xrefs, to avoid to have these components unitialized.
16711 (Output_References): Split Is_Abstract flag into
16712 Is_Abstract_Subprogram and Is_Abstract_Type.
16713 (Generate_Reference): Add barrier to do not generate the warning
16714 associated with Ada 2005 entities with entities generated by the
16715 expander.
16716
167172007-04-06 Robert Dewar <dewar@adacore.com>
16718 Arnaud Charlet <charlet@adacore.com>
16719 Vincent Celier <celier@adacore.com>
16720
16721 * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
16722 Update 'Exception Handling Control' chapter which was outdated.
16723 Minor fix to documentation of -gnatwq
16724 Remove section "Adapting the Run Time to a New C++ Compiler" because
16725 it is now obsolete.
16726 Add passage on need of -nostart-files in some non-ada-main cases.
16727 Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
16728 Update documentation about Interfacing with C++
16729 Add documentation for new gnatmake switch -p
16730 Add missing protocol part in URLs.
16731 Document -gnatyA
16732 Document pragma Compile_Time_Error
16733 Add documentation for Object_Size indicating that stand alone
16734 objects can have a larger size in some cases.
16735 Add node for GNAT.Byte_Swapping, GNAT.SHA1
16736 Update reference to the Ravenscar profile.
16737 Document pragma Unreferenced_Objects
16738
16739 * gnat-style.texi: Fix typo
16740
167412007-04-06 Vincent Celier <celier@adacore.com>
16742
16743 * mlib.adb (Building_Library): Only output "building a library..." in
16744 verbose mode
16745
16746 * mlib-prj.adb (Build_Library): Only output lists of object and ALI
16747 files in verbose mode.
16748
16749 * mlib-utl.adb (Ar): Only output the first object files when not in
16750 verbose mode.
16751 (Gcc): Do not display all the object files if not in verbose mode, only
16752 the first one.
16753
167542007-04-06 Robert Dewar <dewar@adacore.com>
16755
16756 * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
16757 it no longer destroys the contents of Name_Buffer or Name_Len and
16758 non-standard and invalid names are handled better.
16759 (Get_Decoded_Name_String): Improve performance by using
16760 Name_Has_No_Encodings flag in the name table.
16761 (Is_Valid_Name): New function to determine whether a Name_Id is valid.
16762 Used for debugging printouts.
16763
167642007-04-06 Robert Dewar <dewar@adacore.com>
16765 Javier Miranda <miranda@adacore.com>
16766 Bob Duff <duff@adacore.com>
16767
16768 * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
16769 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
16770 there is no need to generate always a record_definition_node in case
16771 of synchronized interface types.
16772 (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
16773 (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
16774 illegal in Ada 95, in cases where it is legal. Change the warnings to
16775 errors in other cases. Don't give the error unless the "not null"
16776 parses properly. Correct the source position at which the error occurs.
16777 (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
16778 P_Null_Exclusion, to suppress "not null" warnings.
16779 (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
16780 associated goto statements.
16781
16782 * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
16783 of END RECORD
16784
16785 * scans.ads (Type_Token_Location): New flag
16786
16787 * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
16788 (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
16789 P_Null_Exclusion, to suppress "not null" warnings.
16790
167912007-04-06 Robert Dewar <dewar@adacore.com>
16792 Javier Miranda <miranda@adacore.com>
16793 Bob Duff <duff@adacore.com>
16794 Vincent Celier <celier@adacore.com>
16795
16796 * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
16797 (Extensions_Allowed): No longer sets Ada_Version
16798 Entry for pragma Unreferenced_Objects
16799
16800 * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
16801 system.tasking if pragma priority used in a procedure
16802 (Analyze_Pragma, case Warning): Handle dot warning switches
16803 (Process_Compile_Time_Warning_Or_Error): New procedure
16804 (Analyze_Pragma): Add processing for Compile_Time_Error
16805 Add support for extra arguments External_Name and Link_Name.
16806 Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
16807 (Process_Import_Or_Interface): Add support for the use of pragma Import
16808 with tagged types.
16809 (Extensions_Allowed): No longer affects Ada_Version
16810 (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
16811 Is_Abstract_Type. Make sure these are called only when appropriate.
16812 Add processing for pragma Unreferenced_Objects
16813
16814 * snames.h, snames.ads, snames.adb: Add entry for pragma
16815 Compile_Time_Error
16816 Add new standard name Minimum_Binder_Options for new gprmake
16817 Add new standard names for gprmake: Archive_Suffix,
16818 Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
16819 Library_Support, Library_Version_Options,
16820 Shared_Library_Minimum_Options,
16821 Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
16822 Change Name_Call to Name_uCall so that it cannot clash with a legal
16823 subprogram name.
16824 Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
16825 Append C_Plus_Plus to convention identifiers as synonym for CPP
16826 Add new standard names Stack and Builder_Switches
16827 Add new standard names: Compiler_Minimum_Options, Global_Config_File,
16828 Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
16829 Run_Path_Option, Toolchain_Version.
16830 Entry for pragma Unreferenced_Objects
16831
16832 * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
16833 switches, without repetition of "eD". Make sure that last character of
16834 -gnatep= switch is not taken as -gnat switch character.
16835 Complete rewrite of circuit for handling saving compilation options
16836 Occasioned by need to support dot switchs for -gnatw, but cleans up
16837 things in general.
16838 -gnatX does not affect Ada_Version
16839 Include -gnatyA in -gnatg style switches
16840
16841 * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
16842 warnings on return objects.
16843 (Warn_On_Useless_Assignment): Exclude warnings on return objects
16844 (Set_Dot_Warning_Switch): New procedure
16845 (Check_References): Add missing case of test for
16846 Has_Pragma_Unreferenced_Objects
16847 (Output_Unreferenced_Messages): Implement effect of new pragma
16848 Unreferenced_Objects, remove special casing of limited controlled
16849 variables.
16850
168512007-04-06 Vincent Celier <celier@adacore.com>
16852
16853 * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
16854 the default project path, initially done during elaboration of the
16855 package.
16856 If the prefix returned by Sdefault is null, get the prefix from a call
16857 to Executable_Prefix_Path.
16858 (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
16859 null.
16860
16861 * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
16862 canonical directory name to open the directory from which files are
16863 retrieved.
16864 (Record_Other_Sources): Idem.
16865 (Locate_Directory): Add the possibility to create automatically missing
16866 directories when Setup_Projects is True.
16867 Call Locate_Directory so that the directory will be created when
16868 Setup_Projects is True, for object dir, library dir, library ALI dir,
16869 library source copy dir and exec dir.
16870
16871 * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
16872 versions of GNAT.
16873
168742007-04-06 Robert Dewar <dewar@adacore.com>
16875
16876 * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
16877 Use First/Next_Component_Or_Discriminant
16878 (Analyze_Record_Representation_Clause):
16879 Use First/Next_Component_Or_Discriminant
16880 (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
16881 (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
16882 definition if type is unconstrained.
16883 (Adjust_Record_For_Reverse_Bit_Order): New procedure
16884 (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
16885 Is_Abstract_Subprogram and Is_Abstract_Type.
16886 (Adjust_Record_For_Reverse_Bit_Order): New procedure
16887
16888 * repinfo.adb (List_Record_Info): Use First/
16889 Next_Component_Or_Discriminant.
16890
16891 * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
16892 New procedure.
16893
16894 * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
16895 Include -gnatyA in default switches
16896
16897 * opt.ads: (Warn_On_Non_Local_Exception): New flag
16898 (Warn_On_Reverse_Bit_Order): New flag
16899 (Extensions_Allowed): Update the documentation.
16900 (Warn_On_Questionable_Missing_Parens): Now on by default
16901
16902 * usage.adb: Add documentation of -gnatw.x/X switches
16903 Document new -gnatyA style switch
16904 -gnatq warnings are on by default
16905
169062007-04-06 Ed Falis <falis@adacore.com>
16907
16908 * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
16909 full word is no longer compared twice.
16910
169112007-04-06 Ed Schonberg <schonberg@adacore.com>
16912
16913 * sem_ch10.adb (Install_Limited_Context_Clauses.
16914 Expand_Limited_With_Clause): Use a new copy of selector name in the
16915 call to Make_With_Clause. This fixes the tree structure for ASIS
16916 purposes. Nothing is changed in the compiler behaviour.
16917 (Process_Body_Clauses): Handle properly use clauses whose prefix is
16918 a package renaming.
16919 (Install_Limited_With_Clauses): Do not install non-limited view when it
16920 is still incomplete.
16921
169222007-04-06 Ed Schonberg <schonberg@adacore.com>
16923 Gary Dismukes <dismukes@adacore.com>
16924
16925 * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
16926 when capturing size information, instead of base type, which for a
16927 formal array type will be the unconstrained type.
16928 (Analyze_Formal_Object_Declaration): Add check for illegal default
16929 expressions for a formal in object of a limited type.
16930 (Instantiate_Object): Ditto.
16931 (Check_Formal_Package_Instance): Skip entities that are formal objects,
16932 because they were defaulted in the formal package and no check applies
16933 to them.
16934 (Check_Formal_Package_Instance): Extend conformance check to other
16935 discrete types beyond Integer.
16936 (Process_Default): Copy directly the unmatched formal. A generic copy
16937 has already been performed in Analyze_Formal_Package.
16938 (Analyze_Associations): If a formal subprogram has no match, check for
16939 partial parametrization before looking for a default, to prevent
16940 spurious errors.
16941 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
16942 not set the instantiation environment before analyzing the actuals.
16943 Fixes regression on 8515-003 with implementation of AI-133.
16944 Set_Instance_Env checks whether the generic unit is a predefined
16945 unit, in which case the instance must be analyzed with the latest Ada
16946 mode. This setting must take place after analysis of the actuals,
16947 because the actuals must be analyzed and frozen in the Ada mode extant
16948 outside of the current instantiation.
16949 (Save_Env, Restore_Env): Preserve and restore the configuration
16950 parameters so that predefined units can be compiled in the proper Ada
16951 mode.
16952 (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
16953 Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
16954 and Is_Abstract_Type.
16955 (Analyze_Formal_Package): For better error recovery, Add exception
16956 handler to catch Instantion_Error, which can be raised in
16957 Analyze_Associations
16958
169592007-04-06 Ed Schonberg <schonberg@adacore.com>
16960 Bob Duff <duff@adacore.com>
16961 Gary Dismukes <dismukes@adacore.com>
16962
16963 * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
16964 prefix type is a discriminated subtype of the type of the formal.
16965 (Analyze_Allocator): Collect all coextensions regardless of the context.
16966 Whether they can be allocated statically is determined in exp_ch4.
16967 (Analyze_Selected_Component): If the prefix is a limited view and the
16968 non-limited view is available, use the non-limited one.
16969 (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
16970 therefore illegal), suggest a qualified expression rather than a type
16971 conversion, because a type conversion would be illegal in this context.
16972 (Anayze_Allocator): Trace recursively all nested allocators so that all
16973 coextensions are on the corresponding list for the root. Do no mark
16974 coextensions if the root allocator is within a declaration for a stack-
16975 allocated object, because the access discriminants will be allocated on
16976 the stack as well.
16977 (Analyze_Call): Remove restriction on calls to limited functions for the
16978 cases of generic actuals for formal objects, defaults for formal objects
16979 and defaults for record components.
16980 (Analyze_Allocator): Before analysis, chain coextensions on the proper
16981 element list. Their expansion is delayed until the enclosing allocator
16982 is processed and its finalization list constructed.
16983 (Try_Primitive_Operation): If the prefix is a concurrent type, looks
16984 for an operation with the given name among the primitive operations of
16985 the corresponding record type.
16986 (Analyze_Selected_Component): If the prefix is a task type that
16987 implements an interface, and there is no entry with the given name,
16988 check whether there is another primitive operation (e.g. a function)
16989 with that name.
16990 (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
16991 properly the indexing of a function call written in prefix form, where
16992 the function returns an array type, and all parameters of the function
16993 except the first have defaults.
16994 (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
16995 the original operands, rather than relocating them, for efficiency and
16996 to work properly when an operand is overloaded.
16997 (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
16998 Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
16999 (Analyze_Selected_Component): If the prefix is a private extension, only
17000 scan the visible components, not those of the full view.
17001 (Try_Primitive_Operation): If the operation is a procedure, collect all
17002 possible interpretations, as for a function, because in the presence of
17003 classwide parameters several primitive operations of the type can match
17004 the given arguments.
17005
170062007-04-06 Ed Schonberg <schonberg@adacore.com>
17007 Robert Dewar <dewar@adacore.com>
17008
17009 * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
17010 tag-indeterminate call to an abstract function, when the left-hand side
17011 is not classwide.
17012 (Analyze_Loop_Statement): Improve detection of infinite loops
17013
170142007-04-06 Ed Schonberg <schonberg@adacore.com>
17015 Thomas Quinot <quinot@adacore.com>
17016
17017 * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
17018 out of Analyze_Package_Declaration, because processing must be applied
17019 to package bodies as well, for deferred constants completed by pragmas.
17020 (Analyze_Package_Declaration): When the package declaration being
17021 analyzed does not require an explicit body, call Check_Completion.
17022 (May_Need_Implicit_Body): An implicit body is required when a package
17023 spec contains the declaration of a remote access-to-classwide type.
17024 (Analyze_Package_Body): If the package contains RACWs, append the
17025 pending subprogram bodies generated by exp_dist at the end of the body.
17026 (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
17027 Is_Abstract_Subprogram and Is_Abstract_Type.
17028 (Preserve_Full_Attributes): The full entity list is not an attribute
17029 that must be preserved from full to partial view.
17030
9e81dbc7
AS
17031 * sem_dist.adb (Add_RAS_Dereference_TSS):
17032 Change primitive name to _Call so it cannot clash with any legal
17033 identifier, and be special-cased in Check_Completion.
17034 Mark the full view of the designated type for the RACW associated with
17035 a RAS as Comes_From_Source to get proper view switching when installing
17036 private declarations.
17037 Provite a placeholder nested package body along with the nested spec
17038 to have a place for Append_RACW_Bodies to generate the calling stubs
17039 and stream attributes.
4b437c6b
AC
17040
170412007-04-06 Ed Schonberg <schonberg@adacore.com>
17042 Robert Dewar <dewar@adacore.com>
17043
17044 * sem_ch8.adb (Has_Components): If the argument is an incomplete type
17045 that is a limited view, check the non-limited view if available.
17046 (Undefined): Refine error message for missing with of Text_IO
17047 (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
17048 to distinguish real missing with cases.
17049 Fix format of all missing with messages
17050 (Analyze_Subprogram_Renaming): Emit proper error message on illegal
17051 renaming as body when renamed entity is abstract.
17052
170532007-04-06 Ed Schonberg <schonberg@adacore.com>
17054 Javier Miranda <miranda@adacore.com>
17055
17056 * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
17057 predicate recursive, to handle complex expressions on literals whose
17058 spurious ambiguity comes from the abstract interpretation of some
17059 subexpression.
17060 (Interface_Present_In_Ancestor): Add support to concurrent record
17061 types.
17062 (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
17063 Is_Abstract_Subprogram and Is_Abstract_Type.
17064
170652007-04-06 Ed Schonberg <schonberg@adacore.com>
17066 Javier Miranda <miranda@adacore.com>
17067
17068 * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
17069 dereference of a local object R created as a reference to another
17070 object O, use the access level of O.
17071 (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
17072 rather than local Same_Formal_Type, to check whether protected operation
17073 overrides an inherited one.
17074 (Same_Formal_Type): New predicate, used when matching signatures of
17075 overriding synchronized operations, to handle the case when a formal
17076 has a type that is a generic actual.
17077 (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
17078 predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
17079 (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
17080 syntactic ambiguities involving indexing of function calls that return
17081 arrays.
17082 (Abstract_Interface_List): New subprogram that returns the list of
17083 abstract interfaces associated with a concurrent type or a
17084 concurrent record type.
17085 (Interface_Present_In_Parent): New subprogram used to check if a
17086 given type or some of its parents implement a given interface.
17087 (Collect_Abstract_Interfaces): Add support for concurrent types
17088 with interface types.
17089 (Has_Abstract_Interfaces): Add support for concurrent types with
17090 interface types.
17091 (Is_Parent): New subprogram that determines whether E1 is a parent
17092 of E2. For a concurrent type its parent is the first element of its
17093 list of interface types; for other types this function provides the
17094 same result than Is_Ancestor.
17095 (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
17096 (Collect_Synchronized_Interfaces): Removed because the subprogram
17097 Collect_Abstract_Interfaces provides this functionality.
17098 (Collect_Abstract_Interfaces): Minor update to give support to
17099 concurrent types and thus avoid undesired code duplication.
17100 (Get_Subprogram_Entity): Handle entry calls.
17101 (May_Be_Lvalue): Include actuals that appear as in-out parameters in
17102 entry calls.
17103 (Enter_Name): Do not give -gnatwh hiding warning for record component
17104 entities, they never result in hiding.
17105
171062007-04-06 Ed Schonberg <schonberg@adacore.com>
17107 Robert Dewar <dewar@adacore.com>
17108
17109 * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
17110 to chain nested components that are allocators for access discriminants
17111 of the enclosing object.
17112 Add N_Push and N_Pop nodes
17113 New field Exception_Label added
17114 (Local_Raise_Statements): New field in N_Exception_Handler_Node
17115 (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
17116 (Is_Coextension): New flag for allocators, to mark allocators that
17117 correspond to access discriminants of dynamically allocated objects.
17118 (N_Block_Statement): Document the fact that the corresponding entity
17119 can be an E_Return_Statement.
17120 (Is_Coextension): New flag for allocators.
17121 Remove all code for DSP option
17122
17123 * sprint.ads, sprint.adb: Display basic information for class_wide
17124 subtypes. Add handling of N_Push and N_Pop nodes
17125
171262007-04-06 Arnaud Charlet <charlet@adacore.com>
17127
17128 * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
17129 before propagating exception.
17130
171312007-04-06 Olivier Hainque <hainque@adacore.com>
17132
17133 * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
17134 an address always within the call instruction from a return address.
17135
171362007-04-06 Olivier Hainque <hainque@adacore.com>
9e94c78f 17137 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
17138
17139 * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
17140 expression with a COMPOUND_EXPR including the call instead of emitting
17141 the call directly here.
17142 (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
17143 high bound is constant and the slice is empty. Tidy.
17144 (tree_transform, case N_Op_Not): Handle properly the case where the
17145 operation applies to a private type whose full view is a modular type.
17146 (Case_Statement_To_gnu): If an alternative is an E_Constant with an
17147 Address_Clause, use the associated Expression as the GNAT tree
17148 representing the choice value to ensure the corresponding GCC tree is
17149 of the proper kind.
17150 (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
17151 instead of just the operands, as the base GCC stabilize_reference does.
17152 <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
17153 requested; otherwise fail.
17154 (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
17155
171562007-04-06 Thomas Quinot <quinot@adacore.com>
17157
17158 * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
17159 implementation of UI_Div.
17160 (UI_Div): Reimplement as a call to UI_Div_Rem.
17161 (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
17162 remainder, avoiding the cost of a multiplication and a subtraction.
17163 (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
17164 provides both quotient and remainder in a single computation.
17165 (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
17166 functions for uint.
17167 (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
17168 is undefined if the given n is not inversible.
17169
171702007-04-06 Olivier Hainque <hainque@adacore.com>
17171
17172 * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
17173 BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
17174 opcodes.
17175
9e94c78f 171762007-04-06 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
17177 Olivier Hainque <hainque@adacore.com>
17178
17179 * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
17180 when updating the contents of the old pointer to an unconstrained array.
17181 (end_subprog_body): Set error_gnat_node to Empty.
17182 (write_record_type_debug_info): Do not be unduly sparing with our bytes.
17183 (unchecked_convert): For subtype to base type conversions, require that
17184 the source be a subtype if it is an integer type.
17185 (builtin_decls): New global, vector of available builtin functions.
17186 (gnat_pushdecl): Add global builtin function declaration nodes to the
17187 builtin_decls list.
17188 (gnat_install_builtins): Adjust comments.
17189 (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
17190 calling gnat_pushdecl, so that it knows when it handed a builtin
17191 function declaration node.
17192 (builtin_decl_for): Search the builtin_decls list.
17193
9e94c78f 171942007-04-06 Eric Botcazou <botcazou@adacore.com>
4b437c6b 17195
9e81dbc7 17196 * s-stchop-vxworks.adb:
4b437c6b
AC
17197 (Stack_Check): Raise Storage_Error if the argument has wrapped around.
17198
171992007-04-06 Robert Dewar <dewar@adacore.com>
17200 Arnaud Charlet <charlet@adacore.com>
17201
17202 * a-diroro.ads: Inserted the pragma Unimplemented_Unit
17203
17204 * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
17205 of files
17206 Add mention of -Sev (set initialize_scalars option from environment
17207 variable at run time) in gnatbind usage message.
17208
17209 * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
17210
17211 * fname-uf.ads: Minor comment fix
17212
17213 * osint.ads: Change pragma Elaborate to Elaborate_All
17214
17215 * par-load.adb: Add documentation.
17216
17217 * sem_cat.ads, sem_cat.adb: Minor code reorganization
17218
17219 * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
17220
17221 * s-secsta.ads: Extra comments
17222
17223 * s-soflin.ads: Minor comment fixes
17224
17225 * s-stratt.ads (Block_Stream_Ops_OK): Removed.
17226
17227 * s-wchcon.ads: Minor comment addition
17228
17229 * treepr.adb: Minor change in message
17230 (Print_Name,Print_Node): Make these debug printouts more robust: print
17231 "no such..." instead of crashing on bad input.
17232
719bb4e3 172332007-03-30 Rafael Ávila de Espíndola <espindola@google.com>
47ecd38d
RAE
17234
17235 * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
17236 instead of gnat_signed_or_unsigned_type.
17237 * utils.c (gnat_signed_or_unsigned_type): Remove.
17238 * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
17239 * gigi.h (gnat_signed_or_unsigned_type): Remove
17240
9645c3c5
RS
172412007-03-09 Roger Sayle <roger@eyesopen.com>
17242
17243 * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
17244 fold with the result of buildN.
17245 * decl.c (gnat_to_gnu_entity): Likewise.
17246 * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
17247 * utils.c (finish_record_type, merge_sizes, max_size, convert):
17248 Likewise.
17249 * utils2.c (gnat_truthvalue_conversion, compare_arrays,
17250 nonbinary_modular_operation, build_binary_op, build_unary_op,
17251 build_cond_expr): Likewise.
17252
17253 * utils.c (convert): Use fold_build1 when casting values to void.
17254 * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
17255 fold_convert instead of convert when appropriate.
17256
c279aa90
BM
172572007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
17258
17259 * Make-lang.in: Add install-pdf target as copied from
17260 automake v1.10 rules.
17261
c2615f30
AS
172622007-02-28 Andreas Schwab <schwab@suse.de>
17263
17264 * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
17265 $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
17266 (doc/gnat-style.info): Likewise.
17267
7771bb62
BM
172682007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
17269
17270 * gnat-style.texi: Standardize title page.
17271 * gnat_rm.texi: Likewise.
17272 * gnat_ugn.texi: Likewise.
17273
ae19c041
MM
172742007-02-25 Mark Mitchell <mark@codesourcery.com>
17275
17276 * decl.c (annotate_value): Adjust for refactoring of tree_map
17277 hierarchy.
17278
fc8600f9
MM
172792007-02-24 Mark Mitchell <mark@codesourcery.com>
17280
17281 * decl.c (annotate_value): Adjust for refactoring of tree_map
17282 hierarchy.
17283
c0bca7e1
EB
172842007-02-21 Ed Schonberg <schonberg@adacore.com>
17285
17286 PR ada/18819
17287 * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
17288 untagged derived type, add hidden components to keep discriminant
17289 layout consistent, when a given discriminant of the derived type
17290 constraints several discriminants of the parent type.
17291
9f3432b8 172922007-02-16 Eric Botcazou <ebotcazou@adacore.com>
6f7f72f9 17293 Sandra Loosemore <sandra@codesourcery.com>
9f3432b8
EB
17294
17295 * trans.c (call_to_gnu): Use build_call_list instead of build3 to
17296 build the call expression.
17297 (gnat_stabilize_reference_1): Handle tcc_vl_exp.
17298 * utils.c (max_size) <tcc_exceptional>: Delete.
17299 <tcc_vl_exp>: New case.
17300 <tcc_expression>: Delete CALL_EXPR subcase.
17301 (build_global_cdtor): Use build_call_nary instead of build3.
17302 * utils2.c (build_call_1_expr): Likewise.
17303 (build_call_2_expr): Likewise.
17304 (build_call_0_expr): Likewise.
17305 (build_call_alloc_dealloc): Likewise.
17306
8438091f
AK
173072007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
17308
17309 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
9e81dbc7 17310 get_action_description_for): Replace _Unwind_Word with _uleb128_t
8438091f
AK
17311 and _Unwind_SWord with _sleb128_t.
17312
0802f6a2
PB
173132007-02-06 Paolo Bonzini <bonzini@gnu.org>
17314
17315 * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
17316 * decl.c: Include gt-ada-decl.h.
17317 (annotate_value_cache): New.
17318 (annotate_value): Use it instead of TREE_COMPLEXITY.
17319
326f9a75
KH
173202007-02-03 Kazu Hirata <kazu@codesourcery.com>
17321
17322 * misc.c, utils2.c: Fix comment typos.
17323
cd259a98
RS
173242007-01-24 Roger Sayle <roger@eyesopen.com>
17325
17326 * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
17327 TREE_CONSTANT_OVERFLOW.
17328 (allocatable_size_p, annotate_value): Likewise.
17329 * trans.c (gnat_to_gnu): Likewise.
17330 * utils.c (unchecked_convert): Likewise.
17331 * utils2.c (build_simple_component_ref): Likewise.
17332
5305be7e
RG
173332007-01-23 Richard Guenther <rguenther@suse.de>
17334
17335 PR bootstrap/30541
17336 * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
17337 (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
17338 (gnatboot3): Likewise.
17339 (GNATBIND): Do not define.
17340 * Makefile.in (GNATBIND): Do not define.
17341
2ac7cbb5
RG
173422007-01-08 Richard Guenther <rguenther@suse.de>
17343
17344 * cuintp.c (build_cst_from_int): Use built_int_cst_type.
17345 * trans.c (gnat_to_gnu): Likewise.
17346
2989d30c
GK
173472006-12-07 Geoffrey Keating <geoffk@apple.com>
17348
17349 * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
17350 * adaint.c: Likewise.
17351
5848e34a
EB
173522006-12-05 Aldy Hernandez <aldyh@redhat.com>
17353
6f7f72f9 17354 Merge from gimple-tuples-branch:
5848e34a 17355 2006-11-02 Aldy Hernandez <aldyh@redhat.com>
6f7f72f9 17356
5848e34a
EB
17357 * ada-tree.h (lang_tree_node): Handle gimple tuples.
17358 * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
17359 GIMPLE_MODIFY_STMT.
17360
d3c56bc8
KH
173612006-12-02 Kazu Hirata <kazu@codesourcery.com>
17362
17363 * Makefile.in, mingw32.h, trans.c: Fix comment typos.
17364 * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
17365 Fix typos.
17366
9fa25ead
EB
173672006-11-17 Eric Botcazou <ebotcazou@adacore.com>
17368
17369 PR ada/27936
17370 * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
17371 if the initializer takes into account the padding.
17372
f9f770a8
RG
173732006-11-11 Richard Guenther <rguenther@suse.de>
17374
17375 * trans.c (maybe_stabilize_reference): Remove handling of
17376 FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
17377
75c0ed05
AC
173782006-11-05 Arnaud Charlet <charlet@adacore.com>
17379
ed41063a 17380 PR ada/29707
75c0ed05
AC
17381 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
17382 (To_Target_Priority): New function.
75c0ed05 17383
70198b9f
AC
173842006-10-31 Robert Dewar <dewar@adacore.com>
17385
17386 * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
17387 a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
17388 s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
17389 a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
17390 a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
17391 a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
17392 a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
17393 a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
17394 a-szbzha.adb: Minor reformatting. Fix header.
17395
17396 * a-numaux-x86.adb: Add parentheses for use of unary minus
17397 * a-ngcefu.adb: Supply missing parentheses for unary minus
17398 * a-ngcoty.adb: Add parens for use of unary minus
17399 * a-ngelfu.adb: Add missing parens for unary minus
17400 * a-tifiio.adb: Add parentheses for uses of unary minus
17401
174022006-10-31 Robert Dewar <dewar@adacore.com>
17403 Bob Duff <duff@adacore.com>
17404 Ed Schonberg <schonberg@adacore.com>
17405
6f7f72f9 17406 * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
70198b9f
AC
17407 with multiplying operator.
17408 (Expected_Type_Is_Any_Real): New function to determine from the Parent
17409 pointer whether the context expects "any real type".
17410 (Resolve_Arithmetic_Op): Do not give an error on calls to the
17411 universal_fixed "*" and "/" operators when they are used in a context
17412 that expects any real type. Also set the type of the node to
17413 Universal_Real in this case, because downstream processing requires it
17414 (mainly static expression evaluation).
17415 Reword some continuation messages
17416 Add some \\ sequences to continuation messages
17417 (Resolve_Call): Refine infinite recursion case. The test has been
17418 sharpened to eliminate some false positives.
17419 Check for Current_Task usage now includes entry barrier, and is now a
17420 warning, not an error.
17421 (Resolve): If the call is ambiguous, indicate whether an interpretation
17422 is an inherited operation.
17423 (Check_Aggr): When resolving aggregates, skip associations with a box,
17424 which are priori correct, and will be replaced by an actual default
17425 expression in the course of expansion.
17426 (Resolve_Type_Conversion): Add missing support for conversion from
17427 a class-wide interface to a tagged type. Minor code cleanup.
17428 (Valid_Tagged_Converion): Add support for abstact interface type
17429 conversions.
17430 (Resolve_Selected_Component): Call Generate_Reference here rather than
17431 during analysis, and use May_Be_Lvalue to distinguish read/write.
17432 (Valid_Array_Conversion): New procedure, abstracted from
17433 Valid_Conversion, to incorporate accessibility checks for arrays of
17434 anonymous access types.
17435 (Valid_Conversion): For a conversion to a numeric type occurring in an
17436 instance or inlined body, no need to check that the operand type is
17437 numeric, since this has been checked during analysis of the template.
17438 Remove legacy test for scope name Unchecked_Conversion.
17439
17440 * sem_res.ads: Minor reformatting
17441
17442 * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
17443 (PE_Current_Task_In_Entry_Body): New exception code
17444 (SE_Restriction_Violation): Removed, not used
17445
17446 * a-except.ads: Update comments.
17447
17448 * types.h, types.ads: Add definition for Validity_Check
17449 (PE_Current_Task_In_Entry_Body): New exception code
17450 (SE_Restriction_Violation): Removed, not used
17451
174522006-10-31 Thomas Quinot <quinot@adacore.com>
17453
17454 * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
17455 error status.
17456
174572006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
17458 Jose Ruiz <ruiz@adacore.com>
17459
17460 * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
17461 part of Ada.Calendar: all subprogram raise Unimplemented.
17462 (Split_W_Offset): Temp function body, raising Unimplemented
17463
9e81dbc7 17464 * a-calend.ads, a-calend-vms.ads:
70198b9f
AC
17465 Add imported variable Invalid_TZ_Offset used to designate targets unable
17466 to support time zones.
17467 (Unimplemented): Temporary function raised by the body of new
17468 subprograms below.
17469 (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
17470 unit provides handling of leap seconds and is used by the new Ada 2005
17471 packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
17472 (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
17473 version returns an extra value which is the offset to UTC.
17474
17475 * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
17476 (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
17477 (Split_W_Offset): New function body.
17478 (Time_Of): When a date is close to UNIX epoch, compute the time for
17479 that date plus one day (that amount is later substracted after
17480 executing mktime) so there are no problems with time zone adjustments.
17481
17482 * a-calend-mingw.adb: Remove Windows specific version no longer needed.
17483
17484 * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
17485 a-catizo.ads, a-catizo.adb: New files.
17486
6f7f72f9 17487 * impunit.adb: Add new Ada 2005 entries
70198b9f
AC
17488
17489 * sysdep.c: Add external variable __gnat_invalid_tz_offset.
17490 Rename all occurences of "__gnat_localtime_r" to
17491 "__gnat_localtime_tzoff".
17492 (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
17493 zone data and calculate the GMT offset.
17494 (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
17495 Use the field "tm_gmtoff" to extract the GMT offset.
17496 (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
17497 the external variable "timezone" to calculate the GMT offset.
17498
174992006-10-31 Arnaud Charlet <charlet@adacore.com>
17500 Jose Ruiz <ruiz@adacore.com>
17501
9e81dbc7
AS
17502 * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
17503 s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
70198b9f
AC
17504 s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
17505 s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
17506 System.Any_Priority to a POSIX priority on the target.
17507
9e81dbc7 17508 * system-linux-ia64.ads:
70198b9f
AC
17509 Extend range of Priority types on Linux to use the whole range made
17510 available by the system.
17511
17512 * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
17513 function maps from System.Any_Priority to a POSIX priority on the
17514 target.
17515 (PTHREAD_PRIO_PROTECT): Set real value.
17516 (PTHREAD_PRIO_INHERIT): Now a function.
17517 (SIGCPUFAIL): New signal.
17518 (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
17519 are documented as reserved by the OS.
17520
17521 * system-aix.ads: Use the full range of priorities provided by the
17522 system on AIX.
17523
17524 * s-taprop-posix.adb: Call new function To_Target_Priority.
17525 (Set_Priority): Take into account Task_Dispatching_Policy and
17526 Priority_Specific_Dispatching pragmas when determining if Round Robin
17527 must be used for scheduling the task.
17528
9e81dbc7 17529 * system-linux-x86_64.ads, system-linux-x86.ads,
70198b9f
AC
17530 system-linux-ppc.ads: Extend range of Priority types on Linux to use
17531 the whole range made available by the system.
17532
9e81dbc7
AS
17533 * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
17534 s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
70198b9f
AC
17535 s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
17536 when deallocating the TCB in order to avoid potential references to
17537 deallocated data.
17538 (Set_Priority): Take into account Task_Dispatching_Policy and
17539 Priority_Specific_Dispatching pragmas when determining if Round Robin
17540 or FIFO within priorities must be used for scheduling the task.
17541
17542 * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
17543 the Thread field (to be used internally by the run-time system) and the
17544 kernel-level task id in the LWP field (to be used by the debugger).
17545 (Create_Task): Reorganize to unify the calls to taskSpawn into a single
17546 instance, and propagate the current task options to the spawned task.
17547 (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
17548 (Initialize): Set Round Robin dispatching when the corresponding pragma
17549 is in effect.
17550
175512006-10-31 Robert Dewar <dewar@adacore.com>
17552
9e81dbc7
AS
17553 * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
17554 system-linux-hppa.ads, system-hpux-ia64.ads,
17555 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
17556 system-vxworks-sparcv9.ads, system-solaris-x86.ads,
17557 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
17558 system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
17559 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
17560 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
70198b9f
AC
17561 system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
17562 Default_Bit_Order) to kill constant condition warnings for references
17563 to this switch.
17564
175652006-10-31 Vincent Celier <celier@adacore.com>
17566 Eric Botcazou <ebotcazou@adacore.com>
17567
17568 * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
17569 mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
17570 mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
17571 Ext_To, when building the library file name
17572
17573 * mlib-tgt-vxworks.adb: ditto.
17574 (Get_Target_Suffix): Add support for x86 targets.
17575
17576 * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
17577
9e81dbc7 17578 * mlib-tgt-darwin.adb:
70198b9f
AC
17579 Use Append_To, instead of Ext_To, when building the library file name
17580 (Flat_Namespace): New global variable.
17581 (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
17582 (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
17583 (Link_Shared_Libgcc): Delete.
17584 (Build_Dynamic_Library): Adjust for above changes.
17585 Use Opt package.
17586 (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
17587
175882006-10-31 Eric Botcazou <ebotcazou@adacore.com>
17589
17590 * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
17591 (Initialize): Add type conversions required by above change.
17592
175932006-10-31 Jose Ruiz <ruiz@adacore.com>
17594
9e81dbc7 17595 * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
70198b9f
AC
17596 (getpid): New body for this function that uses the underlying taskIdSelf
17597 function for VxWorks 5 and VxWorks 6 in kernel mode.
17598 (unsigned_int): New type, modular to allow logical bit operations.
17599 (taskOptionsGet): New imported function.
17600
17601 * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
17602 field to be compliant with the type used by the corresponding operating
17603 system primitive.
17604
176052006-10-31 Pascal Obry <obry@adacore.com>
17606 Eric Botcazou <ebotcazou@adacore.com>
17607 Vincent Celier <celier@adacore.com>
17608
17609 * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
17610 ASCII version of the registry API. This is needed as the GNAT runtime
17611 is now UNICODE by default.
17612 Include version.h.
17613 (get_gcc_version): Do not hardcode the return value.
17614 (__gnat_file_time_name): On Windows properly set the default returned
17615 value to -1 which corresponds to Invalid_Time.
17616 (__gnat_fopen): New routine. A simple wrapper on all plateforms
17617 except on Windows where it does conversion for unicode support.
17618 (__gnat_freopen): Idem.
17619 (__gnat_locate_exec_on_path): If environment variable PATH does not
17620 exist, return a NULL pointer
17621
17622 * adaint.h: (__gnat_fopen): Declare.
17623 (__gnat_freopen): Likewise.
17624
17625 * mingw32.h (_tfreopen): Define this macro here for older MingW
17626 version.
17627 Activate the unicode support on platforms using a MingW runtime
17628 version 3.9 or newer.
17629
17630 * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
17631 This is needed for proper unicode support on Windows.
17632 (freopen): Idem.
17633
176342006-10-31 Eric Botcazou <ebotcazou@adacore.com>
17635 Nicolas Setton <setton@adacore.com>
17636 Olivier Hainque <hainque@adacore.com>
17637 Gary Dismukes <dismukes@adacore.com>
17638
17639 * gigi.h: (tree_code_for_record_type): Declare.
17640 (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
17641 (get_global_renaming_pointers): Rename to
17642 invalidate_global_renaming_pointers.
17643 (static_ctors): Delete.
17644 (static_dtors): Likewise.
17645 (gnat_write_global_declarations): Declare.
17646 (create_var_decl): Adjust descriptive comment to indicate that the
17647 subprogram may return a CONST_DECL node.
17648 (create_true_var_decl): Declare new function, similar to
17649 create_var_decl but forcing the creation of a VAR_DECL node.
17650 (get_global_renaming_pointers): Declare.
17651 (add_global_renaming_pointer): Likewise.
17652
17653 * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
17654
17655 * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
17656 tree before setting TREE_ADDRESSABLE for by-reference return mechanism
17657 processing.
17658 (gnat_to_gnu_entity): Remove From_With_Type from computation for
17659 imported_p.
17660 <E_Access_Type>: Use the Non_Limited_View as the full view of the
17661 designated type if the pointer comes from a limited_with clause. Make
17662 incomplete designated type if it is in the main unit and has a freeze
17663 node.
17664 <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
17665 Underlying_Full_View similarly. Return earlier if the full view already
17666 has an associated tree.
17667 (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
17668 (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
17669 (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
17670 reference type built for objects with an address clause.
17671 Use create_true_var_decl with const_flag set for
17672 DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
17673 TREE_READONLY set.
17674 (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
17675 for Character and Wide_Character types. This info is read by the
17676 dwarf-2 writer, and is needed to be able to use the command "ptype
17677 character" in the debugger.
17678 (gnat_to_gnu_entity): When generating a type representing
17679 a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
17680 so that debug writers can distinguish it from ordinary integers.
17681 (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
17682 addition to TREE_READONLY to assert the constantness of variables for
17683 elaboration purposes.
17684 (gnat_to_gnu_entity, subprogram cases): Change loops on formal
17685 parameters to call new Einfo function First_Formal_With_Extras.
17686 (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
17687 protected type with its corresponding discriminant, to obtain a usable
17688 declaration
17689 (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
17690 for a multiple elaboration of the "equivalent" type.
17691 (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
17692 into record_global_renaming_pointer.
17693 (gnat_to_gnu_entity) <E_Array_Type>: Do not force
17694 TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
17695 <E_Array_Subtype>: Likewise.
17696 (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
17697 incomplete subtypes and incomplete subtypes of incomplete types visible
17698 through a limited with clause.
17699 (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
17700 the base index type for the maximum size of the array only if they are
17701 constant.
17702 (gnat_to_gnu_entity, renaming object case): Do not wrap up the
17703 expression into a SAVE_EXPR if stabilization failed.
17704
17705 * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
17706 a result decl into DECL_BY_REFERENCE on this decl, now what is expected
17707 by lower level compilation passes.
17708 (gnat_genericize): New function, lowering a function body to GENERIC.
17709 Turn the type of RESULT_DECL into a real reference type if the decl
17710 has been marked DECL_BY_REFERENCE, and adjust references to the latter
17711 accordingly.
17712 (gnat_genericize_r): New function. Tree walking callback for
17713 gnat_genericize.
17714 (convert_from_reference, is_byref_result): New functions. Helpers for
17715 gnat_genericize_r.
17716 (create_type_decl): Call gnat_pushdecl before calling
17717 rest_of_decl_compilation, to make sure that field TYPE_NAME of
17718 type_decl is properly set before calling the debug information writers.
17719 (write_record_type_debug_info): The heuristics which compute the
17720 alignment of a field in a variant record might not be accurate. Add a
17721 safety test to make sure no alignment is set to a smaller value than
17722 the alignment of the field type.
17723 (make_dummy_type): Use the Non_Limited_View as the underlying type if
17724 the type comes from a limited_with clause. Do not loop on the full view.
17725 (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
17726 (dummy_node_table): New global variable, moved from decl.c.
17727 (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
17728 (save_gnu_tree): Use above macros.
17729 (get_gnu_tree): Likewise.
17730 (present_gnu_tree): Likewise.
17731 (init_dummy_type): New function, moved from decl.c. Use above macros.
17732 (make_dummy_type): Likewise.
17733 (tree_code_for_record_type): New function extracted from make_dummy_type
17734 (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
17735 (static_ctors): Change it to a vector, make static.
17736 (static_dtors): Likewise.
17737 (end_subprog_body): Adjust for above change.
17738 (build_global_cdtor): Moved from trans.c.
17739 (gnat_write_global_declarations): Emit global constructor and
17740 destructor, and call cgraph_optimize before emitting debug info for
17741 global declarations.
17742 (global_decls): New global variable.
17743 (gnat_pushdecl): Store the global declarations in global_decls, for
17744 later use.
17745 (gnat_write_global_declarations): Emit debug information for global
17746 declarations.
17747 (create_var_decl_1): Former create_var_decl, with an extra argument to
17748 state whether the creation of a CONST_DECL is allowed.
17749 (create_var_decl): Behavior unchanged. Now a wrapper around
17750 create_var_decl_1 allowing CONST_DECL creation.
17751 (create_true_var_decl): New function, similar to create_var_decl but
17752 forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
17753 (create_field_decl): Do not always mark the field as addressable
17754 if its type is an aggregate.
17755 (global_renaming_pointers): New static variable.
17756 (add_global_renaming_pointer): New function.
17757 (get_global_renaming_pointers): Likewise.
17758
17759 * misc.c (gnat_dwarf_name): New function.
17760 (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
17761 (gnat_post_options): Add comment about structural alias analysis.
17762 (gnat_parse_file): Do not call cgraph_optimize here.
17763 (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
17764
17765 * trans.c (process_freeze_entity): Don't abort if we already have a
17766 non dummy GCC tree for a Concurrent_Record_Type, as it might
17767 legitimately have been elaborated while processing the associated
17768 Concurrent_Type prior to this explicit freeze node.
17769 (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
17770 exception handler volatile if it is of variable size.
17771 (process_type): Remove bypass for types coming from a limited_with
17772 clause.
17773 (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
17774 actual, convert the corresponding gnu_actual to the real destination
17775 type when necessary.
17776 (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
17777 originally TREE_READONLY but whose elaboration cannot be performed
17778 statically.
17779 Part of fix for F504-021.
17780 (tree_transform, subprogram cases): Change loops on formal parameters to
17781 call new Einfo function First_Formal_With_Extras.
17782 (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
17783 stemming from type conversion for the lhs.
17784 (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
17785 number of bits per unit for components of records.
17786 (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
17787 (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
17788 with At_End_Proc after the SJLJ EH cleanup.
17789 (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
17790 compilation unit.
17791 (elaborate_all_entities): Do not retest type_annotate_only.
17792 (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
17793 result type of an abstract subprogram, which may be an itype associated
17794 with an anonymous access result (related to AI-318-02).
17795 (build_global_cdtor): Move to utils.c.
17796 (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
17797 this choice is not a null tree nor an integer constant.
17798 (gigi): Run unshare_save_expr via walk_tree_without_duplicates
17799 on the body of elaboration routines instead of mark_unvisited.
17800 (add_stmt): Do not mark the tree.
17801 (add_decl_expr): Tweak comment.
17802 (mark_unvisited): Delete.
17803 (unshare_save_expr): New static function.
17804 (call_to_gnu): Issue an error when making a temporary around a
17805 procedure call because of non-addressable actual parameter if the
17806 type of the formal is by_reference.
17807 (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
17808 after building the elaboration routine.
17809
178102006-10-31 Bob Duff <duff@adacore.com>
17811
17812 * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
17813 as finalization-started, so we can raise Program_Error on 'new'.
17814
17815 * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
17816 collection has already started.
17817
17818 * s-finimp.ads (Collection_Finalization_Started): Added new special
17819 flag value for indicating that a collection's finalization has started.
17820
17821 * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
17822 create a task whose master has already waited for dependent tasks.
17823
178242006-10-31 Robert Dewar <dewar@adacore.com>
17825
17826 * lib.adb, lib.ads: (In_Predefined_Unit): New functions
17827
9e81dbc7
AS
17828 * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
17829 a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
17830 a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
17831 a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
17832 a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
70198b9f
AC
17833 a-except-2005.ads: Add pragma Preelaborable_Warning
17834
178352006-10-31 Robert Dewar <dewar@adacore.com>
17836 Jose Ruiz <ruiz@adacore.com>
17837
17838 * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
17839
17840 * ali.adb (Get_Name): Properly handle scanning of wide character names
17841 encoded with brackets notation.
17842 (Known_ALI_Lines): Add S lines to this list.
17843 (Scan_ALI): Acquire S (priority specific dispatching) lines.
17844 New flag Elaborate_All_Desirable in unit table
17845
17846 * ali.ads (Priority_Specific_Dispatching): Add this range of
17847 identifiers to be used for Priority_Specific_Dispatching table entries.
17848 (ALIs_Record): Add First_Specific_Dispatching and
17849 Last_Specific_Dispatching that point to the first and last entries
17850 respectively in the priority specific dispatching table for this unit.
17851 (Specific_Dispatching): Add this table for storing each S (priority
17852 specific dispatching) line encountered in the input ALI file.
17853 New flag Elaborate_All_Desirable in unit table
17854
17855 * bcheck.adb: (Check_Configuration_Consistency): Add call to
17856 Check_Consistent_Dispatching_Policy.
17857 (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
17858 verifying that the use of Priority_Specific_Dispatching,
17859 Task_Dispatching_Policy, and Locking_Policy is consistent across the
17860 partition.
17861
17862 * bindgen.adb: (Public_Version_Warning): function removed.
17863 (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
17864 required information from ALI files in order to initialize the table
17865 containing the specific dispatching policy.
17866 (Gen_Adainit_Ada): Generate the variables required for priority specific
17867 dispatching entries (__gl_priority_specific_dispatching and
17868 __gl_num_specific_dispatching).
17869 (Gen_Adainit_C): Generate the variables required for priority specific
17870 dispatching entries (__gl_priority_specific_dispatching and
17871 __gl_num_specific_dispatching).
17872 (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
17873 pragma entries.
17874 (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
17875 (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
17876 (Tab_To): Removed.
17877 (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
17878 a call to gnat_set_globals.
17879 Generate a string containing settings from
17880 Priority_Specific_Dispatching pragma entries.
17881 (Gen_Object_Files_Options): Do not include the runtime libraries when
17882 pragma No_Run_Time is specified.
17883
17884 * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
17885 consistency with s-intman-posix.adb.
17886 (__gnat_error_handler, case FreeBSD): Account for the fact that the
17887 handler is installed with SA_SIGINFO.
17888 (__gnat_adjust_context_for_raise, FreeBSD case): New function for
17889 FreeBSD ZCX support, copied from Linux version.
17890 Add MaRTE-specific definitions for the linux target. Redefine sigaction,
17891 sigfillset, and sigemptyset so the routines defined by MaRTE.
17892 (__gl_priority_specific_dispatching): Add this variable that stores the
17893 string containing priority specific dispatching policies in the
17894 partition.
17895 (__gl_num_specific_dispatching): Add this variable that indicates the
17896 highest priority for which a priority specific dispatching pragma
17897 applies.
17898 (__gnat_get_specific_dispatching): Add this routine that returns the
17899 priority specific dispatching policy, as set by a
17900 Priority_Specific_Dispatching pragma appearing anywhere in the current
17901 partition. The input argument is the priority number, and the result
17902 is the upper case first character of the policy name.
17903 (__gnat_set_globals): Now a dummy function.
17904 (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
17905 mechargs instead of sigargs, as the latter can be retrieved from the
17906 former and sigargs is not what we want on ia64.
17907 (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
17908 mechargs argument.
17909 (__gnat_adjust_context_for_raise, ia64-vms): New function.
17910 (tasking_error): Remove unused symbol.
17911 (_abort_signal): Move this symbol to the IRIX specific part since this
17912 is the only target that uses this definition.
17913 (Check_Abort_Status): Move this symbol to the IRIX specific part since
17914 this is the only target that uses this definition.
17915 (Lock_Task): Remove unused symbol.
17916 (Unlock_Task): Remove unused symbol.
17917
17918 * lib-writ.adb (Write_ALI): Output new S lines for
17919 Priority_Specific_Dispatching pragmas.
17920 Implement new flag BD for elaborate body desirable
17921
17922 * lib-writ.ads: Document S lines for Priority Specific Dispatching.
17923 (Specific_Dispatching): Add this table for storing the entries
17924 corresponding to Priority_Specific_Dispatching pragmas.
17925 Document new BD flag for elaborate body desirable
17926
17927 * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
17928 of known pragmas.
17929
179302006-10-31 Javier Miranda <miranda@adacore.com>
17931
9e81dbc7 17932 * a-tags.ads, a-tags.adb:
70198b9f
AC
17933 (Predefined_DT): New function that improves readability of the code.
17934 (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
17935 Inherit_DT): Use the new function Predefined_DT to improve code
17936 readability.
17937 (Register_Interface_Tag): Update assertion.
17938 (Set_Interface_Table): Update assertion.
17939 (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
17940 determining progenitor interfaces in Tags.
17941 (Inherit_CPP_DT): New subprogram.
17942
6f7f72f9 17943 * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
70198b9f 17944 analysis of the thunk code.
6f7f72f9
EB
17945 (Expand_Interface_Conversion): Handle run-time conversion of
17946 access to class wide types.
70198b9f
AC
17947 (Expand_Dispatching_Call): When generating the profile for the
17948 subprogram itype for a dispatching operation, properly terminate the
17949 formal parameters chaind list (set the Next_Entity of the last formal
17950 to Empty).
17951 (Collect_All_Interfaces): Removed. This routine has been moved to
17952 sem_util and renamed as Collect_All_Abstract_Interfaces.
17953 (Set_All_DT_Position): Hidden entities associated with abstract
17954 interface primitives are not taken into account in the check for
17955 3.9.3(10); this check is done with the aliased entity.
17956 (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
17957 interfacing with CPP by default.
17958 (Expand_Interface_Conversion): Add missing support for static conversion
17959 from an interface to a tagged type.
17960 (Collect_All_Interfaces): Add new out formal containing the list of
17961 abstract interface types to cleanup the subprogram Make_DT.
17962 (Make_DT): Update the code to generate the table of interfaces in case
17963 of abstract interface types.
17964 (Is_Predefined_Dispatching_Alias): New function that returns true if
17965 a primitive is not a predefined dispatching primitive but it is an
17966 alias of a predefined dispatching primitive.
17967 (Make_DT): If the ancestor of the type is a CPP_Class and we are
17968 compiling under full ABI compatibility mode we avoid the generation of
17969 calls to run-time services that fill the dispatch tables because under
17970 this mode we currently inherit the dispatch tables in the IP subprogram.
17971 (Write_DT): Emit an "is null" indication for a null procedure primitive.
17972 (Expand_Interface_Conversion): Use an address as the type of the formal
17973 of the internally built function that handles the case in which the
17974 target type is an access type.
17975
179762006-10-31 Robert Dewar <dewar@adacore.com>
17977
17978 * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
17979
179802006-10-31 Robert Dewar <dewar@adacore.com>
17981
17982 * bindusg.ads, bindusg.adb:
17983 Change to package and rename procedure as Display, which
17984 now ensures that it only outputs usage information once.
17985
179862006-10-31 Jose Ruiz <ruiz@adacore.com>
17987
17988 * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
17989 using RTPs.
17990
17991 * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
17992 when using RTPs.
17993
179942006-10-31 Robert Dewar <dewar@adacore.com>
17995 Ed Schonberg <schonberg@adacore.com>
17996
17997 * treepr.adb: Use new subtype N_Membership_Test
17998
6f7f72f9
EB
17999 * checks.ads, checks.adb: Add definition for Validity_Check
18000 (Range_Or_Validity_Checks_Suppressed): New function
18001 (Ensure_Valid): Test Validity_Check suppressed
18002 (Insert_Valid_Check): Test Validity_Check suppressed
18003 (Insert_Valid_Check): Preserve Do_Range_Check flag
70198b9f
AC
18004 (Validity_Check_Range): New procedure
18005 (Expr_Known_Valid): Result of membership test is always valid
18006 (Selected_Range_Checks): Range checks cannot be applied to discriminants
18007 by themselves. Disabling those checks must also be done for task types,
18008 where discriminants may be used for the bounds of entry families.
18009 (Apply_Address_Clause_Check): Remove side-effects if address expression
18010 is non-static and is not the name of a declared constant.
18011 (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
18012 Code cleanup and new error messages.
18013 (Enable_Range_Check): Test for some cases of suppressed checks
18014 (Generate_Index_Checks): Suppress index checks if index checks are
18015 suppressed for array object or array type.
18016 (Apply_Selected_Length_Checks): Give warning for compile-time detected
18017 length check failure, even if checks are off.
18018 (Ensure_Valid): Do not generate a check on an indexed component whose
18019 prefix is a packed boolean array.
18020 * checks.adb: (Alignment_Checks_Suppressed): New function
18021 (Apply_Address_Clause_Check): New procedure, this is a completely
18022 rewritten replacement for Apply_Alignment_Check
18023 (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
18024 we request a discriminal value only in case of discriminants.
18025 (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
18026 assignments where the target subtype is unconstrained and the target
18027 object is a parameter or dereference (other aliased cases are known
18028 to be unconstrained).
18029
180302006-10-31 Robert Dewar <dewar@adacore.com>
18031
18032 * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
18033 prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
18034 vms_conv.adb: Fix bad table increment values (much too small)
18035
18036 * table.adb (Realloc): Make sure we get at least some new elements
18037 Defends against silly small values for table increment
18038
180392006-10-31 Robert Dewar <dewar@adacore.com>
18040 Ed Schonberg <schonberg@adacore.com>
18041 Bob Duff <duff@adacore.com>
18042
18043 * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
18044 entities. Move other fields around to make this possible
18045 (Is_Derived_Type): Add missing call to Is_Type.
18046 (Extra_Formals): New function for subprograms, entries, subprogram
18047 types.
18048 (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
18049 (First_Formal_With_Extras): New function for subprogs, entries, subp
18050 types.
18051 (Write_Field28_Name): New procedure for node display of "Extra_Formals".
18052 Add node information for E_Return_Statement.
18053 (Elaborate_Body_Desirable): New flag
18054 (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
18055 to be Is_Inherently_Limited_Type, because return-by-reference has
18056 no meaning in Ada 2005.
18057 (E_Return_Statement): New entity kind.
18058 (Return_Applies_To): Field of E_Return_Statement.
18059 (Is_Return_Object): New flag in object entities.
18060 (Is_Dynamic_Scope): Make it True for E_Return_Statement.
18061 (Must_Have_Preelab_Init): New flag
18062 (Known_To_Have_Preelab_Init): New flag
18063 (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
18064 (Is_Visible_Formal): New flag on entities in formal packages.
18065 (Low_Bound_Known): New flag
18066 (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
18067 Incomplete_Kind.
18068 (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
18069 output when Id is an incomplete subtype.
18070
180712006-10-31 Robert Dewar <dewar@adacore.com>
18072
18073 * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
18074 Avoid abbreviation Creat
18075 (Finalize): List all sources in extended mail source if -gnatl
18076 switch is active.
18077 Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
18078 (Finalize): Implement new -gnatl=xxx switch to output listing to file
18079 (Set_Specific_Warning_On): New procedure
18080 (Set_Specific_Warning_Off): New procedure
18081 Add implementation of new insertion \\
18082 (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
18083 (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
18084 types.
18085 (Error_Msg_Internal): Make sure that we set Last_Killed to
18086 True when a message from another package is suppressed.
18087 Implement insertion character ~ (insert string)
18088 (First_Node): Minor adjustments to get better placement.
18089
9e81dbc7 18090 * frontend.adb:
70198b9f
AC
18091 Implement new -gnatl=xxx switch to output listing to file
18092
9e81dbc7 18093 * gnat1drv.adb:
70198b9f
AC
18094 Implement new -gnatl=xxx switch to output listing to file
18095
6f7f72f9 18096 * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
70198b9f
AC
18097 (Commands_To_Stdout): New flag
18098 Implement new -gnatl=xxx switch to output listing to file
18099 New switch Dump_Source_Text
18100 (Warn_On_Deleted_Code): New warning flag for -gnatwt
18101 Define Error_Msg_Line_Length
18102 (Warn_On_Assumed_Low_Bound): New switch
18103
18104 * osint.ads, osint.adb
18105 (Normalize_Directory_Name): Fix bug.
18106 Implement new -gnatl=xxx switch to output listing to file
18107 (Concat): Removed, replaced by real concatenation
18108 Make use of concatenation now allowed in compiler
18109 (Executable_Prefix.Get_Install_Dir): First get the full path, so that
18110 we find the 'lib' or 'bin' directory even when the tool has been
18111 invoked with a relative path.
18112 (Executable_Name): New function taking string parameters.
18113
9e81dbc7 18114 * osint-c.ads, osint-c.adb:
70198b9f
AC
18115 Implement new -gnatl=xxx switch to output listing to file
18116
18117 * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
18118
9e81dbc7 18119 * switch-c.adb:
70198b9f
AC
18120 Implement new -gnatl=xxx switch to output listing to file
18121 Recognize new -gnatL switch
18122 (no longer keep in old warning about old style usage)
18123 Use concatenation to simplify code
18124 Recognize -gnatjnn switch
18125 (Scan_Front_End_Switches): Clean up handling of -gnatW
18126 (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
18127
181282006-10-31 Robert Dewar <dewar@adacore.com>
18129
18130 * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
18131 (Set_Specific_Warning_Off): New procedure
18132 (Warning_Specifically_Suppressed): New function
18133 (Validate_Specific_Warnings): New procedure
18134 (Output_Msg_Text): Complete rewrite to support -gnatjnn
18135
18136 * err_vars.ads: Implement insertion character ~ (insert string)
18137
181382006-10-31 Bob Duff <duff@adacore.com>
18139 Ed Schonberg <schonberg@adacore.com>
18140
18141 * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
18142 the parent part is a build-in-place function call, generate assignments.
18143 (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
18144 are build-in-place function calls.
18145 (Replace_Self_Reference): New subsidiary of
18146 Make_OK_Assignment_Statement, to replace an access attribute that is a
18147 self-reference into an access to the appropriate component of the
18148 target object. Generalizes previous mechanism to handle self-references
18149 nested at any level.
18150 (Is_Self_Referential_Init): Remove, not needed.
18151 (Is_Self_Referential_Init): New predicate to simplify handling of self
18152 referential components in record aggregates.
18153 (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
18154 check for presence of entity before checking for self-reference.
18155 (Has_Default_Init_Comps): Return True if a component association is a
18156 self-reference to the enclosing type, which can only come from a
18157 default initialization.
18158 (Make_OK_Assignment_Statement): If the expression is of the form
18159 Typ'Acc, where Acc is an access attribute, the expression comes from a
18160 default initialized self-referential component.
18161 (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
18162 that has been derived from several abstract interfaces we must also
18163 initialize the tags of the secondary dispatch tables.
18164
181652006-10-31 Ed Schonberg <schonberg@adacore.com>
18166 Thomas Quinot <quinot@adacore.com>
18167 Javier Miranda <miranda@adacore.com>
18168 Robert Dewar <dewar@adacore.com>
6f7f72f9 18169
9e81dbc7 18170 * exp_attr.adb:
6f7f72f9
EB
18171 (Expand_Access_To_Protected_Op): If the context indicates that an access
18172 to a local operation may be transfered outside of the object, create an
18173 access to the wrapper operation that must be used in an external call.
70198b9f
AC
18174 (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
18175 target, pass the Valid attribute applied to a floating-point prefix on
18176 to the back end without expansion.
18177 (Storage_Size): Use the new run-time function Storage_Size to retrieve
18178 the allocated storage when it is specified by a per-object expression.
18179 (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
18180 Nothing to do here, the attribute has been rewritten during semantic
18181 analysis.
18182 (Expand_Attribute_Reference): Handle expansion of the new Priority
18183 attribute
18184 (Find_Fat_Info): Handle case of universal real
18185 (Expand_Access_To_Protected_Op): Fix use of access to protected
18186 subprogram from inside the body of a protected entry.
18187 (Expand_Access_To_Protected_Op): Common procedure for the expansion of
18188 'Access and 'Unrestricted_Access, to transform the attribute reference
18189 into a fat pointer.
18190 (Is_Constrained_Aliased_View): New predicate to help determine whether a
18191 subcomponent's enclosing variable is aliased with a constrained subtype.
18192 (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
18193 test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
18194 an aliased prefix must be known to be constrained in order to use True
18195 for the attribute value, and now it's possible for some aliased views
18196 to be unconstrained.
18197
181982006-10-31 Robert Dewar <dewar@adacore.com>
18199
18200 * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
18201 (Expand_Entity_Reference): Correct error of not handling subprogram
18202 formals in current_value processing.
18203
182042006-10-31 Javier Miranda <miranda@adacore.com>
18205 Robert Dewar <dewar@adacore.com>
18206 Ed Schonberg <schonberg@adacore.com>
18207 Gary Dismukes <dismukes@adacore.com>
18208
6f7f72f9 18209 * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
70198b9f
AC
18210 register in the final list objects containing class-wide interfaces;
18211 otherwise we incorrectly register the tag of the interface in the final
18212 list.
6f7f72f9
EB
18213 (Make_Controlling_Function_Wrappers): Add missing barrier to do not
18214 generate the wrapper if the parent primitive is abstract. This is
18215 required to report the correct error message.
18216 (Expand_N_Subtype_Indication): Do validity checks on range
70198b9f
AC
18217 (Clean_Task_Names): If an initialization procedure includes a call to
18218 initialize a task (sub)component, indicate that the procedure will use
18219 the secondary stack.
18220 (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
18221 compatibility for interfacing with CPP by default.
18222 (Expand_N_Object_Declaration): Only build an Adjust call when the
18223 object's type is a nonlimited controlled type.
18224 * exp_ch3.adb: Add with and use of Exp_Ch6.
18225 (Expand_N_Object_Declaration): Check for object initialization that is a
18226 call to build-in-place function and apply Make_Build_In_Place_Call_In_
18227 Object_Declaration to the call.
18228 (Freeze_Type): When the designated type of an RACW was not frozen at the
18229 point where the RACW was declared, validate the primitive operations
18230 with respect to E.2.2(14) when it finally is frozen.
18231 (Build_Initialization_Call,Expand_Record_Controller): Rename
18232 Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
18233 return-by-reference has no meaning in Ada 2005.
18234 (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
18235 to register tag of the immediate ancestor interfaces in the
18236 run-time structure.
18237 (Init_Secondary_Tags): Moved to the specification to allow the
18238 initialization of extension aggregates with abstract interfaces.
18239 (Build_Master_Renaming): Make public, for use by function declarations
18240 whose return type is an anonymous access type.
18241 (Freeze_Record_Type): Replace call to Insert_List_Before by call to
18242 Insert_List_Before_And_Analyze after the generation of the specs
18243 associated with null procedures.
18244 (Expand_Tagged_Root): Update documentation in its specification.
18245 (Init_Secondary_Tags): Update documentation.
18246 (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
18247 tibility mode and the immediate ancestor is a CPP_Pragma tagged type
18248 then generate code to inherit the contents of the dispatch table
18249 directly from the ancestor.
18250 (Expand_Record_Controller): Insert controller component after tags of
18251 implemented interfaces.
18252 (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
18253 create null procedure overridings when null procedures are inherited
18254 from interfaces.
18255 (Make_Null_Procedure_Specs): New procedure to generate null procedure
18256 declarations for overriding null primitives inherited from interfaces.
18257 (Is_Null_Interface_Procedure): New function in
18258 Make_Null_Procedure_Specs.
18259 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
18260 immediate ancestor of a tagged type is an abstract interface type we
18261 must generate the specification of the predefined primitives associated
18262 with controlled types (because the dispatch table of the ancestor is
18263 null and hence these entries cannot be inherited). This is required to
18264 elaborate well the dispatch table.
18265
182662006-10-31 Javier Miranda <miranda@adacore.com>
18267 Ed Schonberg <schonberg@adacore.com>
18268 Bob Duff <duff@adacore.com>
18269 Gary Dismukes <dismukes@adacore.com>
18270 Robert Dewar <dewar@adacore.com>
6f7f72f9
EB
18271
18272 * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
70198b9f 18273 conversion.
6f7f72f9 18274 (Expand_N_In): Do validity checks on range
70198b9f
AC
18275 (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
18276 (Expand_N_Allocator): For "new T", if the object is constrained by
18277 discriminant defaults, allocate the right amount of memory, rather than
18278 the maximum for type T.
18279 (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
18280 when the allocator is initialized by a build-in-place call, since the
18281 allocator is already rewritten as a reference to the function result,
18282 and this prevents an unwanted duplication of the function call.
18283 Add with and use of Exp_Ch6.
18284 (Expand_Allocator_Expresssion): Check for an allocator whose expression
18285 is a call to build-in-place function and apply
18286 Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
18287 untagged designated types).
18288 (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
18289 optimization if source or target is biased.
18290 (Expand_N_Allocator): Add comments for case of an allocator within a
18291 function that returns an anonymous access type designating tasks.
18292 (Expand_N_Allocator): apply discriminant checks for access
18293 discriminants of anonymous access types (AI-402, AI-416)
18294
182952006-10-31 Bob Duff <duff@adacore.com>
18296 Robert Dewar <dewar@adacore.com>
18297 Gary Dismukes <dismukes@adacore.com>
18298 Ed Schonberg <schonberg@adacore.com>
18299
18300 * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
18301
6f7f72f9 18302 * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
70198b9f
AC
18303 (Expand_N_Assignment_Statement): Call
18304 Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
18305 build-in-place function call. Currently, this can happen only for
18306 assignments that come from aggregates.
18307 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18308 in order to alleviate the upward compatibility introduced by AI-318.
18309 (Expand_N_Extended_Return_Statement): Add support for handling the
18310 return object as a build-in-place result.
18311 (Expand_Non_Function_Return): Implement simple return statements nested
18312 within an extended return.
18313 (Enable_New_Return_Processing): Turn on the new processing of return
18314 statements.
18315 (Expand_Non_Function_Return): For a return within an extended return,
18316 don't raise Program_Error, because Sem_Ch6 now gives a warning.
18317 (Expand_N_Extended_Return_Statement): Implement AI-318
18318 (Expand_Simple_Function_Return): Ditto.
18319 (Expand_N_If_Statement): Handle new -gnatwt warning
18320 (Expand_N_Case_Statement): Handle new -gnatwt warning
18321 (Expand_N_Assignment): Handle assignment to the Priority attribute of
18322 a protected object.
18323 (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
18324 validity checking of assignments to elementary record components.
18325 (Expand_N_Return_Statement): return Class Wide types on the secondary
18326 stack independantly of their controlled status since with HIE runtimes,
18327 class wide types are not potentially controlled anymore.
18328
18329 * expander.adb (Expand): Add case for new N_Extended_Return_Statement
18330 node kind.
18331
18332 * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
18333 Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
18334 it expects a block, procedure, or task. The return statement will get
18335 turned into a block, and Expand_Cleanup_Actions will happen then.
18336
183372006-10-31 Robert Dewar <dewar@adacore.com>
18338 Ed Schonberg <schonberg@adacore.com>
18339 Bob Duff <duff@adacore.com>
18340 Gary Dismukes <dismukes@adacore.com>
18341
18342 * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
18343 capability.
18344 (Expand_Inlined_Call): Tagged types are by-reference types, and
18345 therefore should be replaced by a renaming declaration in the expanded
18346 body, as is done for limited types.
18347 (Expand_Call): If this is a call to a function with dispatching access
18348 result, propagate tag from context.
18349 (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
18350 CPP by default.
18351 (Make_Build_In_Place_Call_In_Assignment): New procedure to do
18352 build-in-place when the right-hand side of an assignment is a
18353 build-in-place function call.
18354 (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
18355 of the explicit dereference of the allocator to the result subtype of
18356 the build-in-place function. This is needed to satisfy type checking
18357 in cases where the caller's return object is created by an allocator for
18358 a class-wide access type and the type named in the allocator is a
18359 specific type.
18360 (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
18361 conversion of the reference to the declared object to the result subtype
18362 of the build-in-place function. This is needed to satisfy type checking
18363 in cases where the declared object has a class-wide type. Also, in the
18364 class-wide case, change the type of the object entity to the specific
18365 result subtype of the function, to avoid passing a class-wide object
18366 without explicit initialization to the back end.
18367 (Register_Interface_DT_Entry): Moved outside the body of
18368 Freeze_Subprogram because this routine is now public; it is called from
18369 Check_Dispatching_Overriding to handle late overriding of abstract
18370 interface primitives.
18371 (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
18372 adding an implicit access actual on a call to a build-in-place function.
18373 (Expand_Actuals): Test for an actual parameter that is a call to a
18374 build-in-place function and apply
18375 Make_Build_In_Place_Call_In_Anonymous_Context to the call.
18376 (Is_Build_In_Place_Function): New function to determine whether an
18377 entity is a function whose calls should be handled as build-in-place.
18378 (Is_Build_In_Place_Function_Call): New function to determine whether an
18379 expression is a function call that should handled as build-in-place.
18380 (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
18381 calls to build-in-place functions as the initialization of an allocator.
18382 (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
18383 handling calls to build-in-place functions in contexts that do not
18384 involve init of a separate object (for example, actuals of subprogram
18385 calls).
18386 (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
18387 handling calls to build-in-place functions as the initialization of an
18388 object declaration.
18389 (Detect_Infinite_Recursion): Add explicit parameter Process to
18390 instantiation of Traverse_Body to avoid unreferenced warning.
18391 (Check_Overriding_Inherited_Interfaces): Removed.
18392 (Register_Interface_DT_Entry): Code cleanup.
18393 (Register_Predefined_DT_Entry): Code cleanup.
18394 (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
18395 inlined statements if within a transient scope.
18396 (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
18397 formal parameters with occurrences of actuals in inlined body, establish
18398 visibility on the proper view of the actual's subtype for the body's
18399 context.
18400 (Freeze_Subprogram): Do nothing if we are compiling under full ABI
18401 compatibility mode and we have an imported CPP subprogram because
18402 for now we assume that imported CPP primitives correspond with
18403 objects whose constructor is in the CPP side (and therefore we
18404 don't need to generate code to register them in the dispatch table).
18405 (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
18406 aligned selected component.
18407 (Add_Call_By_Copy_Node): Add missing code to handle the case in which
18408 the actual of an in-mode parameter is a type conversion.
18409 (Expand_Actuals): If the call does not come from source and the actual
18410 is potentially misaligned, let gigi handle it rather than rejecting the
18411 (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
18412 Class Wide types as returning by reference independantly of their
18413 controlled status since with HIE runtimes class wide types are not
18414 potentially controlled anymore.
18415
6f7f72f9 184162006-10-31 Ed Schonberg <schonberg@adacore.com>
70198b9f 18417
6f7f72f9 18418 * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
70198b9f
AC
18419 references that are private components of the protected object.
18420 (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
18421 (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
18422 instantiation to deal with warnings.
18423 (Initialize_Protection): If expression for priority is non-static, use
18424 System_Priority as its expected type, in case the expression has not
18425 been analyzed yet.
18426
184272006-10-31 Robert Dewar <dewar@adacore.com>
18428
18429 * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
18430 initialization of Homonym_Len.
18431 (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
18432 names from fully qualified name. Fixes problem of duplicate
18433 external names differing only in the presence of such a block name.
18434
184352006-10-31 Thomas Quinot <quinot@adacore.com>
18436 Pablo Oliveira <oliveira@adacore.com>
6f7f72f9
EB
18437
18438 * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
70198b9f
AC
18439 subprogram Ids, even if they are not yet assigned.
18440 (Build_Subprogram_Id): It is now this function that will take care of
18441 calling Assign_Subprogram_Ids if necessary.
18442 (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
18443 should be done only once they are assigned.
18444 (Build_From_Any_Function, case of tagged types): Add missing call to
18445 Allocate_Buffer.
18446 (Corresponding_Stub_Type): New subprogram. Returns the associated stub
18447 type for an RACW type.
18448 (Add_RACW_Features): When processing an RACW declaration for which the
18449 designated type is already frozen, enforce E.2.2(14) rules immediately.
18450 (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
18451 special reordering of controlling formals.
18452
18453 * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
18454 associated stub type for an RACW type.
18455
184562006-10-31 Ed Schonberg <schonberg@adacore.com>
18457
18458 * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
18459 fixed-point operations in an integer context, i.e. as operands of a
18460 conversion to an integer type, indicate that result must be rounded.
18461
184622006-10-31 Robert Dewar <dewar@adacore.com>
18463
18464 * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
18465 cases, pass the encoding method, since it is now required by the run
18466 time.
18467
18468 * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
18469 assumption that Str'First = 1.
18470 (Value_Wide_Character): Takes EM (encoding method) parameter and passes
18471 it on to the Value_Wide_Wide_Character call.
18472 (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
18473 properly handles a string of the form quote-encoded_wide_char-quote.
18474
18475 * s-wchcnv.adb: Minor reformatting
18476
184772006-10-31 Javier Miranda <miranda@adacore.com>
6f7f72f9 18478
70198b9f
AC
18479 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
18480 run-time membership test to ensure that the constructed object
18481 implements the target abstract interface.
18482
184832006-10-31 Robert Dewar <dewar@adacore.com>
18484
18485 * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
18486 Machine_Attribute pragma internally to implement the user pragma.
18487 Add processing for pragma Interface so that it is now completely
18488 equivalent to pragma Import.
18489
18490 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
18491 so that it can be applied to all entities, including record components
18492 and enumeration literals.
18493 (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
18494 priority ranges are correct, verify compatibility against task
18495 dispatching and locking policies, and if everything is correct an entry
18496 is added to the table containing priority specific dispatching entries
18497 for this compilation unit.
18498 (Delay_Config_Pragma_Analyze): Delay processing
18499 Priority_Specific_Dispatching pragmas because when processing the
18500 pragma we need to access run-time data, such as the range of
18501 System.Any_Priority.
18502 (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
18503 Allow pragma Unreferenced as a context item
18504 Add pragma Preelaborable_Initialization
18505 (Analyze_Pragma, case Interface): Interface is extended so that it is
18506 now syntactically and semantically equivalent to Import.
18507 (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
18508 insertion characters.
18509 Add handling for Pragma_Wide_Character_Encoding
18510 (Process_Restrictions_Restriction_Warnings): Ensure that a warning
18511 never supercedes a real restriction, and that a real restriction
18512 always supercedes a warning.
18513 (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
18514 appropriate form.
18515
185162006-10-31 Bob Duff <duff@adacore.com>
18517 Ed Schonberg <schonberg@adacore.com>
18518 Robert Dewar <dewar@adacore.com>
18519
18520 * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
18521 Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
18522 Is_Inherently_Limited_Type, because return-by-reference has no meaning
18523 in Ada 2005.
18524 (Find_Node_To_Be_Wrapped): Use new method of determining the result
18525 type of the function containing a return statement, because the
18526 Return_Type field was removed. We now use the Return_Applies_To field.
18527
6f7f72f9 18528 * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
70198b9f
AC
18529 (Build_Task_Image_Decl): If procedure is not called from an
18530 initialization procedure, indicate that function that builds task name
18531 uses the sec. stack. Otherwise the enclosing initialization procedure
18532 will carry the indication.
18533 (Insert_Actions): Remove N_Return_Object_Declaration. We now use
18534 N_Object_Declaration instead.
18535 (Kill_Dead_Code): New interface to implement -gnatwt warning for
18536 conditional dead code killed, and change implementation accordingly.
18537 (Insert_Actions): Add N_Return_Object_Declaration case.
18538 Correct comment to mention N_Extension_Aggregate node.
18539 (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
18540 attempts to save information for global variables which cannot be
18541 safely tracked.
18542 (Get_Current_Value_Condition): Handle conditions the other way round
18543 (constant on left). Also handle right operand of AND and AND THEN
18544 (Set_Current_Value_Condition): Corresponding changes
18545 (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
18546 (Get_Current_Value_Condition): Handle simple boolean operands
18547 (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
18548 (Get_Current_Value_Condition): If the variable reference is within an
18549 if-statement, does not appear in the list of then_statments, and does
18550 not come from source, treat it as being at unknown location.
18551 (Get_Current_Value_Condition): Enhance to allow while statements to be
18552 processed as well as if statements.
18553 (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
18554 come from source.
18555 (OK_To_Do_Constant_Replacement): Allow constant replacement within body
18556 of loop. This is safe now that we fixed Kill_Current_Values.
18557 (OK_To_Do_Constant_Replacement): Check whether current scope is
18558 Standard, before examining outer scopes.
18559
185602006-10-31 Vincent Celier <celier@adacore.com>
18561
18562 * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
18563 When True, apply VMS treatment to children of packages A, G, I and S.
18564 For F320-016
18565
18566 * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
18567
185682006-10-31 Robert Dewar <dewar@adacore.com>
18569 Ed Schonberg <schonberg@adacore.com>
18570
18571 * freeze.adb: Add handling of Last_Assignment field
18572 (Warn_Overlay): Supply missing continuation marks in error msgs
18573 (Freeze_Entity): Add check for Preelaborable_Initialization
18574
18575 * g-comlin.adb: Add Warnings (Off) to prevent new warning
18576
18577 * g-expect.adb: Add Warnings (Off) to prevent new warning
18578
18579 * lib-xref.adb: Add handling of Last_Assignment field
18580 (Generate_Reference): Centralize handling of pragma Obsolescent here
18581 (Generate_Reference): Accept an implicit reference generated for a
18582 default in an instance.
18583 (Generate_Reference): Accept a reference for a node that is not in the
18584 main unit, if it is the generic body corresponding to an subprogram
18585 instantiation.
18586
18587 * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
18588
6f7f72f9 18589 * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
70198b9f
AC
18590 -gnatwq/Q.
18591 (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
18592 exception handler.
18593 (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
18594 use clauses, to avoid messages on packages used to qualify, and also
18595 to avoid messages from obsolescent units.
18596 (Warn_On_Useless_Assignments): Don't generate messages for imported
18597 and exported variables.
18598 (Warn_On_Useless_Assignments): New procedure
18599 (Output_Obsolescent_Entity_Warnings): New procedure
18600 (Check_Code_Statement): New procedure
18601
6f7f72f9 18602 * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
70198b9f
AC
18603 Change name Is_Ada_2005 to Is_Ada_2005_Only
18604 (Last_Assignment): New field for useless assignment warning
18605
186062006-10-31 Olivier Hainque <hainque@adacore.com>
18607
18608 * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
18609 closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
18610
186112006-10-31 Bob Duff <duff@adacore.com>
18612 Robert Dewar <dewar@adacore.com>
18613 Ed Schonberg <schonberg@adacore.com>
18614
18615 * g-awk.adb (Default_Session, Current_Session): Compile this file in
18616 Ada 95 mode, because it violates the new rules for AI-318.
18617
18618 * g-awk.ads: Use overloaded subprograms in every case where we used to
18619 have a default of Current_Session. This makes the code closer to be
18620 correct for both Ada 95 and 2005.
18621
18622 * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
18623 code, relying on the fact that the compiler generates a warning
18624 instead of an error in -gnatg mode.
18625
18626 * lib-xref.ads (Xref_Entity_Letters): Add entry for new
18627 E_Return_Statement entity kind.
18628 Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
18629
18630 * par.adb (P_Interface_Type_Definition): Addition of one formal to
18631 report an error if the reserved word abstract has been previously found.
18632 (SS_End_Type): Add E_Return for new extended_return_statement syntax.
6f7f72f9
EB
18633
18634 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
70198b9f
AC
18635 parenthesized range attribute usage
18636 (P_Expression_No_Right_Paren): Add missing comment about error recovery.
18637
18638 * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
18639 in the syntax for extended_return_statement. This is not in the latest
18640 RM, but the ARG is expected to issue an AI allowing this.
18641 (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
18642 N_Return_Object_Declaration. We now use N_Object_Declaration instead.
18643 (P_Return_Object_Declaration, P_Return_Subtype_Indication,
18644 P_Return_Statement): Parse the new syntax for extended_return_statement.
18645
18646 * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
18647 Output_End_Missing): Add error-recovery code for the new
18648 extended_return_statement syntax; that is, the new E_Return entry on
18649 the scope stack.
18650
18651 * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
18652 limited to nonlimited, because otherwise we violate the new Ada 2005
18653 rules about returning limited types in function Create_AST_Handler in
18654 s-asthan.adb.
18655
18656 * sem.adb (Analyze): Add cases for new node kinds
18657 N_Extended_Return_Statement and N_Return_Object_Declaration.
18658
18659 * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
18660 type is in the same category as type of context before applying check,
18661 to prevent anomalies in instantiations.
18662 (Resolve_Aggregate): Remove test for limited components in aggregates.
18663 It's unnecessary in Ada 95, because if it has limited components, then
18664 it must be limited. It's wrong in Ada 2005, because limited aggregates
18665 are now allowed.
18666 (Resolve_Record_Aggregate): Move check for limited types later, because
18667 OK_For_Limited_Init requires its argument to have been resolved.
18668 (Get_Value): When copying the component default expression for a
18669 defaulted association in an aggregate, use the sloc of the aggregate
18670 and not that of the original expression, to prevent spurious
18671 elaboration errors, when the expression includes function calls.
18672 (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
18673 were missing. We also didn't handle qualified expressions. Now also
18674 allow function calls. Use new common routine OK_For_Limited_Init.
18675 (Resolve_Extension_Aggregate): Minor fix to bad error message (started
18676 with space can upper case letter).
18677
6f7f72f9 18678 * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
70198b9f 18679 Has_Static_Discriminants flag
6f7f72f9
EB
18680 (Record_Type_Declaration): Diagnose an attempt to declare an interface
18681 type with discriminants.
18682 (Process_Range_Expr_In_Decl): Do validity checks on range
70198b9f
AC
18683 (Build_Discriminant_Constraints): Use updated form of
18684 Denotes_Discriminant.
18685 (Process_Subtype): If the subtype is a private subtype whose full view
18686 is a concurrent subtype, introduce an itype reference to prevent scope
18687 anomalies in gigi.
18688 (Build_Derived_Record_Type, Collect_Interface_Primitives,
18689 Record_Type_Declaration): The functionality of the subprograms
18690 Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
18691 is now performed by a single routine.
18692 (Build_Derived_Record_Type): If the type definition includes an explicit
18693 indication of limitedness, then the type must be marked as limited here
18694 to ensure that any access discriminants will not be treated as having
18695 a local anonymous access type.
18696 (Check_Abstract_Overriding): Issue a detailed error message when an
18697 abstract subprogram was not overridden due to incorrect mode of its
18698 first parameter.
18699 (Analyze_Private_Extension_Declaration): Add support for the analysis of
18700 synchronized private extension declarations. Verify that the ancestor is
18701 a limited or synchronized interface or in the generic case, the ancestor
18702 is a tagged limited type or synchronized interface and all progenitors
18703 are either limited or synchronized interfaces.
18704 Derived_Type_Declaration): Check for presence of private extension when
18705 dealing with synchronized formal derived types.
18706 Process_Full_View): Enchance the check done on the usage of "limited" by
18707 testing whether the private view is synchronized.
18708 Verify that a synchronized private view is completed by a protected or
18709 task type.
18710 (OK_For_Limited_Init_In_05): New function.
18711 (Analyze_Object_Declaration): Move check for limited types later,
18712 because OK_For_Limited_Init requires its argument to have been resolved.
18713 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18714 in order to alleviate the upward compatibility introduced by AI-318.
18715 (Constrain_Corresponding_Record): If the constraint is for a component
18716 subtype, mark the itype as frozen, to avoid out-of-scope references to
18717 discriminants in the back-end.
18718 (Collect_Implemented_Interfaces): Protect the recursive algorithm of
18719 this subprogram against wrong sources.
18720 (Get_Discr_Value, Is_Discriminant): Handle properly references to a
18721 discriminant of limited type completed with a protected type, when the
18722 discriminant is used to constrain a private component of the type, and
18723 expansion is disabled.
18724 (Find_Type_Of_Object): Do not treat a return subtype that is an
18725 anonymous subtype as a local_anonymous_type, because its accessibility
18726 level is the return type of the enclosing function.
18727 (Check_Initialization): In -gnatg mode, turn the error "cannot
18728 initialize entities of limited type" into a warning.
18729 (OK_For_Limited_Init): Return true for generated nodes, since it
18730 sometimes violates the legality rules.
18731 (Make_Incomplete_Declaration): If the type for which an incomplete
18732 declaration is created happens to be the currently visible entity,
18733 preserve the homonym chain when removing it from visibility.
18734 (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
18735 inherited subprograms.
18736 (Access_Definition): If this is an access to function that is the return
18737 type of an access_to_function definition, context is a type declaration
18738 and the scope of the anonymous type is the current one.
18739 (Analyze_Subtype_Declaration): Add the defining identifier of a regular
18740 incomplete subtype to the set of private dependents of the original
18741 incomplete type.
18742 (Constrain_Discriminated_Type): Emit an error message whenever an
18743 incomplete subtype is being constrained.
18744 (Process_Incomplete_Dependents): Transform an incomplete subtype into a
18745 corresponding subtype of the full view of the original incomplete type.
18746 (Check_Incomplete): Properly detect invalid usage of incomplete types
18747 and subtypes.
18748
187492006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
18750
18751 * g-catiio.ads, g-catiio.adb (Value): New function.
18752 Given an input String, try and parse a valid Time value.
18753
187542006-10-31 Vincent Celier <celier@adacore.com>
18755
18756 * g-debpoo.adb (Is_Valid): Correctly compute Offset using
18757 Integer_Address arithmetic, as in Set_Valid.
18758
187592006-10-31 Arnaud Charlet <charlet@adacore.com>
18760 Robert Dewar <dewar@adacore.com>
18761
18762 * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
18763 handling executable extension manually and duplicating code.
18764
18765 * make.adb: Implement new -S switch
18766 (Gnatmake): Use new function Osint.Executable_Name instead
18767 of handling executable extension manually.
18768
18769 * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
18770 is specified, the executable name ends with this suffix.
18771 Take advantage of Osint.Executable_Name instead of duplicating code.
18772
18773 * switch-m.adb: Recognize new gnatmake -S switch
18774
18775 * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
18776 variable.
18777 (Get_Target_Parameters): Set Executable_Extension_On_Target if
18778 available.
18779
18780 * makeusg.adb: Add line for gnatmake -S switch
18781
187822006-10-31 Vincent Celier <celier@adacore.com>
18783
18784 * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
18785 call it with -static-libgcc, as there are some platforms, such as
18786 Darwin, where one of these two switches is compulsory to link.
18787
187882006-10-31 Vincent Celier <celier@adacore.com>
6f7f72f9 18789
70198b9f
AC
18790 * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
18791 instead of ADA_PROJECT_PATH, for the project path.
18792 (Gnatls): When displaying the project path directories, use host dir
18793 specs.
18794
18795 * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
18796 names in the project path, as absolute paths may correspond to
18797 multi-valued VMS logical names.
18798
187992006-10-31 Vincent Celier <celier@adacore.com>
18800
18801 * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
18802 absolute path name.
18803 (Locate_Regular_File): Ditto
18804 (Change_Dir): Remove, no longer used
18805 (Normalize_Pathname): Do not use Change_Dir to get the drive letter
18806 on Windows. Get it calling Get_Current_Dir.
18807 (OpenVMS): Remove imported boolean, no longer needed.
18808 (Normalize_Pathname)[VMS]: Do not resolve directory names.
18809 (Pid_To_Integer): New function to convert a Process_Id to Integer
18810
188112006-10-31 Thomas Quinot <quinot@adacore.com>
18812
18813 * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
18814 sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
18815 to No_Socket.
18816 (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
18817 W_Sig_Socket.
18818
188192006-10-31 Robert Dewar <dewar@adacore.com>
18820
18821 * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
18822 initial letter o as a zero.
18823
188242006-10-31 Robert Dewar <dewar@adacore.com>
18825
18826 * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
18827
188282006-10-31 Robert Dewar <dewar@adacore.com>
18829
6f7f72f9
EB
18830 * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
18831 variant records
18832 (Layout_Variant_Record): Retrieve the discriminants from the entity
70198b9f
AC
18833 rather than from the type definition, because in the case of a full
18834 type for a private type we need to take the discriminants from the
18835 partial view.
6f7f72f9
EB
18836 (Layout_Component_List): When applying the Max operator to variants with
18837 a nonstatic size, check whether either operand is static and scale that
18838 operand from bits to storage units before applying Max.
70198b9f
AC
18839 (Layout_Type): In VMS, if a C-convention access type has no explicit
18840 size clause (and does not inherit one in the case of a derived type),
18841 then the size is reset to 32 from 64.
18842
188432006-10-31 Vincent Celier <celier@adacore.com>
18844
18845 * lib-load.adb (Load_Unit): Skip the test for a unit not found when
18846 its file has already been loaded, according to the unit being loaded,
18847 not to the current value of Multiple_Unit_Index.
18848
188492006-10-31 Thomas Quinot <quinot@adacore.com>
18850 Eric Botcazou <ebotcazou@adacore.com>
18851 Arnaud Charlet <charlet@adacore.com>
18852
18853 * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
18854 (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
18855 possible.
18856 (a-except.o): Pass it to the compiler.
18857 (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
18858 (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
18859 a-calend-mingw.adb version.
18860
6f7f72f9 18861 * Makefile.rtl: Added s-dsaser.
70198b9f
AC
18862 Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
18863 (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
18864 Ada.Dispatching.Round_Robin.
18865 Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
18866
18867 * Make-lang.in: Remove all references to gt-ada-decl.h.
18868 Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
18869 sources.
18870 Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
18871 Update dependencies.
18872
18873 * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
18874
188752006-10-31 Vincent Celier <celier@adacore.com>
18876
18877 * mlib-utl.adb (Initialized): Remove, no longer used
18878 (Initialize): Remove, no longer used
18879 (Ar): If Ar_Exec is null, get the location of the archive builder and,
18880 if there is one, the archive indexer. Fail if the archive builder cannot
18881 be found.
18882 (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
18883 be found.
18884
188852006-10-31 Ed Schonberg <schonberg@adacore.com>
18886
18887 * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
18888 Process_Body_Clauses): If the context of a body includes a use clause
18889 for P.Q then a with_clause for P in the same body is not redundant,
18890 even if the spec also has a with_clause on P.
18891 Add missing continuation mark to error msg
18892 (Build_Limited_Views): A limited view of a type is tagged if its
18893 declaration includes a record extension.
18894 (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
18895 node, even if the subunit has errors. This avoids malfunction by
18896 Lib.Check_Same_Extended_Unit in the presence of syntax errors.
18897 (Analyze_Compilation_Unit): Add circuit to make sure we get proper
18898 generation of obsolescent messages for with statements (cannot do
18899 this too early, or we cannot implement avoiding the messages in the
18900 case of obsolescent units withing obsolescent units).
18901 (Install_Siblings): If the with_clause is on a remote descendant of
18902 an ancestor of the current compilation unit, find whether there is
18903 a sibling child unit that is immediately visible.
18904 (Remove_Private_With_Clauses): New procedure, invoked after completing
18905 the analysis of the private part of a nested package, to remove from
18906 visibility the private with_clauses of the enclosing package
18907 declaration.
18908 (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
18909 now centralized in Generate_Reference.
18910 (Install_Limited_Context_Clauses): Remove superfluous error
18911 message associated with unlimited view visible through use
18912 and renamings. In addition, at the point in which the error
18913 is reported, we add the backslash to the text of the error
18914 to ensure that it is reported as a single error message.
18915 Use new // insertion for some continuation messages
18916 (Expand_Limited_With_Clause): Use copy of name rather than name itself,
18917 to create implicit with_clause for parent unit mentioned in original
18918 limited_with_clause.
18919 (Install_Limited_With_Unit): Set entity of parent identifiers if the
18920 unit is a child unit. For ASIS queries.
18921 (Analyze_Subunit): If the subunit appears within a child unit, make all
18922 ancestor child units directly visible again.
18923
189242006-10-31 Robert Dewar <dewar@adacore.com>
18925
18926 * par-ch10.adb (P_Context_Clause): Minor error message fix
18927
189282006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
18929 Javier Miranda <miranda@adacore.com>
18930
18931 * par-ch12.adb: Grammar update and cleanup.
18932 (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
18933 support for synchronized derived type definitions.
18934 Add the new actual Abstract_Present to every call to
18935 P_Interface_Type_Definition.
18936 (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
18937 a formal object declaration with an access definition or a subtype mark
18938 with a null exclusion.
18939 (P_Generic_Association): Handle association with box, and others_choice
18940 with box, to support Ada 2005 partially parametrized formal packages.
18941
189422006-10-31 Robert Dewar <dewar@adacore.com>
18943 Javier Miranda <miranda@adacore.com>
6f7f72f9 18944
70198b9f
AC
18945 * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
18946 (P_Type_Declaration): Remove barrier against the reserved word "limited"
18947 after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
18948 (P_Type_Declaration): Minor code cleanup. Add support for synchronized
18949 private extensions.
18950 (P_Type_Declaration): Add the new actual Abstract_Present to every call
18951 to P_Interface_Type_Definition.
18952 (P_Interface_Type_Definition): Addition of one formal to report an error
18953 if the reserved word abstract has been previously found.
18954 (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
18955 object renaming declaration with an access definition or subtype mark
18956 with a possible null exclusion.
18957
18958 * par-ch9.adb: Minor error msg fix
18959
18960 * par-load.adb: Add missing continuation mark to error msg
18961
18962 * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
18963
189642006-10-31 Vincent Celier <celier@adacore.com>
18965
18966 * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
18967 unknown attribute in unknown package or in package that does not need
18968 to be checked.
18969 (Parse_Package_Declaration): Do not issue warning for unknown package in
18970 quiet output.
18971
189722006-10-31 Vincent Celier <celier@adacore.com>
18973
18974 * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
18975 (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
18976 Packages_To_Check.
18977
189782006-10-31 Vincent Celier <celier@adacore.com>
18979
18980 * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
18981 on VMS, change "__" to '.' before checking the name.
18982 (Record_Ada_Source): Always add the source file name in the list of
18983 of sources, even if it is not the first time, as it is for another
18984 source index.
18985 (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
18986 dot, instead of replacing only the first '_'.
18987
18988 * prj-part.adb (Parse): Convert project file path to canonical form
18989
18990 * prj-proc.adb (Recursive_Process): Make sure that, when a project is
18991 extended, the project id of the project extending it is recorded in its
18992 data, even when it has already been processed as an imported project.
18993
189942006-10-31 Robert Dewar <dewar@adacore.com>
18995
18996 * repinfo.adb (List_Entities): Don't list entities from renaming
18997 declarations.
18998
189992006-10-31 Arnaud Charlet <charlet@adacore.com>
19000 Robert Dewar <dewar@adacore.com>
19001
19002 * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
19003 only a restriction warning is active for the given restriction. This is
19004 desirable because we do not want to modify code in the case where only
19005 a warning is set.
19006 (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
19007 causes overriding of real restrictions.
19008 Take advantage of new No_Restrictions constant.
19009
19010 * raise.h: (__gnat_set_globals): Change profile.
19011
190122006-10-31 Arnaud Charlet <charlet@adacore.com>
70198b9f 19013
6f7f72f9
EB
19014 * rtsfind.adb: Remove s-polint from comment as it exists no more.
19015
9e81dbc7 19016 * rtsfind.ads:
6f7f72f9
EB
19017 Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
19018 Move all the entities in obsolete package System.PolyORB_Interface to
19019 System.Partition_Interface.
70198b9f
AC
19020 (RE_Storage_Size): New function in System.Tasking.
19021 (RE_Get_Ceiling): New entity.
19022 (RE_Set_Ceiling): New entity.
19023 (RO_PE_Get_Ceiling): New entity.
19024 (RO_RE_Set_Ceiling): New entity.
19025 (Inherit_CPP_DT): New entity
19026
190272006-10-31 Robert Dewar <dewar@adacore.com>
19028
19029 * scng.adb (Scan, case of numeric literal): Better msg for identifier
19030 starting with a digit.
19031
190322006-10-31 Ed Schonberg <schonberg@adacore.com>
19033 Thomas Quinot <quinot@adacore.com>
19034 Javier Miranda <miranda@adacore.com>
19035 Gary Dismukes <dismukes@adacore.com>
19036
19037 * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
19038 properly an attempt to apply Unchecked_Access to a protected operation.
19039 (OK_Self_Reference): New subprogram to check the legality of an access
19040 attribute whose prefix is the type of an enclosing aggregate.
19041 Generalizes previous mechanism to handle attribute references nested
19042 arbitrarily deep within the aggregate.
19043 (Analyze_Access_Attribute): An access attribute whose prefix is a type
19044 can appear in an aggregate if this is a default-initialized aggregate
19045 for a self-referential type.
19046 (Resolve_Attribute, case Access): Ditto.
19047 Add support for new implementation defined attribute Stub_Type.
19048 (Eval_Attribute, case Attribute_Stub_Type): New case.
19049 (Analyze_Attribute, case Attribute_Stub_Type): New case.
19050 (Stream_Attribute_Available): Implement using new subprogram from
19051 sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
19052 Has_Specified_Stream_Attribute flag.
19053 Disallow Storage_Size and Storage_Pool for access to subprogram
19054 (Resolve_Attribute, case 'Access et al): Take into account anonymous
19055 access types of return subtypes in extended return statements. Remove
19056 accessibility checks on anonymous access types when Unchecked_Access is
19057 used.
19058 (Analyze_Attribute): Add support for the use of 'Class to convert
19059 a class-wide interface to a tagged type.
19060 Add support for the attribute Priority.
19061 (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
19062 whether the designated type is discriminated with a constrained partial
19063 view and require static matching in that case.
19064 Add local variable Des_Btyp. The Designated_Type
19065 of an access to incomplete subtype is either its non-limited view if
19066 coming from a limited with or its etype if regular incomplete subtype.
19067
19068 * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
19069 Fix predicate to identify and allow cases of (expander-generated)
19070 references to tag of designated object of a RACW.
19071 (Validate_Static_Object_Name): In Ada 2005, a formal object is
19072 non-static, and therefore cannot appear as a primary in a preelaborable
19073 package.
19074 (Has_Stream_Attribute_Definition): New subprogram, abstracted from
19075 Has_Read_Write_Attributes.
19076 (Has_Read_Write_Attributes): Reimplement in termes of
19077 Has_Stream_Attribute_Definition.
19078 (Missing_Read_Write_Attributes): When checking component types in a
19079 record, unconditionally call Missing_Read_Write_Attributes recursively
19080 (remove guard checking for Is_Record_Type / Is_Access_Type).
19081
190822006-10-31 Robert Dewar <dewar@adacore.com>
19083
19084 * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
19085 useless assignments here and conditionalize it on absence of exception
19086 handlers.
19087 (Analyze_Exception_Handlers): Small code reorganization of error
19088 detection code, for new handling of formal packages.
19089
190902006-10-31 Ed Schonberg <schonberg@adacore.com>
19091 Hristian Kirtchev <kirtchev@adacore.com>
6f7f72f9
EB
19092
19093 * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
70198b9f
AC
19094 that has been constant-folded, preserve information of original tree,
19095 for ASIS uses.
19096 (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
19097 generated private extension declaration if the formal derived type is
19098 synchronized. Carry synchronized present over to the generated private
19099 extension.
19100 (Validate_Derived_Type_Instance): Ensure that the actual of a
19101 synchronized formal derived type is a synchronized tagged type.
19102 (Instantiate_Formal_Package): When creating the instantiation used to
19103 validate the actual package of a formal declared without a box, check
19104 whether the formal itself depends on a prior actual.
19105 (Instantiate_Formal_Subprogram): Create new entities for the defining
19106 identifiers of the formals in the renaming declaration, for ASIS use.
19107 (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
19108 a renaming declaration or a subtype declaration for an actual in an
19109 instance, capture location information of declaration in generic, for
19110 ASIS use.
19111 (Instantiate_Formal_Package): Add comments on needed additional tests.
19112 AI-317 (partial parametrization) is fully implemented.
19113 (Validate_Private_Type_Instance): Add check for actual which
19114 must have preelaborable initialization
19115 Use new // insertion for some continuation messages
19116 (Analyze_Formal_Object_Declaration): Change usage of Expression to
19117 Default_Expression. Add type retrieval when the declaration has an
19118 access definition. Update premature usage of incomplete type check.
19119 (Check_Access_Definition): New subsidiary routine. Check whether the
19120 current compilation version is Ada 05 and the supplied node has an
19121 access definition.
19122 (Instantiate object): Alphabetize local variables. Handle the creation
19123 of new renaming declarations with respect to the kind of definition
19124 used - either an access definition or a subtype mark. Guard against
19125 unnecessary error message in the context of anonymous access types after
19126 they have been resolved. Add check for required null exclusion in a
19127 formal object declaration.
19128 (Switch_View): A private subtype of a non-private type needs to be
19129 switched (the base type can have been switched without its private
19130 dependents because of the last branch of Check_Private_View.
19131 (Check_Private_View): Do not recompute Base_Type (T), instead use cached
19132 value from BT.
19133 (Instantiate_Type): Emit an error message whenever a class-wide type of
19134 a tagged incomplete type is used as a generic actual.
19135 (Find_Actual_Type): Extend routine to handle a component type in a child
19136 unit that is imported from a formal package in a parent.
19137 (Validate_Derived_Type_Instance): Check that analyzed formal and actual
19138 agree on constrainedness, rather than checking against ultimate ancestor
19139 (Instantiate_Subprogram_Body): Create a cross-reference link to the
19140 generic body, for navigation purposes.
19141
191422006-10-31 Robert Dewar <dewar@adacore.com>
19143 Thomas Quinot <quinot@adacore.com>
19144
19145 * sem_ch13.adb: Storage pool cannot be given for access to subprogram
19146 type.
19147 (New_Stream_Subprogram): When processing an attribute definition clause
19148 for a stream-oriented subprogram, record an entity node occurring at
19149 the point of clause to use for checking the visibility of the clause,
19150 as defined by 8.3(23) as amended by AI-195.
19151 (New_Stream_Subprogram): New procedure, factoring behaviour from both
19152 New_Stream_Function and New_Stream_Procedure.
19153 (New_Stream_Function, New_Stream_Procedure): Removed.
19154 (Analyze_Attribute_Definition_Clause, case Address): Check new
19155 Alignment_Check check
19156
191572006-10-31 Ed Schonberg <schonberg@adacore.com>
19158 Javier Miranda <miranda@adacore.com>
19159 Robert Dewar <dewar@adacore.com>
19160
19161 * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
19162 generate the same errors compiling under -gnatc.
19163 (Try_Object_Operation): If no candidate interpretation succeeds, but
19164 there is at least one primitive operation with the right name, report
19165 error in call rather than on a malformed selected component.
19166 (Analyze_Selected_Component): If the prefix is an incomplete type from
19167 a limited view, and the full view is available, use the full view to
19168 determine whether this is a prefixed call to a primitive operation.
19169 (Operator_Check): Verify that a candidate interpretation is a binary
19170 operation before checking the type of its second formal.
19171 (Analyze_Call): Add additional warnings for function call contexts not
19172 yet supported.
19173 (Analyze_Allocator): Move the check for "initialization not allowed for
19174 limited types" after analyzing the expression. This is necessary,
19175 because OK_For_Limited_Init looks at the structure of the expression.
19176 Before analysis, we don't necessarily know what sort of expression it
19177 is. For example, we don't know whether F(X) is a function call or an
19178 indexed component; the former is legal in Ada 2005; the latter is not.
19179 (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
19180 were missing. We also didn't handle qualified expressions. Now also
19181 allow function calls. Use new common routine OK_For_Limited_Init.
19182 (Analyze_Type_Conversion): Do not perform some legality checks in an
19183 instance, because the error message will be redundant or spurious.
19184 (Analyze_Overloaded_Selected_Component): Do not do style check when
19185 setting an entity, since we do not know it is the right entity yet.
19186 (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
19187 (Analyze_Overloaded_Selected_Component): Same change
19188 (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
19189 since regular incomplete subtypes are transformed into corresponding
19190 subtypes of their full views.
19191 (Complete_Object_Operation): Treat name of transformed subprogram call
19192 as coming from source, for browsing purposes.
19193 (Try_Primitive_Operation): If formal is an access parameter, compare
19194 with base type of object to determine whether it is a primitive
19195 operation.
19196 (Operator_Check): If no interpretation of the operator matches, check
19197 whether a use clause on any candidate might make the operation legal.
19198 (Try_Class_Wide_Operation): Check whether the first parameter is an
19199 access type whose designated type is class-wide.
19200
192012006-10-31 Robert Dewar <dewar@adacore.com>
19202 Ed Schonberg <schonberg@adacore.com>
19203 Gary Dismukes <dismukes@adacore.com>
19204
19205 * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
19206 warn on infinite loops.
19207 Add \\ to some continuation messages
19208 (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
19209 (Process_Bounds): If the bounds are integer literals that result from
19210 constant-folding, and they carry a user-defined type, preserve that type
19211 rather than treating this as an integer range.
19212 (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
19213 (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
19214 (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
19215 left hand side of assignment.
19216 (Analyze_Assignment): Add suport to manage assigments to the attribute
19217 priority of a protected object.
19218 (Check_Possible_Current_Value_Condition): Allow fully qualified names
19219 not just identifiers.
19220 (Check_Possible_Current_Value_Condition): Acquire left operand of AND
19221 or AND THEN for possible tracking.
19222 (Analyze_Iteration_Scheme): Check for setting Current_Value for the
19223 case of while loops so we can track values in the loop body.
19224
192252006-10-31 Ed Schonberg <schonberg@adacore.com>
19226 Hristian Kirtchev <kirtchev@adacore.com>
19227 Bob Duff <duff@adacore.com>
6f7f72f9 19228
70198b9f
AC
19229 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
19230 procedure cannot be a protected operation (it is a basic_declaration,
19231 not a subprogram_declaration).
19232 (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
19233 Subp. Add logic for entry processing.
19234 (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
19235 Determine whether an entry or subprogram of a protected or task type
19236 override an inherited primitive of an implemented interface.
19237 (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
19238 Update the actual used in calls to Check_Overriding_Indicator.
19239 (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
19240 generate the proper reference to the parent unit, for cross-reference.
19241 (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
19242 Is_Formal.
19243 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
19244 (Add_Extra_Formal): Revise procedure to allow passing in associated
19245 entity, scope, and name suffix, and handle setting of the new
19246 Extra_Formals field.
19247 (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
19248 pass new parameters. Add support for adding the new extra access formal
19249 for functions whose calls are treated as build-in-place.
19250 (Analyze_A_Return_Statement): Correct casing in error message.
19251 Move Pop_Scope to after Analyze_Function_Return, because an extended
19252 return statement really is a full-fledged scope. Otherwise, visibility
19253 doesn't work right. Correct use of "\" for continuation messages.
19254 (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
19255 evilly trying to call Analyze_Object_Declaration directly. Otherwise,
19256 the node doesn't get properly marked as analyzed.
19257 (Analyze_Subprogram_Body): If subprogram is a function that returns
19258 an anonymous access type that denotes a task, build a Master Entity
19259 for it.
19260 (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
19261 proper usage of null exclusion in a result definition.
19262 (Process_Formals): Code cleanup and new error message.
19263 (Process_Formals): Detect incorrect application of null exclusion to
19264 non-access types.
19265 (Conforming_Types): Handle conformance between [sub]types and itypes
19266 generated for entities that have null exclusions applied to them.
19267 (Maybe_Primitive_Operation): Add an additional type retrieval when the
19268 base type is an access subtype. This case arrises with null exclusions.
19269 (New_Overloaded_Entity): Do not remove the overriden entity from the
19270 homonym chain if it corresponds with an abstract interface primitive.
19271 (Process_Formals): Replace membership test agains Incomplete_Kind with a
19272 call to the synthesized predicate Is_Incomplete_Type.
19273 (Analyze_Subprogram_Body): Check wrong placement of abstract interface
19274 primitives.
19275 (Analyze_Subprogram_Declaration): Check that abstract interface
19276 primitives are abstract or null.
19277 (Analyze_Subprogram_Specification): Remove previous check for abstract
19278 interfaces because it was not complete.
19279 (Has_Interface_Formals): Removed.
19280
192812006-10-31 Ed Schonberg <schonberg@adacore.com>
19282 Javier Miranda <miranda@adacore.com>
19283
19284 * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
19285 of Analyze_Package_Body, to create Itype references for anonymous
19286 access types created in the package declaration, whose designated types
19287 may have only a limited view.
19288 (Analyze_Package_Specification): For the private part of a nested
19289 package, install private_with_clauses of enclosing compilation unit if
19290 we are in its visible part.
19291 (Declare_Inherited_Private_Subprograms): Complete barrier
19292 to ensure that the primitive operation has an alias to some parent
19293 primitive. This is now required because, after the changes done for the
19294 implementation of abstract interfaces, the contents of the list of
19295 primitives has entities whose alias attribute references entities of
19296 such list of primitives.
19297 (Analyze_Package_Specification): Simplify code that handles parent units
19298 of instances and formal packages.
19299 (Uninstall_Declarations): Check the convention consistency among
19300 primitive overriding operations of a tagged record type.
19301
193022006-10-31 Robert Dewar <dewar@adacore.com>
19303 Hristian Kirtchev <kirtchev@adacore.com>
19304 Javier Miranda <miranda@adacore.com>
19305 Ed Schonberg <schonberg@adacore.com>
6f7f72f9 19306
70198b9f
AC
19307 * sem_ch8.adb: Minor error msg rewording
19308 (Undefined): When checking for misspellings, invert arguments (to get
19309 expected and found set right)
19310 (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
19311 (Analyze_Generic_Renaming): Same fix
19312 (Use_One_Package): Do not take into account the internal entities of
19313 abstract interfaces during the analysis of entities that are marked
19314 as potentially use-visible.
19315 (Find_Type): Handle the case of an attribute reference for
19316 implementation defined attribute Stub_Type (simply let the analysis of
19317 the attribute reference rewrite it).
19318 (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
19319 type that appears in a Use_Type clause.
19320 (Analyze_Object_Renaming): Add support for renaming of the Priority
19321 attribute.
19322 (Find_Type): In Ada 2005, a task type can be used within its own body,
19323 when it appears in an access definition.
19324 (Analyze_Object_Renaming): Remove warning on null_exclusion.
19325 (Analyze_Object_Renaming): Introduce checks for required null exclusion
19326 in a formal object declaration or in a subtype declaration.
19327 (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
19328 (Check_Null_Exclusion): New local routine to
19329 Analyze_Subprogram_Renaming. Check whether the formals and return
19330 profile of a renamed subprogram have required null exclusions when
19331 their counterparts of the renaming already impose them.
19332 (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
19333 Determine whether an entity is inside a generic scope.
19334 (In_Open_Scope): First pass of documentation update.
19335 (Find_Expanded_Name): Add support for shadow entities associated with
19336 limited withed packages. This is required to handle nested packages.
19337 (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
19338 that makes a renaming of a limited withed package illegal.
19339
193402006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
19341 Ed Schonberg <schonberg@adacore.com>
19342
19343 * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
19344 Check_Overriding_Indicator.
19345 (Analyze_Task_Definition): Ditto.
19346 (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
19347 (Check_Overriding_Indicator): To find overridden interface operation,
19348 examine only homonyms that have an explicit subprogram declaration, not
19349 inherited operations created by an unrelated type derivation.
19350 (Check_Overriding_Indicator): When checking for the presence of "null"
19351 in a procedure, ensure that the queried node is a procedure
19352 specification.
19353 (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
19354 type when the formal is an access to variable.
19355 (Analyze_Protected_Type): Add check for Preelaborable_Initialization
19356 (Analyze_Task_Type): Same addition
19357 (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
19358 provide navigation capabilities for entries.
19359
193602006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
19361 Ed Schonberg <schonberg@adacore.com>
19362 Javier Miranda <miranda@adacore.com>
19363 Gary Dismukes <dismukes@adacore.com>
19364
19365 * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
19366 inherited from an interface ancestor by another interface in the
19367 context of an instance as 'late'.
19368 (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
19369 of a call to a function that dispatches on access result.
19370 (Check_Dispatching_Operation): In case of late overriding of a primitive
19371 that covers abstract interface subprograms we register it in all the
19372 secondary dispatch tables associated with abstract interfaces.
19373 (Check_Dispatching_Call): Add check that a dispatching call is not made
19374 to a function with a controlling result of a limited type. This is a
19375 current implementation restriction.
19376 (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
19377 (Check_Dispatching_Operation): Do no emit a warning if the controlling
19378 argument is an interface type that is a generic formal.
19379 (Is_Interface_Subprogram): Removed.
19380 (Check_Dispatching_Operation): If the subprogram is not a dispatching
19381 operation, check the formals to handle the case in which it is
19382 associated with an abstract interface type.
19383
193842006-10-31 Robert Dewar <dewar@adacore.com>
19385 Ed Schonberg <schonberg@adacore.com>
19386
19387 * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
19388 Add new calls to this procedure during traversal
19389 (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
19390 another unit if expansion is disabled.
19391
193922006-10-31 Robert Dewar <dewar@adacore.com>
19393
19394 * sem_eval.adb (Compile_Time_Compare): Make use of information from
19395 Current_Value in the conditional case, to evaluate additional
19396 comparisons at compile time.
19397
193982006-10-31 Ed Schonberg <schonberg@adacore.com>
19399 Hristian Kirtchev <kirtchev@adacore.com>
19400 Javier Miranda <miranda@adacore.com>
19401
19402 * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
19403 subprogram type to provide better diagnostics in case of ambiguity.
19404 (Covers): Handle coverage of formal and actual anonymous access types in
19405 the context of generic instantiation.
19406 (Covers/Interface_Present_In_Ancestors): Use the base type to manage
19407 abstract interface types; this is required to handle concurrent types
19408 with discriminants and abstract interface types.
19409 (Covers): Include type coverage of both regular incomplete subtypes and
19410 incomplete subtypes of incomplete type visibles through a limited with
19411 clause.
19412
194132006-10-31 Robert Dewar <dewar@adacore.com>
19414 Hristian Kirtchev <kirtchev@adacore.com>
19415 Ed Schonberg <schonberg@adacore.com>
6f7f72f9
EB
19416
19417 * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
70198b9f
AC
19418 messages for entities in packages which are not used.
19419 (Collect_Synchronized_Interfaces): New procedure.
19420 (Overrides_Synchronized_Primitive): New function.
19421 (Denotes_Discriminant): Extend predicate to apply to task types.
19422 Add missing continuation marks in error msgs
19423 (Unqualify): New function for removing zero or more levels of
19424 qualification from an expression. There are numerous places where this
19425 ought to be used, but we currently only deal properly with zero or one
19426 level.
19427 (In_Instance); The analysis of the actuals in the instantiation of a
19428 child unit is not within an instantiation, even though the parent
19429 instance is on the scope stack.
19430 (Safe_To_Capture_Value): Exclude the case of variables that are
19431 renamings.
19432 (Check_Obsolescent): Removed
19433 (Is_Aliased_View): A reference to an enclosing instance in an aggregate
19434 is an aliased view, even when rewritten as a reference to the target
19435 object in an assignment.
19436 (Get_Subprogram_Entity): New function
19437 (Known_To_Be_Assigned): New function
19438 (Type_Access_Level): Compute properly the access level of a return
19439 subtype that is an anonymous access type.
19440 (Explain_Limited_Type): Correct use of "\" for continuation messages.
19441 (Is_Transfer): The new extended_return_statement causes a transfer of
19442 control.
19443 (Has_Preelaborable_Initialization): New function
19444 (Has_Null_Exclusion): New function. Given a node N, determine whether it
19445 has a null exclusion depending on its Nkind.
19446 Change Is_Lvalue to May_Be_Lvalue
19447 (May_Be_Lvalue): Extensive additional code to deal with subprogram
19448 arguments (IN parameters are not Lvalues, IN OUT parameters are).
19449 (Safe_To_Capture_Value): Extend functionality so it can be used for
19450 the current value condition case.
19451 (Has_Compatible_Alignment): New function
19452 (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
19453 objects to handle the Ada 2005 case, where aliasedness no longer implies
19454 that the object is constrained. In particular, for dereferenced names,
19455 the designated object must be assumed to be unconstrained.
19456 (Kill_Current_Values): Properly deal with the case where we encounter
19457 a loop in the scope chain.
19458 (Safe_To_Capture_Value): Do not let a loop stop us from capturing
19459 a value.
19460 (Compile_Time_Constraint_Error): Improve error message in error case
19461
19462 * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
19463 associated with entities of abstract interface primitives.
19464 Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
19465
194662006-10-31 Robert Dewar <dewar@adacore.com>
19467
9e81dbc7 19468 * s-osinte-tru64.adb:
70198b9f
AC
19469 Mark Asm statements Volatile to prevent warnings (seems a
19470 reasonable change anyway)
19471 Fixes new warnings
19472
19473 * s-mastop-irix.adb: Add Volatile to Asm statements
19474 Suppresses warning, and seems appropriate in any case
19475
19476 * s-osinte-vms.adb: Add Volatile to Asm statement
19477
19478 * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
19479
19480 * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
19481 returned.
19482 Add call to Check_Code_Statement
19483
194842006-10-31 Robert Dewar <dewar@adacore.com>
19485 Ed Schonberg <schonberg@adacore.com>
19486 Bob Duff <duff@adacore.com>
19487
19488 * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
19489 Synchronized_Present): Add Formal_Derived_Type_Definition and
19490 Private_Extension_Declaration to the list of assertions.
19491 (Is_Entry_Barrier_Function): New flag
19492 (Has_Self_Reference): New flag on aggregates, to indicate that they
19493 contain a reference to the enclosing type, inserted through a default
19494 initialization.
19495 (Next_Rep_Item): Move from Node4 to Node5.
19496 (Entity): Add this field for N_Attribute_Definition_Clause.
19497 (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
19498 (N_Return_Object_Declaration): Remove this node kind. We now use
19499 N_Object_Declaration instead.
19500 (Actual_Designated_Subtype): Move to a different place to make room in
19501 N_Extended_Return_Statement.
19502 (Procedure_To_Call): Move to a different place to make room in
19503 N_Extended_Return_Statement.
19504 (Return_Type): Removed this field to make room in return statements
19505 (both kinds).
19506 (Return_Statement_Entity): New field in return statements, in part to
19507 replace Return_Type, and in part to support the fact that return
19508 statements are now pushed on the scope stack during semantic analysis.
19509 (Return_Object_Declarations): New field to support extended return
19510 statements.
19511 (N_Extended_Return_Statement): New node for extended_return_statement
19512 nonterminal.
19513 (N_Return_Object_Declaration): New node for part of
19514 extended_return_statement nonterminal. Needed because all the necessary
19515 fields won't fit in N_Extended_Return_Statement.
19516 Generic_associations now carry the Box_Present flag, to indicate a
19517 default for an actual in a partially parametrized formal package.
19518
6f7f72f9 19519 * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
70198b9f
AC
19520 (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
19521 and for the new predefined dispatching policies: EDF_Across_Priorities,
19522 Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
19523 Introduce new name Stub_Type for implementation defined attribute.
19524 Add pragma Preelaborable_Initialization
19525 Add entry for Priority attribute.
19526 Add Pragma_Wide_Character_Encoding
19527 (Get_Convention_Name): Given a convention id, this function returns the
19528 corresponding name id from the names table.
19529
195302006-10-31 Ed Schonberg <schonberg@adacore.com>
19531 Robert Dewar <dewar@adacore.com>
19532 Bob Duff <duff@adacore.com>
19533
19534 * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
19535 print null exclusion twice in the case of an access definition,
19536 Implement new -gnatL switch
19537 Remove N_Return_Object_Declaration. We now use
19538 N_Object_Declaration instead. Implement the case for
19539 N_Extended_Return_Statement. Alphabetize the cases.
19540 Add cases for new nodes N_Extended_Return_Statement and
19541 N_Return_Object_Declaration. The code is not yet written.
19542 Update the output for N_Formal_Object_Declaration
19543 and N_Object_Renaming_Declaration.
19544 (Write_Itype): Account for the case of a modular integer subtype whose
19545 base type is private.
19546
195472006-10-31 Arnaud Charlet <charlet@adacore.com>
19548
19549 * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
19550 Remove elaboration code, now done in the binder.
19551
19552 * s-rident.ads: Make this unit Preelaborate.
19553 (No_Restrictions): New constant used to clean up code and follow
19554 preelaborate constraints.
19555
9e81dbc7 19556 * s-stalib.adb:
70198b9f
AC
19557 Add System.Restrictions dependence, referenced directly from the
19558 binder generated file.
19559
195602006-10-31 Gary Dismukes <dismukes@adacore.com>
19561
19562 * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
19563 True when AAMP extended floating-point is in use (48-bit). Change type
19564 ByteLF to ByteLLF, add new array type ByteLF and condition the size of
19565 the two byte array types on AFloat. Change type of IV_Ilf overlay
19566 variable from Byte8 to ByteLF. Add appropriate initializations of
19567 floating-point overlays for AAMP cases.
19568
195692006-10-31 Javier Miranda <miranda@adacore.com>
19570
19571 * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
19572 (Get_Ceiling): New subprogram that returns
19573 the ceiling priority of the protected object.
19574 (Set_Ceiling): New subprogram that sets the new ceiling priority of
19575 the protected object.
19576
19577 * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
19578
19579 * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
19580
195812006-10-31 Jose Ruiz <ruiz@adacore.com>
19582
19583 * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
19584 requeuing to the same protected object to give higher priority tasks
19585 the opportunity to execute.
19586
195872006-10-31 Robert Dewar <dewar@adacore.com>
19588
19589 * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
19590 add more precise check for the character sequence that follows '[' to
19591 avoid possible confusion in case if '[' is the last character of a
19592 string literals.
19593 (Scan_Wide): Always allow brackets encoding
19594
195952006-10-31 Olivier Hainque <hainque@adacore.com>
19596
19597 * s-stchop.ads: make this unit preelaborate. This is desirable in
19598 general and made mandatory by the use of this unit by s-taprop which
19599 is itself preelaborate.
19600
19601 * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
19602 Td_Events component.
19603
196042006-10-31 Vincent Celier <celier@adacore.com>
19605
19606 * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
19607 in file names.
19608
196092006-10-31 Vincent Celier <celier@adacore.com>
19610
19611 * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
19612
196132006-10-31 Vincent Celier <celier@adacore.com>
19614
19615 * makegpr.adb (Check_Compilation_Needed): Take into account path names
19616 with spaces.
19617 (Check_Compilation_Needed): When checking a C or C++ source, do not
19618 resolve symbolic links.
19619 (Display_Command): New Boolean parameter Ellipse, defaulted to False.
19620 When not in verbose mode and Ellipse is True, display "..." for the
19621 first argument with Display set to False.
19622 (Build_Global_Archive): Always set Display True for the first object
19623 file. Call Display_Command with Ellipse set to True.
19624
196252006-10-31 Matt Heaney <heaney@adacore.com>
19626
19627 * a-crbtgo.ads: Commented each subprogram
19628
19629 * a-crbtgo.adb: Added reference to book from which algorithms were
19630 adapted.
19631
6f7f72f9 19632 * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
70198b9f
AC
19633 indicate which child.
19634 (Generic_Conditional_Insert): changed parameter name from "Success" to
19635 "Inserted".
19636 (Generic_Unconditional_Insert_With_Hint): improved algorithm
19637
19638 * a-coorse.adb (Replace_Element): changed parameter name in call to
19639 conditional insert operation.
19640
19641 * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
19642
19643 * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
19644 Generic_Iteration
19645
19646 * a-ciorse.adb (Replace_Element): changed parameter name in call to
19647 conditional insert operation.
19648
19649 * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
19650 Generic_Iteration.
19651
19652 * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
19653 instead of mode inout.
19654
19655 * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
19656 draft
19657 (Generic_Read): preserve existing buckets array if possible
19658 (Generic_Write): don't send buckets array length anymore
19659
19660 * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
19661 instead of mode inout.
19662
19663 * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
19664 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19665
19666 * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
19667 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19668 (Replace_Element): local operation is now an instantiation
19669
19670 * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
19671 check current length.
19672 (Generic_Replace_Element): new operation
19673
196742006-10-31 Doug Rupp <rupp@adacore.com>
19675
19676 * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
19677 Call TBK$SYMBOLIZE without omitting parameters.
19678
196792006-10-31 Vincent Celier <celier@adacore.com>
19680
19681 * symbols-processing-vms-ia64.adb,
19682 symbols-processing-vms-alpha.adb (Process): Do not include symbols
19683 that come from generic instantiations in bodies.
19684
196852006-10-31 Pat Rogers <rogers@adacore.com>
19686
9e81dbc7 19687 * a-rttiev.ads, a-rttiev.adb:
70198b9f
AC
19688 This is a significant redesign primarily for the sake of automatic
19689 timer task termination but also to fix a design flaw.
19690 Therefore we are now using an RTS lock, instead of a protected
19691 object, to provide mutual exclusion to the queue of pending events
19692 and the type Timing_Event is no longer a protected type.
19693
196942006-10-31 Robert Dewar <dewar@adacore.com>
19695 Cyrille Comar <comar@adacore.com>
19696 Ben Brosgol <brosgol@adacore.com>
19697
19698 * debug.adb: Update flags documentation
19699
6f7f72f9
EB
19700 * gnat_ugn.texi: Add documentation for new -gnatwq switch
19701 Clean up documentation for several other warning switches
19702 Clarify how task stack size can be specified with various
19703 versions of Windows.
19704 Add note that -gnatVo includes ranges including loops
70198b9f
AC
19705 Add documentation for -gnatL switch
19706 Add note on elaboration warning for initializing variables
19707 Add documentation for new -gnatwt warning switch
19708 Document new form of pragma Warnings (On|Off, string)
19709 Add comment on use of pragma Warnings to control warnings
19710 Add documentation for -gnatjnn switch
19711 Modify section on interfacing with C for VMS 64-bit.
19712 Add doc for -gnatVe/E
19713 Add documentation of new warning flags -gnatww/-gnatwW
19714 Add warnings about address clause overlays to list of warnings
19715 (Exception Handling Control): Document that the option --RTS must be
19716 used consistently for gcc and gnatbind.
19717 Clarify that inlining is not always possible
19718 Update documentation on pragma Unchecked_Union.
19719
9e81dbc7 19720 * gnat_rm.texi:
70198b9f
AC
19721 Add documentation for new extended version of pragma Obsolescent
19722 Add documentation for implementation defined attribute 'Stub_Type.
19723 Add note on use of Volatile in asm statements
19724 Add documentation on use of pragma Unreferenced in context clause
19725 Document new form of pragma Warnings (On|Off, pattern)
19726 Document pragma Wide_Character_Encoding
19727 Add note that pragma Restrictions (No_Elaboration_Code) is only fully
19728 enforced if code generation is active.
19729 Add section on pragma Suppress to document GNAT specific check
19730 Alignment_Check
19731 Clarify difference between No_Dispatching_Calls & No_Dispatch.
19732 Add documentation for pragma Restrictions (No_Elaboration_Code)
19733
9e81dbc7 19734 * gnat-style.texi:
70198b9f
AC
19735 Add comments on layout of subprogram local variables in the
19736 presence of nested subprograms.
19737
6f7f72f9 19738 * ug_words: Resync.
70198b9f
AC
19739
19740 * elists.ads: Minor reformatting
19741 Node returns Node_Or_Entity_Id (doc change only)
19742
19743 * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
19744
19745 * g-arrspl.ads (Create): Update comments.
19746
19747 * sem.ads: Add details on the handling of the scope stack.
19748
6f7f72f9 19749 * usage.adb: Update documentation.
70198b9f 19750
9e81dbc7 19751 * validsw.ads, validsw.adb:
70198b9f
AC
19752 Add definition of Validity_Check_Components and implement -gnatVe/E
19753
6f7f72f9 19754 * vms_data.ads: Add missing VMS qualifiers.
70198b9f
AC
19755
19756 * s-addope.ads: Add documentation on overflow and divide by zero
19757
197582006-10-31 Robert Dewar <dewar@adacore.com>
19759 Thomas Quinot <quinot@adacore.com>
19760 Arnaud Charlet <charlet@adacore.com>
19761
19762 * fmap.adb: Put routines in alpha order
19763
19764 * g-boumai.ads: Remove redundant 'in' keywords
19765
19766 * g-cgi.adb: Minor reformatting
19767
19768 * g-cgi.ads: Remove redundant 'in' keywords
19769
19770 * get_targ.adb: Put routines in alpha order
19771
19772 * prj-attr.ads: Minor reformatting
19773
19774 * s-atacco.ads: Minor reformatting
19775
19776 * scn.adb: Put routines in alpha order
19777
19778 * sinput-l.adb: Minor comment fix
19779
19780 * sinput-p.adb: Minor comment fix
19781
19782 * s-maccod.ads: Minor reformatting
19783
19784 * s-memory.adb: Minor reformatting
19785
19786 * s-htable.adb: Fix typo in comment.
19787
19788 * s-secsta.adb: Minor comment update.
19789
19790 * s-soflin.adb: Minor reformatting
19791
9e81dbc7 19792 * s-stoele.ads:
70198b9f
AC
19793 Add comment about odd qualification in Storage_Offset declaration
19794
9e81dbc7 19795 * s-strxdr.adb:
70198b9f
AC
19796 Remove unnecessary 'in' keywords for formal parameters.
19797
19798 * treeprs.adt: Minor reformatting
19799
19800 * urealp.adb: Put routines in alpha order
19801
19802 * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
19803 taking string.
19804
19805 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
19806
19807 * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
19808
19809 * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
19810 workaround as on other platforms.
19811
19812 * g-eacodu-vms.adb: Remove redundant 'in' keywords
19813 * g-expect-vms.adb: Remove redundant 'in' keywords
19814
19815 * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
19816 clear error message if the list-of-files file cannot be opened.
19817
19818 * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
19819 equality operator is always visible.
19820
19821 * lang.opt: Woverlength-strings: New option.
19822
9e81dbc7 19823 * nmake.adt:
70198b9f
AC
19824 Update copyright, since nmake.ads and nmake.adb have changed.
19825
19826 * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
19827 (Binder_Output_Time_Stamps_Set): removed.
19828 (Old_Binder_Output_Time_Stamp): idem.
19829 (New_Binder_Output_Time_Stamp): idem.
19830 (Recording_Time_From_Last_Bind): idem.
19831 (Recording_Time_From_Last_Bind): Make constant.
19832
19833 * output.ads, output.adb (Write_Str): Allow LF characters
19834 (Write_Spaces): New procedure
19835
19836 * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
19837
19838 * inline.adb: Minor reformatting
19839
19840 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
19841
19842 * s-mastop-vms.adb: Remove redundant 'in' keywords
19843
19844 * s-osprim-vms.adb: Remove redundant 'in' keywords
19845
19846 * s-trafor-default.adb: Remove redundant 'in' keywords
19847
19848 * 9drpc.adb: Remove redundant 'in' keywords
19849
19850 * s-osinte-mingw.ads: Minor reformatting
19851
19852 * s-inmaop-posix.adb: Minor reformatting
19853
19854 * a-direio.ads: Remove quotes from Compile_Time_Warning message
19855
19856 * a-exexda.adb: Minor code reorganization
19857
19858 * a-filico.adb: Minor reformatting
19859
19860 * a-finali.adb: Minor reformatting
19861
19862 * a-nudira.ads: Remove quote from Compile_Time_Warning message
19863
19864 * a-numeri.ads: Minor reformatting
19865
19866 * a-sequio.ads: Remove quotes from Compile_Time_Warning message
19867
19868 * exp_pakd.ads: Fix obsolete comment
19869
19870 * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
19871 a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
19872 Probably not a bug, but certainly neater and more efficient.
19873
19874 * a-tienio.adb: Minor reformatting
19875
19876 * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
19877 Avoid assuming low bound of string is 1.
19878
19879 * gnatbind.adb: Change Bindusg to package and rename procedure as
19880 Display, which now ensures that it only outputs usage information once.
19881 (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
19882
19883 * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
19884 Table'First.
19885
19886 * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
19887 warning.
19888 (Match): Add pragma Assert to ensure that Matches'First is zero
19889
19890 * g-regpat.ads (Match): Document that Matches lower bound must be zero
19891
19892 * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
19893 documented preconditions (also kills warnings about bad indexes).
19894
19895 * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
19896 is 1.
19897 (Build_Import_Library): Ditto;
19898
19899 * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
19900
19901 * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
19902
19903 * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
19904 lower bound of choice table is 1.
19905
19906 * sem_case.ads (Analyze_Choices): Document that lower bound of
19907 Choice_Table is 1.
19908
19909 * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
19910 string is 1.
19911
19912 * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
19913 and add appropriate Assert pragma to suppress warnings.
19914
19915 * atree.h, atree.ads, atree.adb
19916 Change Elist24 to Elist25
19917 Add definitions of Field28 and Node28
19918 (Traverse_Field): Use new syntactic parent table in sinfo.
19919
19920 * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
19921
19922 * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
19923
19924 * exp_tss.adb: Put routines in alpha order
19925
19926 * fe.h: Remove redundant declarations.
19927
719bb4e3 199282006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
ed41063a 19929
c79efc4d
RÁE
19930 * utils.c (builtin_function): Rename to gnat_builtin_function.
19931 Move common code to add_builtin_function.
19932 * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
19933 gnat_builtin_function.
19934 * gigi.h (builtin_function): Rename to gnat_builtin_function.
19935 Change the signature.
19936
a8384928
BM
199372006-10-16 Brooks Moses <bmoses@stanford.edu>
19938
19939 * Makefile.in: Add TEXI2PDF definition.
19940 * Make-lang.in: Add "ada.pdf" target.
19941
2285b053
KH
199422006-10-03 Kazu Hirata <kazu@codesourcery.com>
19943
19944 * decl.c, utils.c: Fix comment typos.
c0a69967
KH
19945 * utils.c: Fix a typo.
19946
b55e7f34
EB
199472006-09-28 Eric Botcazou <ebotcazou@adacore.com>
19948
19949 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
19950 on "pure" Ada subprograms if SJLJ exceptions are used.
19951 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
19952 on the declaration node of JMPBUF_SAVE.
19953 * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
19954 of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
19955 * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
19956
9e94c78f 199572006-08-20 Laurent Guerby <laurent@guerby.net>
d2b40c09 19958
7a197678
EB
19959 PR ada/28716
19960 g-socket.adb (Bind_Socket): Call Set_Address.
19961
41d9adc7
EB
199622006-09-15 Eric Botcazou <ebotcazou@adacore.com>
19963
19964 PR ada/15802
19965 * decl.c (same_discriminant_p): New static function.
19966 (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
19967 subtype and we have discriminants, fix up the COMPONENT_REFs
19968 for the discriminants to make them reference the corresponding
19969 fields of the parent subtype after it has been built.
19970
21cc3719
RS
199712006-09-15 Roger Sayle <roger@eyesopen.com>
19972
19973 PR ada/18817
19974 * utils.c (max_size): Perform constant folding of (A ? B : C) - D
19975 into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
19976
6f2789da
OH
199772006-09-13 Olivier Hainque <hainque@adacore.com>
19978
19979 PR ada/29025
19980 * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
19981 of a SAVE_EXPR, just make the operand addressable/not-readonly and
19982 let the common gimplifier code make and propagate a temporary copy.
19983 (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
19984 out/in-out actuals and defer setting the addressable/readonly bits
19985 to the gimplifier.
19986
efaa616e
EB
199872006-09-13 Eric Botcazou <ebotcazou@adacore.com>
19988
19989 PR ada/28591
19990 * decl.c (components_to_record): Defer emitting debug info for the
19991 record type associated with the variant until after we are sure to
19992 actually use it.
19993
2655f1c6
EB
199942006-09-13 Eric Botcazou <ebotcazou@adacore.com>
19995
19996 PR ada/21952
19997 * gigi.h (gnat_internal_attribute_table): Declare.
19998 * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
19999 * utils.c (gnat_internal_attribute_table): New global variable.
20000 (builtin_function): Always call decl_attributes on the builtin.
20001 (handle_const_attribute): New static function.
20002 (handle_nothrow_attribute): Likewise.
20003
48779194
VR
200042006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
20005
20006 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
20007
8df7d439
EB
200082006-06-23 Olivier Hainque <hainque@adacore.com>
20009
20010 * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
20011 not been able to get a constant upper bound from TYPE_SIZE_UNIT.
20012
83fdc7c4 200132006-06-20 James A. Morrison <phython@gcc.gnu.org>
6f7f72f9 20014 Eric Botcazou <ebotcazou@adacore.com>
83fdc7c4
JM
20015
20016 PR ada/18692
20017 * Make-lang.in: Add check-gnat to lang_checks. Rename existing
20018 check-gnat into check-acats.
20019
5f516f59
KB
200202006-06-17 Karl Berry <karl@gnu.org>
20021
6f7f72f9 20022 * gnat-style.texi (@dircategory): Use "Software development"
5f516f59
KB
20023 instead of "Programming", following the Free Software Directory.
20024
ce0d1b88
JDA
200252006-06-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20026
20027 PR ada/27944
20028 * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
20029
9e94c78f 200302006-06-06 Laurent Guerby <laurent@guerby.net>
8c60f779 20031
6f7f72f9
EB
20032 PR ada/27769
20033 mlib-utl.adb: Use Program_Name.
20034
ce2e12c2
KH
200352006-05-28 Kazu Hirata <kazu@codesourcery.com>
20036
20037 * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
20038 sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
20039 trans.c, utils.c: Fix comment typos. Follow spelling
20040 conventions.
20041 * gnat_rm.texi, gnat_ugn.texi, : Fix typos. Follow spelling
20042 conventions.
20043
ba4ac682
EB
200442006-05-19 Nicolas Setton <setton@adacore.com>
20045
20046 * misc.c (gnat_dwarf_name): New function.
20047 (LANG_HOOKS_DWARF_NAME): Define to it.
20048
05b44921
L
200492006-05-14 H.J. Lu <hongjiu.lu@intel.com>
20050
20051 * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
20052 (ada/misc.o): Likewise.
20053 (ada/utils.o): Likewise.
20054
a3bd7058
AJ
200552006-04-08 Aurelien Jarno <aurel32@debian.org>
20056
20057 * Makefile.in: Add Ada support for GNU/kFreeBSD.
20058 * s-osinte-kfreebsd-gnu.ads: New file.
20059
ad3a7ce3
CD
200602006-03-29 Carlos O'Donell <carlos@codesourcery.com>
20061
20062 * Make-lang.in: Rename docdir to gcc_docdir.
20063
936a6fa7
EB
200642006-03-04 Eric Botcazou <ebotcazou@adacore.com>
20065
20066 * gigi.h (get_ada_base_type): Delete.
20067 * utils2.c (get_ada_base_type): Likewise.
20068 * trans.c (convert_with_check): Operate in the real base type.
20069
93f978b7
RK
200702006-03-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
20071
20072 * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
20073
434aeebb
RS
200742006-03-02 Richard Sandiford <richard@codesourcery.com>
20075
20076 * utils.c (create_var_decl): Use have_global_bss_p when deciding
20077 whether to make the decl common.
20078
719bb4e3 200792006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
93f978b7 20080
ed41063a 20081 * Make-lang.in (Ada): Remove.
9d29a5b7
RE
20082 (.PHONY): Remove Ada
20083
c63f730e
AC
200842006-02-17 Ed Schonberg <schonberg@adacore.com>
20085
20086 * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
20087 aggregate, check the interpretations of the other operand to find one
20088 that may be a boolean array.
20089
20090 (Analyze_Selected_Component): Fix flow-of-control typo in case where
20091 the prefix is a private extension.
20092
200932006-02-17 Eric Botcazou <botcazou@adacore.com>
20094
20095 PR ada/26315
c63f730e
AC
20096 * utils2.c (find_common_type): If both input types are BLKmode and
20097 have the same constant size, keep using the first one.
20098
20099 * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
20100
20101 * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
20102
20103 * misc.c (gnat_handle_option): New case for -Woverlength-strings.
20104
201052006-02-17 Jose Ruiz <ruiz@adacore.com>
20106
9e81dbc7
AS
20107 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
20108 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
20109 s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
c63f730e
AC
20110 s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
20111 Abort_Defer/Undefer pairs to avoid the possibility of a task being
20112 aborted while owning a lock.
20113
201142006-02-17 Javier Miranda <miranda@adacore.com>
20115 Robert Dewar <dewar@adacore.com>
20116
20117 * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
20118 through an access to class-wide interface we force the displacement of
20119 the pointer to the allocated object to reference the corresponding
20120 secondary dispatch table.
20121 (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
20122 if Long_Shifts are supported on the target, even if 64 bit divides
20123 are not supported (configurable run time mode).
20124 (Expand_N_Type_Conversion): Do validity check if validity checks on
20125 operands are enabled.
20126 (Expand_N_Qualified_Expression): Do validity check if validity checks
20127 on operands are enabled.
20128
201292006-02-17 Ed Schonberg <schonberg@adacore.com>
20130
20131 * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
20132 must be materialized when the renamed expression is an explicit
20133 dereference.
20134
201352006-02-17 Ed Schonberg <schonberg@adacore.com>
20136
20137 * freeze.adb (Statically_Discriminated_Components): Return false if
20138 the bounds of the type of the discriminant are not static expressions.
20139
20140 * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
20141 the bounds of the discriminant type are not static.
20142
201432006-02-17 Robert Dewar <dewar@adacore.com>
20144
20145 * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
20146 then we close To if it is valid.
20147
201482006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
20149
20150 * init.c (facility_resignal_table): new array
20151 (__gnat_default_resignal_p): enhance default predicate to resignal if
20152 VMS condition has one of the predefined facility codes.
20153
201542006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
20155
20156 * Makefile.in: Use VMS64 specialized versions of several units in
20157 Interfaces.C hierarchy to be compatible with HP C default size choices.
20158 Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
20159
201602006-02-17 Ed Schonberg <schonberg@adacore.com>
20161
20162 * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
20163 instantiation, the corresponding entity is the related_instance of the
20164 wrapper package created for the instance.
20165
201662006-02-17 Ed Schonberg <schonberg@adacore.com>
20167
20168 * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
20169 the current instance is nested within another instance in a child unit.
20170
201712006-02-17 Javier Miranda <miranda@adacore.com>
20172 Ed Schonberg <schonberg@adacore.com>
20173
20174 * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
20175 type we cannot inherit the primitive operations; we inherit the
20176 Corresponding_Record_Type (which has the list of primitive operations).
20177 (Check_Anonymous_Access_Types): When creating anonymous access types for
20178 access components, use Rewrite in order to preserve the tree structure,
20179 for ASIS use.
20180 (Analyze_Object_Declaration): For limited types with access
20181 discriminants with defaults initialized by an aggregate, obtain
20182 subtype from aggregate as for other mutable types.
20183 (Derived_Type_Declaration): If the derived type is a limited interface,
20184 set the corresponding flag (Is_Limited_Record is not sufficient).
20185
201862006-02-17 Ed Schonberg <schonberg@adacore.com>
20187
20188 * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
20189 to inline a function that returns an unconstrained type, the return
20190 expression must be the first variable declared in the body of the
20191 function.
20192
201932006-02-17 Javier Miranda <miranda@adacore.com>
20194
20195 * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
20196 abstract interface type, the static analysis is not enough to know if
20197 the interface is implemented or not by the source tagged type. Hence
20198 we must pass the work to the expander to generate the required code to
20199 evaluate the conversion at run-time.
20200 (Resolve_Equality_Op): Do not apply previous
20201 transformation if expansion is disasbled, to prevent anomalies when
20202 locating global references in a generic unit.
20203
202042006-02-17 Vincent Celier <celier@adacore.com>
20205
20206 * snames.ads, snames.adb: New standard names for new project attributes:
20207 archive_builder, archive_indexer, compiler_pic_option,
20208 config_body_file_name, config_body_file_name_pattern,
20209 config_file_switches, config_file_unique, config_spec_file_name,
20210 config_spec_file_name_pattern, default_builder_switches,
20211 default_global_compiler_switches, default_language,
20212 dependency_file_kind, global_compiler_switches, include_path,
20213 include_path_file, language_kind, linker_executable_option,
20214 linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
20215 roots, runtime_project.
20216
202172006-02-17 Matthew Heaney <heaney@adacore.com>
20218
9e81dbc7 20219 * a-convec.ads, a-convec.adb:
c63f730e
AC
20220 (operator "&"): handle potential overflow for large index types
20221 (Insert): removed Contraint_Error when using large index types
20222 (Insert_Space): removed Constraint_Error for large index types
20223 (Length): moved constraint check from Length to Insert
20224
20225 * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
20226 as not null access.
20227 Explicit raise statements now include an exception message.
20228 (operator "&"): handle potential overflow for large index types
20229 (Insert): removed Contraint_Error when using large index types
20230 (Insert_Space): removed Constraint_Error for large index types
20231 (Length): moved constraint check from Length to Insert
20232
202332006-02-17 Robert Dewar <dewar@adacore.com>
20234
20235 * s-wchcnv.adb: Document handling of [ on output (we do not change
20236 this to ["5B"] and the new comments say why not.
20237
9e81dbc7 20238 * gnat_ugn.texi:
c63f730e
AC
20239 Add note for -gnatVo that this now includes the cases of type
20240 conversions and qualified expressions.
20241 Add comments on handling of brackets encoding for Text_IO
20242
202432006-02-17 Ramon Fernandez <fernandez@adacore.com>
20244 Thomas Quinot <quinot@adacore.com>
20245 Robert Dewar <dewar@adacore.com>
20246 Javier Miranda <miranda@adacore.com>
20247
20248 * expander.adb: Fix typo in comment
20249
20250 * exp_pakd.adb: Fix typo
20251 Minor comment reformatting.
20252
20253 * g-dyntab.adb: Minor reformatting
20254
20255 * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
20256 aliased subprograms to look for the abstract interface subprogram.
20257
fd7927cd
EB
202582006-02-16 Eric Botcazou <ebotcazou@adacore.com>
20259
20260 * env.c (__gnat_setenv): Use size_t.
20261 (__gnat_unsetenv): Likewise.
20262 (__gnat_clearenv): Likewise.
20263
3f806915
AC
202642006-02-16 Arnaud Charlet <charlet@adacore.com>
20265
20266 * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
20267
cc26ad97
AC
202682006-02-13 Arnaud Charlet <charlet@adacore.com>
20269
20270 * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
20271 g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
20272 i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
20273 s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
20274 s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
20275 s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
20276 s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
20277 s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
20278 s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
20279 no longer used.
20280
202812006-02-13 Jose Ruiz <ruiz@adacore.com>
20282
20283 * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
20284 protection against race conditions is not needed.
20285 (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
20286 fallback handler.
20287 (Set_Specific_Handler): Add mutual exclusive access to the specific
20288 handler.
20289 (Specific_Handler): Add mutual exclusive access for retrieving the
20290 specific handler.
20291
20292 * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
20293 back handler.
20294
20295 * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
20296 Fall_Back_Handler and Specific_Handler.
20297
20298 * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
20299 termination handlers.
20300 Set two different owerflow depending on the maximal stack size.
20301
20302 * s-solita.adb (Task_Termination_Handler_T): Document why explicit
20303 protection against race conditions is not needed when executing the
20304 task termination handler.
20305
203062006-02-13 Robert Dewar <dewar@adacore.com>
20307
20308 * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
20309 a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
20310 a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
20311 a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
20312 a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
20313 a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
20314 a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
20315 a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
20316 a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
20317 a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
20318 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
20319 a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
20320 a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
20321 a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
20322 a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
20323 a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
20324 a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
20325 a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
20326 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
20327 a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
20328 g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
20329 g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
20330 mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
20331 prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
20332 s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
20333 s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
20334 s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
20335 s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
20336 s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
20337 s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
20338 a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
20339 fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
20340 par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
20341 system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
20342 reformatting.
20343
203442006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
20345
20346 * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
20347 s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
20348 s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
20349 s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
20350 a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
20351 s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
20352 a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
20353 s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
20354 s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
20355
203562006-02-13 Arnaud Charlet <charlet@adacore.com>
20357
9e81dbc7
AS
20358 * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
20359 s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
20360 s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
20361 s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
20362 s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
cc26ad97
AC
20363 s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
20364 replaced by anonymous access type.
20365 (pthread_sigmask): Now take an access sigset_t
20366
20367 * s-osinte-hpux.ads: Ditto.
20368 (pthread_mutex_t, pthread_cond_t): Update definitions to support
20369 properly 32 and 64 bit ABIs.
20370
203712006-02-13 Pascal Obry <obry@adacore.com>
20372
9e81dbc7
AS
20373 * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
20374 s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
cc26ad97
AC
20375 s-taprop-linux.adb, s-taprop-solaris.adb,
20376 s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
20377 adjustement is already done when calling this routine.
20378
203792006-02-13 Pascal Obry <obry@adacore.com>
20380
20381 * system-mingw.ads (Underlying_Priorities): Update the priority mapping
20382 table to take advantage of the 16 priority levels available on Windows
20383 2000 and XP. On NT4 there are only 7 priority levels, this is properly
20384 supported by this new mapping.
20385
203862006-02-13 Nicolas Setton <setton@adacore.com>
20387
20388 * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
20389 (get_encoding): New subprogram. Extracts the encodings from an encoded
20390 Ada name.
20391
203922006-02-13 Pascal Obry <obry@adacore.com>
20393 Nicolas Roche <roche@adacore.com>
20394 Arnaud Charlet <charlet@adacore.com>
20395
20396 * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
20397 support.
20398 (__gnat_try_lock): Add unicode support by using a specific section on
20399 Windows.
20400 (__gnat_get_current_dir): Idem.
20401 (__gnat_open_read): Idem.
20402 (__gnat_open_rw): Idem.
20403 (__gnat_open_create): Idem.
20404 (__gnat_create_output_file): Idem.
20405 (__gnat_open_append): Idem.
20406 (__gnat_open_new): Idem.
20407 (__gnat_file_time_name): Idem.
20408 (__gnat_set_file_time_name): Idem.
20409 (__gnat_stat): Idem.
20410 (win32_no_block_spawn): Idem.
20411 (__gnat_locate_exec_on_path): Idem.
20412 (__gnat_opendir): New routine.
20413 (__gnat_closedir): Idem.
20414 (__gnat_readdir): Add new parameter length (pointer to int). Update
20415 implementation to use it and add specific Win32 code for Unicode
20416 support.
20417 (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
20418 (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
20419 (convert_addresses): Do not define this dummy routine on VMS.
20420
20421 * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
20422 runtime Unicode support will be activated.
20423 (S2WS): String to Wide-String conversion. This version just copy a
20424 string in non Unicode version.
20425 (WS2S): Wide-String to String conversion. This version just copy a
20426 string in non Unicode version.
20427
20428 * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
20429 (Open): Now import __gnat_opendir from adaint.c.
20430 (Read): Change the implementation to support unicode characters. It is
20431 not possible to use strlen() on Windows as this version supports only
20432 standard ASCII characters. So the length of the directory entry is now
20433 returned from the imported __gnat_readdir routine.
20434 Update copyright notice.
20435
20436 * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
20437 (opendir): Moved to adaint.c.
20438
20439 * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
20440 (Get_Directory): Fix wrong indexing.
20441 (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
20442 __gnat_getenv from env.c
20443 (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
20444 from env.c
20445
20446 * env.h, env.c: New file.
20447
20448 * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
20449 adaint.c by __gnat_getenv from env.c
20450
20451 * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
20452 adaint.c by __gnat_getenv from env.c
20453
20454 * Make-lang.in: Add env.o in the list of C object needed by gnat1
20455 and gnatbind.
20456 Update dependencies.
20457
204582006-02-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
20459 Olivier Hainque <hainque@adacore.com>
20460 Eric Botcazou <ebotcazou@adacore.com>
20461
20462 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
9e81dbc7 20463
cc26ad97
AC
20464 * gigi.h (value_factor_p): Add prototype and description, now public.
20465
20466 * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
20467 promotion for field with rep clause if the associated size was proven
20468 to be in error.
20469 Expand comments describing attempts to use a packable type.
20470 (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
20471 E_Floating_Point_Subtype>: Inherit alias set of what we are making a
20472 subtype of to ensure conflicts amongst all subtypes in a hierarchy,
20473 necessary since these are not different types and pointers may
20474 actually designate any subtype in this hierarchy.
20475 (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
20476 discriminants but put them into record only if not Unchecked_Union;
20477 pass flag to components_to_record showing Unchecked_Union.
20478 (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
20479 components before variants; don't set TYPE_UNCHECKED_UNION_P.
20480 (components_to_record): New argument UNCHECKED_UNION.
20481 Remove special case code for Unchecked_Union and instead use main code
20482 with small changes.
20483
20484 PR ada/26096
ed41063a
EB
20485 (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
20486 variable with the expression being built, only its inner field.
cc26ad97
AC
20487
20488 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
20489 emit_sequence_entry_statements.
20490 (emit_sequence_entry_statements, body_with_handlers_p): Delete.
20491 (establish_gnat_vms_condition_handler): Move before
20492 Subprogram_Body_to_gnu.
20493 (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
20494 for a subprogram if it has a foreign convention or is exported.
20495 (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
20496 substituted for a CONST_DECL.
20497 (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
20498 Etype to assoc_to_constructor.
20499 (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
20500 discriminants of Unchecked_Union.
20501 (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
20502 don't need cluttering preprocessor directives.
20503 (establish_gnat_vms_condition_handler): New function. Establish the GNAT
20504 condition handler as current in the compiled function.
20505 (body_with_handlers_p): New function. Tell whether a given sequence of
20506 statements node is attached to a package or subprogram body and involves
20507 exception handlers possibly nested within inner block statements.
20508 (emit_sequence_entry_statements): New function, to emit special
20509 statements on entry of sequences when necessary. Establish GNAT
20510 condition handler in the proper cases for VMS.
20511 (Handled_Sequence_Of_Statements_to_gnu): Start block code with
20512 emit_sequence_entry_statements.
20513
20514 * utils2.c (find_common_type): If both input types are BLKmode and
20515 have a constant size, use the smaller one.
20516 (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
20517 the same.
20518
20519 * utils.c (value_factor_p): Make public, to allow uses from other gigi
20520 units.
20521 (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
20522 (convert, case UNION_TYPE): Remove special treatment for unchecked
20523 unions.
20524
20525 PR ada/18659
ed41063a
EB
20526 (update_pointer_to): Update variants of pointer types to unconstrained
20527 arrays by attaching the list of fields of the main variant.
cc26ad97
AC
20528
205292006-02-13 Arnaud Charlet <charlet@adacore.com>
20530 Robert Dewar <dewar@adacore.com>
20531
20532 * a-exexpr.adb, a-exexpr-gcc.adb
20533 (Process_Raise_Exception): Removed, merged with Propagate_Exception.
20534 (Propagate_Exception): Now take extra From_Signal_Handler parameter.
20535 Remove code unused for exception propagation for the compiler itself
20536 from a-except.adb and update to still share separate packages.
20537
20538 * a-except.ads, a-except.adb: Ditto.
20539 Add comments that this version is now used only by the compiler and
20540 other basic tools. The full version that includes the Ada 2005 stuff
20541 is in separate files a-except-2005.ads/adb. The reason is that we do
20542 not want to cause bootstrap problems with compilers not recognizing
20543 Wide_Wide_String.
20544 Add exception reason code PE_Implicit_Return
20545 Add new exception reason code (Null Exception_Id)
20546
20547 * a-except-2005.adb, a-except-2005.ads: New files.
20548
20549 * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
20550
20551 * s-wchcon.adb: New file.
20552
20553 * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
20554 (traceback.o deps): Likewise.
20555 (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
20556 Activate build of GMEM instrumentation library on VMS targets.
20557 (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
20558 Use a-except-2005.ads/adb for all run-time library builds unless
20559 specified otherwise.
20560 [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
20561 s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
20562 Use s-parame.adb on all native platforms.
20563 Use s-parame-vxworks.adb on all vxworks platforms.
20564 Add env.c env.h in LIBGNAT_SRCS
20565 Add env.o in LIBGNAT_OBJS
20566 (GNATMAKE_OBJS): Remove ctrl_c.o object.
20567 (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
20568 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
20569 supports VxWorks 6 RTPs.
20570 (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
20571 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
20572
20573 * types.h, types.ads (Terminate_Program): New exception
20574 Add comment on modifying multiple versions of a-except.adb when the
20575 table of exception reasons is modified.
20576 Add exception reason code PE_Implicit_Return
20577 Add new exception reason code (Null Exception_Id)
20578
6f7f72f9
EB
20579 * clean.adb (Initialize): Get the target parameters before checking
20580 if target is OpenVMS. Move the OpenVMS specific code here from package
20581 body elaboration code.
cc26ad97
AC
20582
205832006-02-13 Thomas Quinot <quinot@adacore.com>
20584 Vincent Celier <celier@adacore.com>
20585 Robert Dewar <dewar@adacore.com>
20586
20587 * ali-util.adb (Get_File_Checksum): Update to account for change in
20588 profile of Initialize_Scanner.
20589
20590 * gprep.adb (Gnatprep): Update to account for change in profile of
20591 Initialize_Scanner.
20592 (Process_One_File): Same.
20593
20594 * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
20595 common code between Get_Code_Unit and Get_Source_Unit. Reimplement
20596 that behaviour using the new Unit information recorded in the source
20597 files table, rather than going through all units every time.
20598 (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
20599 (Get_Source_Unit): Same.
20600
20601 * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
20602 change in profile of Initialize_Scanner.
20603 (Prepare_To_Preprocess): Same.
20604
20605 * lib.ads: Fix typo in comment (templace -> template).
20606
20607 * prj-part.adb (Parse_Single_Project): Update to account for change in
20608 profile of Initialize_Scanner.
20609
20610 * scn.adb (Initialize_Scanner): Account for change in profile of
20611 Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
20612 Also record the association of the given Source_File_Index to the
20613 corresponding Unit_Number_Type.
20614
20615 * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
20616 procedure.
20617 (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
20618 Remove Unit formal for generic scanner: this formal
20619 is only relevant to Scn (the scanner instance used to parse Ada source
20620 files), not to other instances. Update comment accordingly.
20621 (Scan): Use new function Snames.Is_Keyword_Name.
20622
20623 * sinfo-cn.adb: Fix typo in comment.
20624
20625 * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
20626 Unit.
20627
20628 * sinput.ads (Source_File_Record): New component Unit, used to capture
20629 the unit identifier (if any) associated to a source file.
20630
20631 * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
20632 Unit in Source_File_Record.
20633
20634 * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
20635 in profile of Initialize_Scanner.
20636
20637 * scans.adb (Initialize_Ada_Keywords): New procedure
20638
20639 * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
20640 Ada keywords in the Namet table, without the need to call
20641 Initialize_Scanner.
20642
20643 * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
20644 (Is_Keyword_Name): New function
20645
20646 * snames.ads: Add subtype Configuration_Pragma_Names
20647 Add pragma Ada_2005 (synonym for Ada_05)
20648 (Is_Keyword_Name): New function
20649
20650 * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
20651
206522006-02-13 Arnaud Charlet <charlet@adacore.com>
20653
20654 * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
20655 index.
20656
20657 * a-stwima.adb (To_Set): Add extra check when N = 0.
20658
20659 * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
20660
206612006-02-13 Arnaud Charlet <charlet@adacore.com>
20662
20663 * s-parame-mingw.adb, s-parame-linux.adb,
20664 s-parame-solaris.adb: Removed, replaced by s-parame.adb
20665
20666 * s-parame-vxworks.ads: Fix typo.
20667
20668 * s-parame-vxworks.adb: New file.
20669
20670 * s-parame.adb: Version now used by all native platforms.
20671 (Default_Stack_Size): Use 2 megs for default stack size and use
20672 __gl_default_stack_size when available.
20673 (Minimum_Stack_Size): Use 12K.
20674
20675 * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
20676 (Create_Task): Refine implementation taking advantage of the XP stack
20677 size support. On XP, we now create the thread using the flag
20678 STACK_SIZE_PARAM_IS_A_RESERVATION.
20679
20680 * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
20681
20682 * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
20683 XP and 0 on older Windows versions.
20684
20685 * interfac-vms.ads: Removed, no longer used.
20686
206872006-02-13 Matthew Heaney <heaney@adacore.com>
20688
9e81dbc7
AS
20689 * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
20690 a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
cc26ad97
AC
20691 a-cohase.adb: All explicit raise statements now include an exception
20692 message.
20693
20694 * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
20695 (Update_Element_Preserving_Key): renamed op to just Update_Element.
20696 Explicit raise statements now include an exception message
20697
20698 * a-cihase.ads, a-cohase.ads: Removed comment.
20699
20700 * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
20701 a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
20702 a-szbzha.adb, a-szfzha.ads: New files.
20703
207042006-02-13 Matthew Heaney <heaney@adacore.com>
20705
20706 * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
20707 quicksort.
20708
207092006-02-13 Eric Botcazou <ebotcazou@adacore.com>
20710
20711 * lang.opt: Wvariadic-macros: New option.
20712 Wold-style-definition: Likewise.
20713 Wmissing-format-attribute: Likewise.
20714
20715 * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
20716 -Wold-style-definition and -Wmissing-format-attribute.
20717
207182006-02-13 Robert Dewar <dewar@adacore.com>
20719
20720 * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
20721
20722 * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
20723
207242006-02-13 Nicolas Roche <roche@adacore.com>
20725
20726 * a-envvar.adb, a-envvar.ads: New files.
20727
207282006-02-13 Douglas Rupp <rupp@adacore.com>
20729
20730 * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
20731
20732 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
20733
207342006-02-13 Pat Rogers <rogers@adacore.com>
20735
20736 * a-rttiev.adb, a-rttiev.ads: New files.
20737
207382006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
20739
20740 * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
20741 a-wwboio.ads, a-zzboio.adb, a-zzboio.ads: New files.
20742
20743 * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
20744
207452006-02-13 Robert Dewar <dewar@adacore.com>
20746
9e81dbc7 20747 * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
cc26ad97
AC
20748 sem_case.adb: Minor code reorganization (not Present should be No)
20749
207502006-02-13 Geert Bosch <bosch@adacore.com>
20751 Gary Dismukes <dismukes@adacore.com>
20752
20753 * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
20754 0, since the lower bound of the actual string may be greater than one.
20755
20756 PR ada/20753
ed41063a 20757 * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
cc26ad97
AC
20758 layout is requested.
20759
207602006-02-13 Vincent Celier <celier@adacore.com>
20761
20762 * back_end.adb (Scan_Compiler_Arguments): Check if
20763 Search_Directory_Present is True and, if it is, add the argument in
20764 the source search directory path.
20765
20766 * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
20767 Search_Directory_Present to True.
20768
207692006-02-13 Joel Brobecker <brobecke@adacore.com>
20770
20771 * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
20772 volatile, to tell the compiler to preserve this variable at any level
20773 of optimization.
20774 (Gen_Versions_Ada): Temporarily work around codegen bug.
20775
207762006-02-13 Vincent Celier <celier@adacore.com>
20777
20778 * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
20779 gcc to link with option -shared-libgcc.
20780 (Gnatlink): Remove duplicate switches -shared-libgcc
20781
207822006-02-13 Robert Dewar <dewar@adacore.com>
20783
20784 * gnatvsn.ads (Current_Year): New constant, used to easily update
20785 copyright on all GNAT tools.
20786
20787 * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
20788 copyright notice.
20789
207902006-02-13 Robert Dewar <dewar@adacore.com>
20791
20792 * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
20793 after hyphen (small aesthetic change useful for a range of numbers
20794 using ^-^.
20795 Suppress range checks for a couple of assignments which otherwise
20796 cause validity checks with validity checking turned on.
20797
20798 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
20799 Improvement in error message for object.
20800 (Rep_Item_Too_Late): Remove '!' in warning message.
20801
208022006-02-13 Robert Dewar <dewar@adacore.com>
20803 Eric Botcazou <ebotcazou@adacore.com>
20804
20805 * err_vars.ads: Suppress range checks for a couple of assignments
20806 which otherwise cause validity checks with validity checking turned on.
20807 Update comments.
20808
20809 * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
20810 Make message unconditional if it is a warning.
20811 (Error_Msg_NEL): Always output warning messages.
20812 Suppress range checks for a couple of assignments which otherwise
20813 cause validity checks with validity checking turned on.
20814
20815 * errout.ads (Message Insertion Characters): Document that '!' is
20816 implied by '?' in error messages.
20817
20818 * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
20819 (Gnat1drv): Use a goto to end of main subprogram instead of
20820 Exit_Program (E_Success) so that finalization can occur normally.
20821
208222006-02-13 Eric Botcazou <ebotcazou@adacore.com>
20823
20824 * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
20825 wrapped around.
20826
208272006-02-13 Vincent Celier <celier@adacore.com>
20828
20829 * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
20830 Unchecked_Conversion functions.
20831 (Modification_Time): Use direct conversion of OS_Time to Calendar time
20832 when OpenVMS returns False.
20833
20834 * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
20835 a-dirval.adb (OpenVMS): New Boolean function
20836
208372006-02-13 Ed Schonberg <schonberg@adacore.com>
20838 Thomas Quinot <quinot@adacore.com>
20839
20840 * checks.adb (Build_Discriminant_Checks): If the expression being
20841 checks is an aggregate retrieve the values of its discriminants to
20842 generate the check, rather than creating a temporary and a reference
20843 to it.
20844 (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
20845 (Install_Null_Excluding_Check): Ditto
20846 (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
20847 not for the renamed object, so that the actual itype is attached in the
20848 proper context.
20849
208502006-02-13 Robert Dewar <dewar@adacore.com>
20851 Vincent Celier <celier@adacore.com>
20852
20853 * debug.adb: Eliminate numeric switches for binder/gnatmake
20854
20855 * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
20856 switches for the compiler.
20857 (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
20858 (Scan_Make_Switches): When failing with an illegal switch, output an
20859 error message with the full switch.
20860 Eliminate numeric switches for binder/gnatmake
20861
20862 * switch.ads, switch.adb (Bad_Switch): New procedure
20863
20864 * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
20865 Remove 0-9 as debug flag character possibilities
20866 -d is now controlling the primary stack size when its value is a
20867 positive. Also add checks against invalid values, and support for kb,
20868 mb. Ditto for -D switch.
20869
208702006-02-13 Robert Dewar <dewar@adacore.com>
20871 Serguei Rybin <rybin@adacore.com>
20872
20873 * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
20874 save/restore routines.
20875 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20876 were not always properly handled previously.
20877 Since we are changing the tree format anyway, also get rid of the
20878 junk obsolete Immediate_Errors flag.
20879 (Tree_Read): Change the way of reading Tree_Version_String - now we
20880 read the version string from the tree even if its length is not the
20881 same as the length of the version string computed from Gnatvsn.
20882 (Search_Directory_Present): New Boolean flag for the compiler.
20883 Define Tree_Version_String as a dynamic string.
20884 (Default_Stack_Size): new variable, used to handle switch -d.
20885
9e81dbc7 20886 * par-prag.adb:
cc26ad97
AC
20887 For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
20888 only for main unit.
20889 Add pragma Ada_2005 (synonym for Ada_05)
20890 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20891 were not always properly handled previously.
20892
20893 * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
20894 explicit Ada_95 to Ada_2005.
20895
208962006-02-13 Javier Miranda <miranda@adacore.com>
20897 Robert Dewar <dewar@adacore.com>
20898 Ed Schonberg <schonberg@adacore.com>
20899
20900 * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
20901 against errors in the source program: a private types for which the
20902 corresponding full type declaration is missing and pragma CPP_Virtual
20903 is used.
20904 (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
20905 (Is_Known_Null): New flag
20906 (Has_Pragma_Pure): New flag
20907 (No_Return): Present in all entities, set only for procedures
20908 (Is_Limited_Type): A type whose ancestor is an interface is limited if
20909 explicitly declared limited.
20910 (DT_Offset_To_Top_Func): New attribute that is present in E_Component
20911 entities. Only used for component marked Is_Tag. If present it stores
20912 the Offset_To_Top function used to provide this value in tagged types
20913 whose ancestor has discriminants.
20914
20915 * exp_ch2.adb: Update status of new Is_Known_Null flag
20916
20917 * sem_ch7.adb: Maintain status of new Is_Known_Null flag
20918
20919 * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
20920 the categorization sense if Is_Pure was set by pragma Pure_Function.
20921
209222006-02-13 Quentin Ochem <ochem@adacore.com>
20923 Olivier Hainque <hainque@adacore.com>
20924
20925 * bindusg.adb: Updated documentation for -d and -D switches.
20926
20927 * raise.h (__gnat_set_globals): added new parameter for
20928 Default_Stack_Size.
20929
20930 * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
20931 (__gnat_handle_vms_condition): Adjust context before raise.
20932 (__gnat_install_handler): Restore the global vector setup for GCC
20933 versions before 3.4, as the frame based circtuitry is not available
20934 in this case.
20935 (__gnat_set_globals): added a parameter default_stack_size
20936 (__gl_default_stack_size): new variable.
20937
209382006-02-13 Ed Schonberg <schonberg@adacore.com>
20939
20940 * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
20941 "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
20942 does not exist in the Ada RM.
20943 (Compatible_Int_Bounds): Determine whether two integer range bounds
20944 are of equal length and have the same start and end values.
20945 (Is_Int_Range_Bounds): Determine whether a node is an integer range.
20946 (Build_Record_Aggr_Code): Perform proper sliding of a nested array
20947 aggregate when it is part of an object declaration.
20948 (Build_Record_Aggr_Code) If the aggregate ttype is a derived type that
20949 constrains discriminants of its parent, add explicitly the discriminant
20950 constraints of the ancestor by retrieving them from the
20951 stored_constraint of the parent.
20952
209532006-02-13 Robert Dewar <dewar@adacore.com>
20954
20955 * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
20956 attribute Mechanism_Code is applied to renamed subprogram, modify
20957 prefix to point to base subprogram.
20958 Max/Min attributes now violate Restriction No_Implicit_Conditionals
20959
20960 * sinfo.ads: Document that Mechanism_Code cannot be applied to
20961 renamed subprograms so that the front-end must replace the prefix
20962 appropriately.
20963
209642006-02-13 Javier Miranda <miranda@adacore.com>
20965 Gary Dismukes <dismukes@adacore.com>
20966
20967 * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
20968 availability of RE_Interface_Tag.
20969 (Build_Initialization_Call): Fix wrong access to the discriminant value.
20970 (Freeze_Record_Type): Do not generate the tables associated with
20971 timed and conditional dispatching calls through synchronized
20972 interfaces if compiling under No_Dispatching_Calls restriction.
20973 When compiling for Ada 2005, for a nonabstract
20974 type with a null extension, call Make_Controlling_Function_Wrappers
20975 and insert the wrapper function declarations and bodies (the latter
20976 being appended as freeze actions).
20977 (Predefined_Primitive_Bodies): Do not generate the bodies of the
20978 predefined primitives associated with timed and conditional
20979 dispatching calls through synchronized interfaces if we are
20980 compiling under No_Dispatching_Calls.
20981 (Build_Init_Procedure): Use RTE_Available to check if a run-time
20982 service is available before generating a call.
20983 (Make_Controlling_Function_Wrappers): New procedure.
20984 (Expand_N_Full_Type_Declaration): Create a class-wide master for
20985 access-to-limited-interfaces because they can be used to reference
20986 tasks that implement such limited interface.
20987 (Build_Offset_To_Top_Functions): Build the tree corresponding to the
20988 procedure spec and body of the Offset_To_Top function that is generated
20989 when the parent of a type with discriminants has secondary dispatch
20990 tables.
20991 (Init_Secondary_Tags): Handle the case in which the parent of the type
20992 containing secondary dispatch tables has discriminants to generate the
20993 correct arguments to call Set_Offset_To_Top.
20994 (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
20995
20996 * a-tags.ads, a-tags.adb: (Check_Index): Removed.
20997 Add Wide_[Wide_]Expanded_Name.
20998 (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
20999 the same functionality of Get_Prim_Op_Address but applied to predefined
21000 primitive operations because the pointers to the predefined primitives
21001 are now saved in a separate table.
21002 (Parent_Size): Modified to get access to the separate table of primitive
21003 operations or the parent type.
21004 (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
21005 functionality of Set_Prim_Op_Address but applied to predefined primitive
21006 operations.
21007 (Set_Signature): New subprogram used to store the signature of a DT.
21008 (Displace): If the Offset_To_Top value is not static then call the
21009 function generated by the expander to get such value; otherwise use
21010 the value stored in the table of interfaces.
21011 (Offset_To_Top): The type of the actual has been changed to Address to
21012 give the correct support to tagged types with discriminants. In this
21013 case this value is stored just immediately after the tag field.
21014 (Set_Offset_To_Top): Two new formals have been added to indicate if the
21015 offset_to_top value is static and hence pass this value to the run-time
21016 to store it in the table of interfaces, or else if this value is dynamic
21017 and then pass to the run-time the address of a function that is
21018 generated by the expander to provide this value for each object of the
21019 type.
21020
21021 * rtsfind.ads (Default_Prin_Op_Count): Removed.
21022 (Default_Prim_Op_Count): New entity
21023 (Get_Predefined_Prim_Op_Address): New entity
21024 (Set_Predefined_Prim_Op_Address): New entity
21025 (RE_Set_Signature): New entity
21026
210272006-02-13 Thomas Quinot <quinot@adacore.com>
21028 Ed Schonberg <schonberg@adacore.com>
21029
21030 * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
21031 Make_Adjust_Call done for a newly-allocated object.
21032
21033 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
21034 in a subprogram are wrapped in a cleanup block, indicate that the
21035 subprogram contains an inner block with an exception handler.
21036 (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
21037 Adjust call is for a newly-allocated object. In that case we must not
21038 assume that the finalization list chain pointers are correct (since they
21039 come from a bit-for-bit copy of the original object's pointers) so if
21040 the attach level would otherwise be zero (no change), we set it to 4
21041 instead to cause the pointers to be reset to null.
21042
21043 * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
21044 reset chain pointers to null.
21045
210462006-02-13 Ed Schonberg <schonberg@adacore.com>
21047
21048 * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
21049 string, and the context requires a loop for the assignment (e.g.
21050 because the left-hand side is packed), generate a unique name for the
21051 temporary that holds the string, to prevent spurious name clashes.
21052
210532006-02-13 Ed Schonberg <schonberg@adacore.com>
21054 Javier Miranda <miranda@adacore.com>
21055 Robert Dewar <dewar@adacore.com>
21056 Gary Dismukes <dismukes@adacore.com>
21057
21058 * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
21059 return unconstrained arrays.
21060 Update comments.
21061 (Expand_Call): An indirect call through an access parameter of a
21062 protected operation is not a protected call.
21063 Add circuit to raise CE in Ada 2005 mode following call
21064 to Raise_Exception.
21065 (Register_DT_Entry): Do nothing if
21066 the run-time does not give support to abstract interfaces.
21067 (Freeze_Subprogram): In case of dispatching operations, do not generate
21068 code to register the operation in the dispatch table if the source
21069 is compiled with No_Dispatching_Calls.
21070 (Register_Predefined_DT_Entry): Generate code that calls the new
21071 run-time subprogram Set_Predefined_Prim_Op_Address instead of
21072 Set_Prim_Op_Address.
21073
21074 * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
21075 on array assignments if the right-hand side is a function call that has
21076 been inlined. Check is performed on the assignment in the block.
21077 (Process_Bounds): If bounds and range are overloaded, apply preference
21078 rule for root operations to disambiguate, and diagnose true ambiguity.
21079 (Analyze_Assignment): Propagate the tag for a class-wide assignment with
21080 a tag-indeterminate right-hand side even when Expander_Active is True.
21081 Needed to ensure that dispatching calls to T'Input are allowed and
21082 get the tag of the target class-wide object.
21083
21084 * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
21085 an inherited primitive operation that already overrides several
21086 abstract interface primitives. For transitivity, the new entity must
21087 also override all the abstract interface primitives covered by the
21088 inherited overriden primitive.
21089 Emit warning if new entity differs from homograph in same scope only in
21090 that one has an access parameter and the other one has a parameter of
21091 a general access type with the same designated type, at the same
21092 position in the signature.
21093 (Make_Inequality_Operator): Use source locations of parameters and
21094 subtype marks from corresponding equality operator when creating the
21095 tree structure for the implicit declaration of "/=". This does not
21096 change anything in behaviour except that the decoration of the
21097 components of the subtree created for "/=" allows ASIS to get the
21098 string images of the corresponding identifiers.
21099 (Analyze_Return_Statement): Remove '!' in warning message.
21100 (Check_Statement_Sequence): Likewise.
21101 (Analyze_Subprogram_Body): For an access parameter whose designated type
21102 is an incomplete type imported through a limited_with clause, use the
21103 type of the corresponding formal in the body.
21104 (Check_Returns): Implicit return in No_Return procedure now raises
21105 Program_Error with a compile time warning, instead of beging illegal.
21106 (Has_Single_Return): Function returning unconstrained type cannot be
21107 inlined if expression in unique return statement is not an identifier.
21108 (Build_Body_To_Inline): It is possible to inline a function call that
21109 returns an unconstrained type if all return statements in the function
21110 return the same local variable. Subsidiary procedure Has_Single_Return
21111 verifies that the body conforms to this restriction.
21112
21113 * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
21114 same type, and one of them is of an anonymous access type, convert
21115 the other operand to it, so that this is a valid binary operation for
21116 gigi.
21117 (Resolve_Type_Conversion): Handle subtypes of protected types and
21118 task types when accessing to the corresponding record type.
21119 (Resolve_Allocator): Add '\' in 2-line warning message.
21120 Remove '!' in warning message.
21121 (Resolve_Call): Add '\' in 2-line warning message.
21122 (Valid_Conversion): Likewise.
21123 (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
21124 resulting type may be an access type with an implicit dereference.
21125 Obtain the proper component from the designated type.
21126 (Make_Call_Into_Operator): Handle properly a call to predefined equality
21127 given by an expanded name with prefix Standard, when the operands are
21128 of an anonymous access type.
21129 (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
21130 Explicit_Dereference and Resolve_Selected_Component, to verify that the
21131 prefix of the expression is not of an incomplete type. Allows full
21132 diagnoses of all semantic errors.
21133 (Resolve_Actuals): If the actual is an allocator whose directly
21134 designated type is a class-wide interface we build an anonymous
21135 access type to use it as the type of the allocator. Later, when
21136 the subprogram call is expanded, if the interface has a secondary
21137 dispatch table the expander will add a type conversion to force
21138 the displacement of the pointer.
21139 (Resolve_Call): If a function that returns an unconstrained type is
21140 marked Inlined_Always and inlined, the call will be inlined and does
21141 not require the creation of a transient scope.
21142 (Check_Direct_Boolean_Op): Removed
21143 (Resolve_Comparison_Op): Remove call to above
21144 (Resolve_Equality_Op): Remove call to above
21145 (Resolve_Logical_Op): Inline above, since this is only call.
21146 (Valid_Conversion): Handle properly conversions between arrays of
21147 convertible anonymous access types.
21148
21149 PR ada/25885
cc26ad97
AC
21150 (Set_Literal_String_Subtype): If the lower bound is not static, wrap
21151 the literal in an unchecked conversion, because GCC 4.x needs a static
21152 value for a string bound.
21153
211542006-02-13 Ed Schonberg <schonberg@adacore.com>
21155 Hristian Kirtchev <kirtchev@adacore.com>
21156
21157 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
21158 components of the corresponding record, take into account component
21159 definitions that are access definitions.
21160 (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
21161 procedure is not considered a dispatching call and will be expanded
21162 properly.
21163
211642006-02-13 Javier Miranda <miranda@adacore.com>
21165
21166 * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
21167 controlling argument of the dispatching call is an abstract interface
21168 class-wide type then we use it directly.
21169 Check No_Dispatching_Calls restriction.
21170 (Default_Prim_Op_Position): Remove the code that looks for the last
21171 entity in the list of aliased subprograms. This code was wrong in
21172 case of renamings.
21173 (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
21174 when the source is compiled with the No_Dispatching_Calls restriction.
21175 (Init_Predefined_Interface_Primitives): No need to inherit primitives
21176 if we are compiling with restriction No_Dispatching_Calls.
21177 (Make_Disp_XXX): Addition of assertion to avoid the use of all these
21178 subprograms if we are compiling under No_Dispatching_Calls restriction.
21179 (Make_DT): Generate a dispatch table with a single dummy entry if
21180 we are compiling with the No_Dispatching_Calls restriction. In
21181 addition, in this case we don't generate code that calls to the
21182 following run-time subprograms: Set_Type_Kind, Inherit_DT.
21183 (Make_Select_Specific_Data_Table): Add assertion to avoid the use
21184 of this subprogram if compiling with the No_Dispatching_Calls
21185 restriction.
21186 (Expand_Type_Conversion): Instead of using the actual parameter,
21187 the argument passed as parameter to the conversion function was
21188 erroneously referenced by the expander.
21189 (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
21190 Set_Predefined_Primitive_Op_Address and Set_Signature.
21191 (Expand_Dispatching_Call): Generate call to
21192 Get_Predefined_Prim_Op_Address for predefined primitives.
21193 (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
21194 predefined primitives.
21195 (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
21196 primitives we reserve one dummy entry to ensure that the tag does not
21197 point to some memory that is associated with some other object. In
21198 addition, remove all the old code that generated the assignments
21199 associated with the signature of the dispatch table and replace them
21200 by a call to the new subprogram Set_Signature.
21201 (Set_All_DT_Position): Change the algorithm because now we have a
21202 separate dispatch table associated with predefined primitive operations.
21203 (Expand_Interface_Conversion): In case of non-static offset_to_top
21204 add explicit dereference to get access to the object after the call
21205 to displace the pointer to the object.
21206 (Expand_Interface_Thunk): Modify the generation of the actual used
21207 in the calls to the run-time function Offset_To_Top to fulfil its
21208 new interface.
21209 (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
21210
212112006-02-13 Ed Schonberg <schonberg@adacore.com>
21212
21213 * exp_dist.adb (Copy_Specification): For access parameters, copy
21214 Null_Exclusion flag, which will have been set for stream subprograms
21215 in Ada2005 mode.
21216
212172006-02-13 Pascal Obry <obry@adacore.com>
21218
21219 * expect.c (__gnat_expect_portable_execvp): New implementation. The
21220 previous implementation was using the C runtime spawnve routine but
21221 the corresponding wait was using directly the Win32 API. This was
21222 causing some times a lock when waiting for an event using
21223 WaitForSingleObject in __gnat_waitpid. This new implementation uses
21224 the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
21225 API fixes this problem.
21226
212272006-02-13 Robert Dewar <dewar@adacore.com>
21228
21229 * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
21230 call.
21231
212322006-02-13 Thomas Quinot <quinot@adacore.com>
21233
21234 * exp_pakd.ads: Fix typos in comments.
21235
21236 * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
21237 array reference that is an explicit dereference, mark the converted
21238 (packed) array reference as analyzed to prevent a forthcoming
21239 reanalysis from resetting its type to the original (non-packed) array
21240 type.
21241
212422006-02-13 Ed Schonberg <schonberg@adacore.com>
21243 Javier Miranda <miranda@adacore.com>
21244 Eric Botcazou <ebotcazou@adacore.com>
21245
21246 * exp_util.ads, exp_util.adb (Find_Prim_Op,
21247 Is_Predefined_Primitive_Operation): When
21248 searching for the predefined equality operator, verify that operands
21249 have the same type.
21250 (Is_Predefined_Dispatching_Operation): Remove the code that looks
21251 for the last entity in the list of aliased subprograms. This code
21252 was wrong in case of renamings.
21253 (Set_Renamed_Subprogram): New procedure
21254 (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
21255 Exp_Type constant computed when entering this subprogram.
21256 (Known_Null): New function
21257 (OK_To_Do_Constant_Replacement): New function
21258 (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
21259 (Side_Effect_Free): An attribute reference 'Input is not free of
21260 side effect, unlike other attributes that are functions. (from code
21261 reading).
21262 (Remove_Side_Effects): Expressions that involve packed arrays or records
21263 are copied at the point of reference, and therefore must be marked as
21264 renamings of objects.
21265 (Is_Predefined_Dispatching_Operation): Return false if the operation is
21266 not a dispatching operation.
21267
21268 PR ada/18819
21269 (Remove_Side_Effects): Lift enclosing type conversion nodes for
21270 elementary types in all cases.
21271
212722006-02-13 Javier Miranda <miranda@adacore.com>
21273
21274 * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
21275 task types when accessing to the corresponding record type.
21276 Remove '!' in warning message.
21277
212782006-02-13 Olivier Hainque <hainque@adacore.com>
21279
21280 * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
21281 to avoid useless and space inefficient overalignments on targets where
21282 Max_Alignment is larger than 16.
21283
212842006-02-13 Pascal Obry <obry@adacore.com>
21285
21286 * g-catiio.adb (Sec_Number): New type used to compute the number of
21287 seconds since 1-1-1970.
21288 (Image) [Natural]: The parameter was an Integer, as we can't deal with
21289 negative numbers (years, months...) it is better to have a Natural here.
21290 Code clean-up.
21291 (Image) [Number]: Change parameter from Long_Integer to Number.
21292 (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
21293 overflow for dates past year 2038.
21294
212952006-02-13 Matthew Heaney <heaney@adacore.com>
21296
21297 * g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
21298 Constraint_Error.
21299
213002006-02-13 Arnaud Charlet <charlet@adacore.com>
21301
21302 * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
21303 native platforms.
21304 (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
21305 finalization can occur normally.
21306
213072006-02-13 Vincent Celier <celier@adacore.com>
21308
21309 * gnatcmd.adb (Rules_Switches): New table
21310 (Add_To_Rules_Switches): New procedure
21311 (GNATCmd): For command CHECK, put all options following "-rules" in the
21312 Rules_Switches table. Append these -rules switches after the -cargs
21313 switches.
21314
213152006-02-13 Robert Dewar <dewar@adacore.com>
21316
21317 * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
21318 These two cases were generating incorrect output, and if this unit
21319 was built with checks on, generated a discriminant mismatch constraint
21320 error.
21321
213222006-02-13 Ed Schonberg <schonberg@adacore.com>
21323 Robert Dewar <dewar@adacore.com>
21324
21325 * lib-xref.adb (Get_Type_Reference): For a private type whose full
21326 view is an array type, indicate the component type as well, for
21327 navigation purposes.
21328 (Generate_Reference): Don't consider array ref on LHS to be a case
21329 of violating pragma Unreferenced.
21330 Do not give Ada 2005 warning except on real reference.
21331
213322006-02-13 Vincent Celier <celier@adacore.com>
21333
21334 * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
21335 main source, add switch -mdebug-main=_ada_ so that the executable can
21336 be debugged by the standard VMS debugger.
21337 (Gnatmake): Set No_Main_Subprogram to True when there is no main
21338 subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
21339 Exit the Multi_Main_Loop when Unique_Compile is True after compilation
21340 of the last source, as the binding and linking phases are never
21341 performed.
21342 Set all executable obsolete when rebuilding a library.
21343
21344 * makeutl.adb (Linker_Options_Switches): Do not process empty linker
21345 options.
21346
213472006-02-13 Javier Miranda <miranda@adacore.com>
21348
21349 PR ada/23973
cc26ad97
AC
21350 * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
21351 code to improve the error message reported when the program has
21352 declarations of abstract interface types and it is not compiled with
21353 the -gnat05 switch.
21354 (P_Access_Definition): Reorganize the code to improve the error
21355 message reported when the new Ada 2005 syntax for anonymous
21356 access types is used and the program is not compiled with the
21357 -gnat05 switch.
21358
213592006-02-13 Robert Dewar <dewar@adacore.com>
21360
21361 * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
21362 stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
21363 (MODE_IN)
21364
213652006-02-13 Javier Miranda <miranda@adacore.com>
21366
21367 * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
21368 against source containing syntax errors.
21369
213702006-02-13 Vincent Celier <celier@adacore.com>
21371
21372 * prj.adb (Reset): Initialize the first element of table Namings with
21373 the standard naming data.
21374
213752006-02-13 Vincent Celier <celier@adacore.com>
21376
21377 * prj.ads (Error_Warning): New enumeration type
21378
21379 * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
21380 unknown, use the location of the project to report the error.
21381 (When_No_Sources): New global variable
21382 (Report_No_Ada_Sources): New procedure
21383 (Check): New parameter When_No_Sources. Set value of global variable
21384 When_No_Sources,
21385 (Find_Sources): Call Report_No_Ada_Sources when appropriate
21386 (Get_Sources_From_File): Ditto
21387 (Warn_If_Not_Sources): Better warning messages indicating the unit name
21388 and the file name.
21389
21390 * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
21391 Call Prj.Proc.Process with parameter When_No_Sources.
21392
21393 * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
21394 Call Recursive_Check with parameter When_No_Sources.
21395 (Recursive_Check): New parameter When_No_Sources. Call itself and
21396 Prj.Nmsc.Check with parameter When_No_Sources.
21397 (Process): New parameter When_No_Sources. Call Check with parameter
21398 When_No_Sources.
21399 (Copy_Package_Declarations): New procedure to copy renamed parameters
21400 and setting the location of the declared attributes to the location
21401 of the renamed package.
21402 (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
21403 packages.
21404
214052006-02-13 Vincent Celier <celier@adacore.com>
21406
21407 * prj-makr.adb (Make): Preserve the comments from the original project
21408 file.
21409 When removing nodes (attributes Source_Dirs, Source_Files,
21410 Source_List_File and package Naming), save the comments and attach the
21411 saved comments to the newly created nodes.
21412 Do not add a with clause for the naming package if one already exists.
21413
214142006-02-13 Javier Miranda <miranda@adacore.com>
21415 Gary Dismukes <dismukes@adacore.com>
21416 Robert Dewar <dewar@adacore.com>
21417
21418 * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
21419
21420 * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
21421 aliased entities to look for the overriden abstract interface
21422 subprogram.
21423 (Is_Interface_Subprogram): Complete documentation.
21424 (Check_Dispatching_Operation): Do not generate code to register the
21425 operation in the dispatch table if the source is compiled with
21426 restriction No_Dispatching_Calls.
21427 (Override_Dispatching_Operation): Check for illegal attempt to override
21428 No_Return procedure with procedure that is not No_Return
21429 (Check_Dispatching_Call): Suppress the check for an abstract operation
21430 when the original node of an actual is a tag-indeterminate attribute
21431 call, since the attribute, which must be 'Input, can never be abstract.
21432 (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
21433 call to the Input attribute (even when rewritten).
21434 (Propagate_Tag): Augment comment to indicate the possibility of a call
21435 to an Input attribute.
21436
21437 * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
21438 calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
21439
21440 * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
21441 No_Wide_Characters is no longer partition-wide
21442 No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
21443 rather than GNAT
21444
214452006-02-13 Douglas Rupp <rupp@adacore.com>
21446
21447 * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
21448
214492006-02-13 Javier Miranda <miranda@adacore.com>
21450
21451 * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
21452 handles default-initialized components to keep separate the management
21453 of this feature but also avoid the unrequired resolution and
21454 expansion of components that do not have partially initialized
21455 values.
21456 (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
21457 (Check_Bounds): Likewise.
21458 (Check_Length): Likewise.
21459
214602006-02-13 Javier Miranda <miranda@adacore.com>
21461 Ed Schonberg <schonberg@adacore.com>
21462
21463 * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
21464 abstract interface type call analyze_and_resolve to expand the type
21465 conversion into the corresponding displacement of the
21466 reference to the base of the object.
21467 (Eval_Attribute, case Width): For systems where IEEE extended precision
21468 is supported, the maximum exponent occupies 4 decimal digits.
21469 (Accessibility_Message): Add '\' in 2-line warning message.
21470 (Resolve_Attribute): Likewise.
21471 (case Attribute_Access): Significantly revise checks
21472 for illegal access-to-subprogram Access attributes to properly enforce
21473 the rules of 3.10.2(32/2).
21474 Diagnose use of current instance with an illegal attribute.
21475
6f7f72f9
EB
21476 * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
21477 to a Node_Id.
21478 (Enclosing_Generic_Unit): New function to return a node's innermost
21479 enclosing generic declaration node.
21480 (Compile_Time_Constraint_Error): Remove '!' in warning messages.
21481 (Type_Access_Level): The accessibility level of anonymous acccess types
21482 associated with discriminants is that of the current instance of the
21483 type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
21484 (Compile_Time_Constraint_Error): Handle case of conditional expression.
21485 (Kill_Current_Values_For_Entity): New function
21486 (Enter_Name): Change formal type to Entity_Id
cc26ad97
AC
21487
214882006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
21489 Ed Schonberg <schonberg@adacore.com>
21490 Gary Dismukes <dismukes@adacore.com>
21491
21492 * sem_ch10.adb (Check_Redundant_Withs): New procedure in
21493 Analyze_Compilation_Unit.
21494 Detect and warn on redundant with clauses detected in a package spec
21495 and/or body when -gnatwr is used.
21496 (Analyze_Context): Analyze config pragmas before other items
21497 (Install_Context_Items): Don't analyze config pragmas here
21498 (Install_Limited_Withed_Unit): Set limited entity of package in
21499 with_clause so that cross-reference information or warning messages on
21500 unused packages can be properly generated
21501 (Is_Visible_Through_Renamings): Return false if the limited_with_clause
21502 has Error_Posted set. Prevent infinite loops in illegal programs.
21503 (Check_Private_Child_Unit): Move test for a nonprivate with clause down
21504 to the point of the error test requiring the current unit to be private.
21505 This ensures that private with clauses are not exempted from the basic
21506 checking for being a descendant of the same library unit parent as a
21507 withed private descendant unit.
21508 (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
21509 handle private with clauses properly, as well as to account for cases
21510 where the withed unit is a public descendant of a private ancestor
21511 (in which case the current unit must be a descendant of the private
21512 ancestor's parent). The spec comments were updated accordingly. Also,
21513 the old error message in this subprogram was replaced with error
21514 messages that mirror the errors tested and reported by
21515 Check_Private_Child_Unit.
21516 Parameter and variable names improved for readability.
21517 (Install_Limited_Context_Clauses): Remove test for a withed unit being
21518 private as the precondition for calling
21519 Check_Private_Limited_Withed_Unit since that subprogram has been
21520 revised to test public units as well as private units.
21521
215222006-02-13 Thomas Quinot <quinot@adacore.com>
21523 Robert Dewar <dewar@adacore.com>
21524 Ed Schonberg <schonberg@adacore.com>
21525 Javier Miranda <miranda@adacore.com>
21526
21527 * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
21528 that Scope_Stack.First = 1.
21529 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
21530 were not always properly handled previously.
21531 (Formal_Entity): Complete rewrite, to handle properly some complex case
21532 with multiple levels of parametrization by formal packages.
21533 (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
21534 to the corresponding derived type declaration for proper semantics.
21535
21536 * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
21537 (Check_Component): Enforce restriction on components of
21538 unchecked_unions: a component in a variant cannot contain tasks or
21539 controlled types.
21540 (Unchecked_Union): Allow nested variants and multiple discriminants, to
21541 conform to AI-216.
21542 Add pragma Ada_2005 (synonym for Ada_05)
21543 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
21544 were not always properly handled previously.
21545 Document that pragma Propagate_Exceptions has no effect
21546 (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
21547 (Set_Convention_From_Pragma): Check that if a convention is
21548 specified for a dispatching operation, then it must be
21549 consistent with the existing convention for the operation.
21550 (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
21551 longer required to specify an vtable-ptr component in the record. For
21552 compatibility reasons we leave the support for the previous definition.
21553 (Analyze_Pragma, case No_Return): Allow multiple arguments
21554
21555 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
21556 non-overrideen inherited operation with a controlling result as
21557 illegal only its implicit declaration comes from the derived type
21558 declaration of its result's type.
21559 (Check_Possible_Deferred_Completion): Relocate the object definition
21560 node of the subtype indication of a deferred constant completion rather
21561 than directly analyzing it. The analysis of the generated subtype will
21562 correctly decorate the GNAT tree.
21563 (Record_Type_Declaration): Check whether this is a declaration for a
21564 limited derived record before analyzing components.
21565 (Analyze_Component_Declaration): Diagnose record types not explicitly
21566 declared limited when a component has a limited type.
21567 (Build_Derived_Record_Type): Code reorganization to check if some of
21568 the inherited subprograms of a tagged type cover interface primitives.
21569 This check was missing in case of a full-type associated with a private
21570 type declaration.
21571 (Constant_Redeclaration): Check that the subtypes of the partial and the
21572 full view of a constrained deferred constant statically match.
21573 (Mentions_T): A reference to the current type in an anonymous access
21574 component declaration must be an entity name.
21575 (Make_Incomplete_Type_Declaration): If type is tagged, set type of
21576 class_wide type to refer to full type, not to the incomplete one.
21577 (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
21578 available. Required to give support to the certified run-time.
21579 (Analyze_Component_Declaration): In case of anonymous access components
21580 perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
21581 (Process_Discriminants): For an access discriminant, use the
21582 discriminant specification as the associated_node_for_itype, to
21583 simplify accessibility checks.
21584
215852006-02-13 Ed Schonberg <schonberg@adacore.com>
21586 Javier Miranda <miranda@adacore.com>
21587
21588 * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
21589 abstract interpretations on an operator, remove interpretations that
21590 yield Address or a type derived from it, if one of the operands is an
21591 integer literal.
21592 (Try_Object_Operation.Try_Primitive_Operation,
21593 Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
21594 location when creating the new reference to a primitive or class-wide
21595 operation as a part of rewriting a subprogram call.
21596 (Try_Primitive_Operations): If context requires a function, collect all
21597 interpretations after the first match, because there may be primitive
21598 operations of the same type with the same profile and different return
21599 types. From code reading.
21600 (Try_Primitive_Operation): Use the node kind to choose the proper
21601 operation when a function and a procedure have the same parameter
21602 profile.
21603 (Complete_Object_Operation): If formal is an access parameter and prefix
21604 is an object, rewrite as an Access reference, to match signature of
21605 primitive operation.
21606 (Find_Equality_Type, Find_One_Interp): Handle properly equality given
21607 by an expanded name with prefix Standard, when the operands are of an
21608 anonymous access type.
21609 (Remove_Abstract_Operations): If the operation is abstract because it is
21610 inherited by a user-defined type derived from Address, remove it as
21611 well from the set of candidate interpretations of an overloaded node.
21612 (Analyze_Membership_Op): Membership test not applicable to cpp-class
21613 types.
21614
216152006-02-13 Bob Duff <duff@adacore.com>
21616
21617 * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
21618 redundant use clauses.
21619 In particular, if the scope of two use clauses overlaps, but one is not
21620 entirely included in the other, we should not warn. This can happen
21621 with nested packages.
21622 (Analyze_Subprogram_Renaming): Protect the compiler against previously
21623 reported errors. The bug was reported when the compiler was built
21624 with assertions enabled.
21625 (Find_Type): If the node is a 'Class reference and the prefix is a
21626 synchronized type without a corresponding record, return the type
21627 itself.
21628
216292006-02-13 Javier Miranda <miranda@adacore.com>
21630
21631 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
21632 if this is the full-declaration associated with a private declaration
21633 that implement interfaces, then the private type declaration must be
21634 limited.
21635 (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
21636 as aliased. The use of the 'access attribute is not available for such
21637 object (for this purpose the object should be explicitly marked as
21638 aliased, but being an anonymous type this is not possible).
21639
216402006-02-13 Ed Schonberg <schonberg@adacore.com>
21641 Robert Dewar <dewar@adacore.com>
21642
21643 * sem_elab.adb (Same_Elaboration_Scope): A package that is a
21644 compilation unit is an elaboration scope.
21645 (Add_Task_Proc): Add '\' in 2-line warning message.
21646 (Activate_All_Desirable): Deal with case of unit with'ed by parent
21647
216482006-02-13 Ed Schonberg <schonberg@adacore.com>
21649 Javier Miranda <miranda@adacore.com>
21650
21651 * sem_type.adb (Write_Overloads): Improve display of candidate
21652 interpretations.
21653 (Add_One_Interp): Do not add to the list of interpretations aliased
21654 entities corresponding with an abstract interface type that is an
21655 immediate ancestor of a tagged type; otherwise we have a dummy
21656 conflict between this entity and the aliased entity.
21657 (Disambiguate): The predefined equality on universal_access is not
21658 usable if there is a user-defined equality with the proper signature,
21659 declared in the same declarative part as the designated type.
21660 (Find_Unique_Type): The universal_access equality operator defined under
21661 AI-230 does not cover pool specific access types.
21662 (Covers): If one of the types is a generic actual subtype, check whether
21663 it matches the partial view of the other type.
21664
216652006-02-13 Thomas Quinot <quinot@adacore.com>
21666
21667 * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
21668 line. This is necessary to allow In_Extended_Main_Unit to provide
21669 correct results for itypes while writing out expanded source.
21670 (Close_File): No need to update the source_index_table here since it's
21671 now done for each line.
21672
216732006-02-13 Ed Schonberg <schonberg@adacore.com>
21674 Robert Dewar <dewar@adacore.com>
21675
21676 * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
21677 preserve the source unit where the itype is declared, and prevent a
21678 backend abort.
21679 (Note_Implicit_Run_Time_Call): New procedure
21680 (Write_Itype): Handle missing cases (E_Class_Wide_Type and
21681 E_Subprogram_Type)
21682
21683 * sprint.ads: Document use of $ for implicit run time routine call
21684
216852006-02-13 Quentin Ochem <ochem@adacore.com>
21686
21687 * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
21688 task name.
21689
216902006-02-13 Bob Duff <duff@adacore.com>
21691
21692 * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
21693 Scan_Unsigned, so we do not scan leading blanks and sign twice.
21694 Integer'Value("- 5") and Integer'Value("-+5") now correctly
21695 raise Constraint_Error.
21696
21697 * s-vallli.adb (Scan_Long_Long_Integer): Call
21698 Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
21699 do not scan leading blanks and sign twice.
21700 Integer'Value("- 5") and Integer'Value("-+5") now correctly
21701 raise Constraint_Error.
21702
21703 * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
21704 Scan_Long_Long_Unsigned): Split out most of the processing from
21705 Scan_Long_Long_Unsigned out into
21706 Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
21707 This prevents scanning leading blanks and sign twice.
21708 Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
21709 See RM-3.5(44).
21710
21711 * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
21712 out most of the processing from Scan_Unsigned out into
21713 Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
21714 This prevents scanning leading blanks and sign twice.
21715
21716 * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
21717 use with Modular'Value attribute.
21718 (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
21719 attribute.
21720
217212006-02-13 Robert Dewar <dewar@adacore.com>
21722
21723 * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
21724
217252006-02-13 Eric Botcazou <ebotcazou@adacore.com>
21726
21727 * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
21728 (PPC VxWorks): Likewise.
21729 (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
21730 (forced_callee): Make non-inlinable and non-pure.
21731 (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
21732
217332006-02-13 Arnaud Charlet <charlet@adacore.com>
21734 Ben Brosgol <brosgol@adacore.com>
21735 Robert Dewar <dewar@adacore.com>
21736
21737 * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
21738 support.
21739 Document that gnatbind -M option is for cross environments only.
21740 Added description of using gnatmem to trace gnat rtl allocs and deallocs
21741 Add note on use of $ to label implicit run time calls
21742 Add documentation for -gnatyI (check mode IN)
21743 Updated chapter on compatibility with HP Ada
21744 VMS-oriented edits.
21745 Ran spell and corrected errors
21746 Add documentation for gnatbind -d and rework documentation of -D
21747 at the same time.
21748 Add subprogram/data elimination section.
21749 Minor editing of annex A.
21750 Add section for gnatcheck.
21751 Add documentation for restriction No_Dispatching_Calls
21752 Add documentation for pragma Ada_2005
21753 Remove mention of obsolete pragma Propagate_Exceptions
21754 Document that pragma Unreferenced can appear after DO in ACCEPT
21755 Clarify Pure_Function for library level units
21756 Mention Max/Min in connection with No_Implicit_Conditionals
21757 No_Wide_Characters restriction is no longer partition-wide
21758 Add a nice example for Universal_Literal_String attribute
21759 Document that pragma No_Return can take multiple arguments
21760
21761 * ug_words: Added entry for gnatcheck
21762
21763 * g-ctrl_c.ads (Install_Handler): Enhance comments
21764
21765 * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
21766
21767 * g-trasym.ads: Add documentation on how to do off line symbolic
21768 traceback computation.
21769
21770 * s-fatgen.adb: Add comments for Unaligned_Valid
21771
21772 * stand.ads: Fix typo in comment
21773
0e692cc0
RO
217742006-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
21775
21776 * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
21777
f44013ae
RS
217782006-02-06 Roger Sayle <roger@eyesopen.com>
21779
21780 * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
21781
3df6582b
JDA
217822006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21783
21784 PR target/25926
21785 * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
21786 implementation that calls __main.
21787
f57a2203
PG
217882006-01-25 Peter O'Gorman <peter@pogma.com>
21789
21790 PR bootstrap/25859
21791 * Makefile.in (GCC_LINK): Remove quotes.
21792 (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
21793 or $(GCC_LINK).
21794
21795 (powerpc-darwin): Pass -shared-libgcc when building shared library.
21796
4bf2d473
JDA
217972006-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21798
21799 PR ada/24533
21800 * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
21801
4580c9a6
JDA
218022005-12-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21803
21804 * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
21805
e5c681b3
AC
218062005-12-12 Arnaud Charlet <charlet@adacore.com>
21807
21808 * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
21809 needed.
21810
b0b8e176
AC
218112005-12-12 Arnaud Charlet <charlet@adacore.com>
21812
21813 * Make-lang.in: Update dependencies
21814
53fcb103
AC
218152005-12-12 Arnaud Charlet <charlet@adacore.com>
21816
21817 * Make-lang.in: Add rule for ada/exp_sel.o
21818
25b06cda
AC
218192005-12-12 Arnaud Charlet <charlet@adacore.com>
21820
21821 * Makefile.in (mingw section): Remove EH_MECHANISM setting.
21822
aedc2c2b
AC
218232005-12-09 Arnaud Charlet <charlet@adacore.com>
21824
21825 * gnatvsn.ads (Library_Version): Bump to version 4.2
21826 (ASIS_Version_Number): Bumped.
21827
218282005-12-09 Doug Rupp <rupp@adacore.com>
21829
21830 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
21831 Ada bind file prefix on VMS from b$ to b__.
21832 (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
21833 __init.
21834
21835 * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
21836 Targparm.OpenVMS_On_Target.
21837 (Object_Suffix): Initialize with target object suffix.
21838 (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
21839
21840 * butil.adb: Change some Hostparm.OpenVMS checks to
21841 Targparm.OpenVMS_On_Target.
21842
21843 * clean.adb: Change some Hostparm.OpenVMS checks to
21844 Targparm.OpenVMS_On_Target.
21845 (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
21846 ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
21847 Ada bind file prefix on VMS from b$ to b__.
21848
21849 * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
21850 --GCC so that Get_Target_Parameters can find system.ads.
21851 (Gnatlink): Call Get_Target_Parameters in mainline.
21852 Initialize standard packages for Targparm.
21853 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
21854 (Process_Args): Also Check for object files with target object
21855 extension.
21856 (Make_Binder_File_Names): Create with target object extension.
21857 (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
21858 to b__.
21859
21860 * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
21861 Targparm.OpenVMS_On_Target.
21862 ({declaration},Build_Library,Check_Library): Change Ada bind file
21863 prefix on VMS from b$ to b__.
21864
21865 * osint-b.adb: Change some Hostparm.OpenVMS checks to
21866 Targparm.OpenVMS_On_Target.
21867 (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
21868 b__.
21869
21870 * targext.c: New file.
21871
21872 * Makefile.in: add support for vxworks653 builds
21873 (../../vxaddr2line): gnatlink with targext.o.
21874 (TOOLS_LIBS): Move targext.o to precede libgnat.
21875 (init.o, initialize.o): Minor clean up in dependencies.
21876 (GNATLINK_OBJS): Add targparm.o, snames.o
21877 Add rules fo building targext.o and linking it explicitly with all
21878 tools.
21879 Also add targext.o to gnatlib.
21880
21881 * Make-lang.in: Add rules for building targext.o and linking it in
21882 with gnat1 and gnatbind.
21883 Add entry for exp_sel.o.
21884
21885 * osint.adb Change some Hostparm.OpenVMS checks to
21886 Targparm.OpenVMS_On_Target.
21887 (Object_File_Name): Use target object suffix.
21888
21889 * osint.ads (Object_Suffix): Remove, no longer used.
21890 (Target_Object_Suffix): Initialize with target object suffix.
21891
21892 * rident.ads: Add special exception to license.
21893
21894 * targparm.adb (Get_Target_Parameters): Set the value of
21895 Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
21896 value.
21897 (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
9e81dbc7 21898
aedc2c2b
AC
21899 * targparm.ads: Add special exception to license.
21900
21901 * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
21902 function.
21903 (Copy_File): Make sure from file is closed if error on to file
21904 (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
21905
21906 * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
21907 (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
21908
21909 * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
21910 target object suffix.
21911
219122005-12-09 Jose Ruiz <ruiz@adacore.com>
21913 Quentin Ochem <ochem@adacore.com>
21914 Florian Villoing <villoing@adacore.com>
21915
6f7f72f9 21916 * a-taster.ads, a-taster.adb: New files.
aedc2c2b
AC
21917
21918 * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
21919 link to the version that does nothing. This way the task termination
21920 routine is not executed twice for the environment task when finishing
21921 because of an unhandled exception.
21922
21923 * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
21924 handler because of an unhandled exception.
21925
21926 * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
21927 System.Tasking.Utilities instead of that in System.Tasking.Stages.
21928
21929 * s-finimp.adb (initialization code): Modify the soft link for the
21930 finalization of the global list instead of Adafinal.
21931
21932 * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
21933 non-tasking version of the soft link for task termination. We do
21934 nothing since if we are using the non-tasking version it
21935 means that the task termination functionality is not used.
21936 (Null_Finalize_Global_List): Add this null version for the procedure
21937 in charge of finalizing the global list for controlled objects.
21938 (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
21939 instead for handling run-time termination in a more flexible way.
21940 (Adafinal_NT): This new procedure will take care of finalizing the
21941 global list for controlled objects if needed, but no tasking
21942 finalization.
21943
21944 * s-tarest.adb (Task_Lock): Do not try to lock again the
21945 Global_Task_Lock if we already own it. Otherwise, we get blocked in
21946 some run-time operations.
21947 (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
21948 until all nested locks have been released.
21949 (Task_Wrapper): Call the fall-back task termination handler. It
21950 applies to all tasks but the environment task.
21951 (Finalize_Global_Tasks): Add the call for the task termination
21952 procedure for the environment task.
21953 (Task_Wrapper): suppress warnings around declaration of
21954 Secondary_Stack_Address.
21955
21956 * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
21957 moved to the Common_ATCB record.
21958 (Task_Lock): Global_Task_Lock_Nesting has been moved to the
21959 Common_ATCB record.
21960 (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
21961 Common_ATCB record.
21962
21963 * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
21964 Fall_Back_Handler, and Specific_Handler.
21965
21966 * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
21967 defined in Ada.Task_Termination, to avoid circular dependencies.
21968 (Termination_Handler): Redefine this type here, alredy defined in
21969 Ada.Task_Termination, for avoiding circular dependencies.
21970 (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
21971 for storing task termination handlers. In addition,
21972 Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
21973 Common_ATCB because it is used by both the regular and the restricted
21974 run times.
21975 (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
21976 Common_ATCB because it is used by both the regular and the restricted
21977 run times.
21978 (Common_ATCB): Added a dynamic task analyzer field.
21979
21980 * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
21981 potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
21982 (Task_Wrapper): Call the task termination handler. It applies to all
21983 tasks but the environment task.
21984 (Finalize_Global_Tasks): Call the task termination procedure for the
21985 environment task. The call to Finalize_Global_List is now performed
21986 using the soft links mechanism.
21987 (Task_Wrapper): added dynamic stack analysis.
21988
21989 * s-tasuti.adb (Abort_Tasks): The code in charge of checking
21990 potentially blocking operations has been moved from
21991 System.Tasking.Stages.Abort_Tasks to this procedure. There can be
21992 direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
21993 through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
21994 this run-time check.
21995
21996 * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
21997 of task termination procedure.
21998 (Init_Tasking_Soft_Links): Install the task-safe version of the soft
21999 link for the task termination procedure.
22000
22001 * bindusg.adb: (Bindusg): Added documentation for -u option.
22002
22003 * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
22004 (Get_Main_C): Add handling of dynamic stack analysis.
22005 (Gen_Output_File_C): Add external functions for dynamic stack analysis.
22006
22007 * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
22008 (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
22009 (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
22010
22011 * opt.ads: Added flags used by dynamic stack measurement.
22012 (Max_Line_Length): Remove (not used anymore)
22013
22014 * s-io.ads, s-io.adb (Standard_Error): new subprogram
22015 (Standart_Output): new subprogram
22016 (Set_Output): new subprogram
22017 (Put): now uses the value of Current_Out to know if the output has to be
22018 send to stderr or stdout.
9e81dbc7 22019
aedc2c2b
AC
22020 * s-stausa.ads: Complete implementation.
22021
22022 * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
9e81dbc7 22023
aedc2c2b
AC
22024 * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
22025 list of Ada 05 files.
22026 (GNAT Library Units): Add AltiVec files.
22027
22028 * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
22029 g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
22030 g-alvety.ads, g-alvevi.ads: New files providing altivec API.
22031
220322005-12-09 Nicolas Setton <setton@adacore.com>
22033
22034 * adaint.c (__gnat_locate_regular_file): Return immediately if
22035 file_name is empty.
22036
220372005-12-09 Javier Miranda <miranda@adacore.com>
22038 Hristian Kirtchev <kirtchev@adacore.com>
22039
22040 * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
22041 to the specification because the frontend generates code that uses this
22042 subprogram.
22043 (Set_Interface_Table): Add missing assertion.
22044 Update documentation describing the run-time structure.
22045 (Displace): New subprogram that displaces the pointer to the object
22046 to reference one of its secondary dispatch tables.
22047 (IW_Membership): Modified to use the new table of interfaces.
22048 (Inherit_TSD): Modified to use the new table of interfaces.
22049 (Register_Interface_Tag): Use the additional formal to fill the
22050 contents of the new table of interfaces.
22051 (Set_Interface_Table): New subprogram that stores in the TSD the
22052 pointer to the table of interfaces.
22053 (Set_Offset_To_Top): Use the additional formal to save copy of
22054 the offset value in the table of interfaces.
22055 Update structure of GNAT Primary and Secondary dispatch table diagram.
22056 Add comment section on GNAT dispatch table prologue.
22057 (Offset_To_Signature): Update the constant value of the Signature field.
22058 (Dispatch_Table): Update comment on hidden fields in the prologue.
22059 (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
22060 Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
22061 the type of formal parameter T to Tag, introduce additional assertions.
22062 (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
22063 conversion.
22064 (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
22065
22066 * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
22067 in all the calls to Expand_Interface_Thunk. Instead of referencing the
22068 record component containing the tag of the secondary dispatch table we
22069 have to use the Offset_To_Top run-time function to get this information;
22070 otherwise if the pointer to the base of the object has been displace
22071 we get a wrong value if we use the 'position attribute.
22072
22073 * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
22074 all the calls to Expand_Interface_Thunk.
22075 (Make_Secondary_DT): Secondary dispatch tables do not have a table of
22076 interfaces; hence the call to Set_Interface_Table was clearly wrong.
22077 (Collect_All_Interfaces): Modify the internal subprogram Collect to
22078 ensure that the interfaces implemented by the ancestors are placed
22079 at the header of the generated list.
22080 (Expand_Interface_Conversion): Handle the case in which the displacement
22081 associated with the interface conversion is not statically known. In
22082 this case we generate a call to the new run-time subprogram Displace.
22083 (Make_DT): Generate and fill the new table of interfaces.
22084 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
22085 Get_Tagged_Kind and Set_Tagged_Kind.
22086 (Tagged_Kind): New function that determines the tagged kind of a type
22087 with respect to limitedness and concurrency and returns a reference to
22088 RE_Tagged_Kind.
22089 (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
22090 Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
22091 primary dispatch table for a type.
22092 (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
22093 secondary dispatch table respectively of a tagged type.
22094
22095 * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
22096 (Expand_Interface_Conversion): New subprogram to indicate if the
22097 displacement of the type conversion is statically known.
22098 (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
22099
22100 * rtsfind.ads (RE_Offset_To_Top): New entity
22101 (RTU_Id): Add Ada_Task_Termination to the list so that it is made
22102 accessible to users.
22103 (Re_Displace): New entity
22104 (RE_Interface_Data): New entity
22105 (RE_Set_Interface_Data): New_Entity
22106 (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
22107 Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
22108 RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
22109 RE_TK_Tagged, RE_TK_Task.
22110
22111 * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
22112 Init_Secondary_Tags_Internal to allow its use with interface types and
22113 also to generate the code for the new additional actual required
22114 by Set_Offset_To_Top.
22115 (Build_Init_Statements): In case of components associated with abstract
22116 interface types there is no need to generate a call to its IP.
22117 (Freeze_Record_Type): Generate Select Specific Data tables only for
22118 concurrent types.
22119 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
22120 the bodies and specifications of the predefined primitive operations
22121 dealing with dispatching selects and abort, 'Callable, 'Terminated only
22122 for concurrent types.
22123
6f7f72f9 22124 * exp_sel.ads, exp_sel.adb: New files.
aedc2c2b
AC
22125
22126 * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
22127 Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
22128 properly protected objects and attach handler in the case of the
22129 restricted profile.
22130 Move embeded package Select_Expansion_Utilities into a separate external
22131 package.
22132 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
22133 Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
22134 (Build_K, Build_S_Assignment): New subprograms, part of the select
22135 expansion utilities.
22136 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
22137 Expand_N_Timed_Entry_Call): Optimize expansion of select statements
22138 where the trigger is a dispatching procedure of a limited tagged type.
22139
221402005-12-09 Olivier Hainque <hainque@adacore.com>
22141
22142 * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
22143 pointer initialization values. Make a SAVE_EXPR instead. Add comments
22144 about the use and expansion of SAVE_EXPRs in the various possible
22145 renaming handling cases.
22146 (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
22147 abusing DECL_FCONTEXT.
22148
221492005-12-09 Matthew Heaney <heaney@adacore.com>
22150
22151 * a-convec.adb (Merge): Added assertions to check whether vector params
22152 are sorted.
22153
22154 * a-coinve.adb (Merge): Added assertions to check whether vector params
22155 are sorted.
22156
22157 * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
22158 draft.
22159 (Cursor'Read): raises PE
22160
22161 * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
22162 to its default value.
22163
22164 * a-cihama.adb: Manually check whether cursor's key and elem are
22165 non-null
22166
22167 * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
22168 (Merge): Assert that target and source lists are in order
22169 (Swap): Declare non-const temporaries, to pass to Splice
22170
22171 * a-cdlili.ads: (Splice): Changed param name and param mode
22172
22173 * a-cdlili.adb: (Splice): Changed param name and param mode
22174 (Merge): Assert that target and source lists are in order
22175 (Swap): Declare non-const temporaries, to pass to Splice
22176
22177 * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
22178 (Write): declare Stream param as not null
22179
22180 * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
22181 an exception message.
22182
221832005-12-09 Thomas Quinot <quinot@adacore.com>
22184 Robert Dewar <dewar@adacore.com>
22185
22186 * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
22187 which is the absolute maximum length we can support.
22188
22189 * frontend.adb: For the processing of configuration pragma files,
22190 remove references to Opt.Max_Line_Length, which is not checked anymore.
22191
22192 * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
22193 length.
22194
9e81dbc7 22195 * scn.adb, scng.adb:
aedc2c2b
AC
22196 Always check line length against the absolute supported maximum,
22197 Hostparm.Max_Line_Length.
22198
22199 * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
22200 value for the maximum line length is Max_Line_Length (not
22201 Column_Number'Last).
22202 Minor error msg update
22203 (Set_Style_Check_Options): New interface returning error msg
22204 Minor code reorganization (processing for 'M' was out of alpha order)
22205
22206 * switch-c.adb: New interface for Set_Style_Check_Options
22207
22208 * stylesw.ads (Set_Style_Check_Options): New interface returning error
22209 msg.
22210
222112005-12-09 Javier Miranda <miranda@adacore.com>
22212
22213 * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
22214 with IP subprogram were only supported if there were limited types.
22215
22216 * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
22217 records with IP subprogram were only supported if there were limited
22218 types.
22219
222202005-12-09 Olivier Hainque <hainque@adacore.com>
22221 Eric Botcazou <ebotcazou@adacore.com>
22222
22223 * trans.c (tree_transform, emit_check): Adjust calls to
22224 build_call_raise, passing the now expected GNAT_NODE argument.
22225
22226 * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
22227 source line information than what the current global locus indicates
22228 when appropriate.
22229
22230 * utils2.c (build_simple_component_ref): Return 0 if the offset of the
22231 field has overflowed.
22232 (build_call_raise): Add a GNAT_NODE argument to convey better source
22233 line information than what the current global locus indicates when
22234 appropriate.
22235 (build_component_ref): Adjust call to build_call_raise.
22236
222372005-12-09 Pascal Obry <obry@adacore.com>
22238
22239 * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
22240 the iterator is quitting iteration on parent directory.
22241
222422005-12-09 Javier Miranda <miranda@adacore.com>
22243
22244 * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
22245 and the assignment to a class-wide object, before the assignment we
22246 generate a run-time check to ensure that the tag of the Target is
22247 covered by the tag of the source.
22248
222492005-12-09 Robert Dewar <dewar@adacore.com>
22250
22251 * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
22252 parameter in call to Image_Wide_Character.
22253
22254 * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
22255 parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
22256 (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
22257 annoying FFFE/FFFF inconsistency.
22258
222592005-12-09 Robert Dewar <dewar@adacore.com>
22260 Javier Miranda <miranda@adacore.com>
22261 Ed Schonberg <schonberg@adacore.com>
22262
22263 * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
22264 of type conversion.
22265 (Find_Interface): New subprogram that given a tagged type and one of its
22266 component associated with the secondary table of an abstract interface
22267 type, return the entity associated with such abstract interface type.
22268 (Make_Subtype_From_Expr): If type has unknown discriminants, always use
22269 base type to create anonymous subtype, because entity may be a locally
22270 declared subtype or generic actual.
22271 (Find_Interface): New subprogram that given a tagged type and one of its
22272 component associated with the secondary table of an abstract interface
22273 type, return the entity associated with such abstract interface type.
22274
22275 * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
22276 conversion cannot be handled at compile time. In this case we pass this
22277 information to the expander to generate the appropriate code.
22278
222792005-12-09 Robert Dewar <dewar@adacore.com>
22280 Ed Schonberg <schonberg@adacore.com>
22281 Gary Dismukes <dismukes@adacore.com>
22282 Javier Miranda <miranda@adacore.com>
22283 Hristian Kirtchev <kirtchev@adacore.com>
22284
22285 * einfo.adb (Itype_Printed): New flag
22286 (Is_Limited_Type): Derived types do not inherit limitedness from
22287 interface progenitors.
22288 (Is_Return_By_Reference_Type): Predicate does not apply to limited
22289 interfaces.
22290
22291 * einfo.ads (Itype_Printed): New flag
22292 Move Is_Wrapper_Package to proper section
22293 Add missing Inline for Is_Volatile
22294
22295 * output.ads, output.adb (Write_Erase_Char): New procedure
22296 (Save/Restore_Output_Buffer): New procedures
22297 (Save/Restore_Output_Buffer): New procedures
22298
22299 * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
22300 Add missing support for anonymous access type
22301 (Write_Id): Insert calls to Write_Itype
22302 (Write_Itype): New procedure to output itypes
22303
22304 * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
22305 use of "limited" in declaration.
22306
9e81dbc7 22307 * sinfo.ads, sinfo.adb:
aedc2c2b
AC
22308 Formal derived types can carry an explicit "limited" indication.
22309
22310 * sem_ch3.adb: Add with and use of Targparm.
22311 (Create_Component): If Frontend_Layout_On_Target is True and the
22312 copied component does not have a known static Esize, then reset
22313 the size and positional fields of the new component.
22314 (Analyze_Component_Declaration): A limited component is
22315 legal within a protected type that implements an interface.
22316 (Collect_Interfaces): Do not add to the list the interfaces that
22317 are implemented by the ancestors.
22318 (Derived_Type_Declaration): If the parent of the full-view is an
22319 interface perform a transformation of the tree to ensure that it has
22320 the same parent than the partial-view. This simplifies the job of the
22321 expander in order to generate the correct object layout, and it is
22322 needed because the list of interfaces of the full-view can be given in
22323 any order.
22324 (Process_Full_View): The parent of the full-view does not need to be
22325 a descendant of the parent of the partial view if both parents are
22326 interfaces.
22327 (Analyze_Private_Extension_Declaration): If declaration has an explicit
22328 "limited" the parent must be a limited type.
22329 (Build_Derived_Record_Type): A derived type that is explicitly limited
22330 must have limited ancestor and progenitors.
22331 (Build_Derived_Type): Ditto.
22332 (Process_Full_View): Verify that explicit uses of "limited" in partial
22333 and full declarations are consistent.
22334 (Find_Ancestor_Interface): Remove function.
22335 (Collect_Implemented_Interfaces): New procedure used to gather all
22336 implemented interfaces by a type.
22337 (Contain_Interface): New function used to check whether an interface is
22338 present in a list.
22339 (Find_Hidden_Interface): New function used to determine whether two
22340 lists of interfaces constitute a set equality. If not, the first
22341 differing interface is returned.
22342 (Process_Full_View): Improve the check for the "no hidden interface"
22343 rule as defined by AI-396.
22344
223452005-12-09 Robert Dewar <dewar@adacore.com>
22346
22347 * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
22348 types, not on record subtypes.
22349 (Freeze_Entity): Code cleanup. Add barrier to the loop
22350 that generates the references for primitive operations. This allows to
22351 remove an unnecessary exception handler.
22352 Code reformatting and comment clean ups.
22353
223542005-12-09 Vincent Celier <celier@adacore.com>
22355
22356 * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
22357 If GNAT CHECK is called with a project file, but with no
22358 source on the command line, call gnatcheck with all the compilable
22359 sources of the project.
22360 Take into account the new command Check, for gnatcheck. Treat as for
22361 other ASIS tools: take into account project, specific package Check and
22362 Compiler switches.
22363 For ASIS tools, add the switches in package Compiler for
22364 the invocation of the compiler.
22365
22366 * prj-attr.adb: Add package Check and its attributes
22367
22368 * vms_conv.ads (Command_Type): New command Check, for gnatcheck
22369
22370 * vms_conv.adb (Initialize): Change Params of command Check to
22371 unlimited files.
22372 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
22373 Add data for new command Check
22374
22375 * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
22376 ELIM.
22377 Add qualifiers for Check command options
22378 (Command_Type): New command Check
22379
223802005-12-09 Thomas Quinot <quinot@adacore.com>
22381
22382 * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
22383 command line switch overruns the output buffer.
22384
223852005-12-09 Robert Dewar <dewar@adacore.com>
22386
22387 * sem_prag.adb: Processing for new pragma Complete_Representation
22388 (Analyze_Pragma, case Debug): Implement two argument form.
22389
22390 * par-prag.adb: Entry for new pragma Complete_Representation
22391 (Prag, case Debug): Recognize two argument form of pragma Debug
22392 New interface for Set_Style_Check_Options.
22393
22394 * sem_ch13.adb: Implement new pragma Complete_Representation.
22395
22396 * snames.adb, snames.ads, snames.h: Entry for new pragma
22397 Complete_Representation.
22398
223992005-12-09 Gary Dismukes <dismukes@adacore.com>
22400
22401 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
22402 available user-specified stream attributes on limited parameters to
22403 also test the type directly rather than only its underlying type (for
22404 Ada 95) and, in the case of Ada 2005, to check that the user-specified
22405 attributes are visible at the point of the subprogram declaration.
22406 For Ada 2005, the error message is modified to indicate that the
22407 type's stream attributes must be visible (again, only for -gnat05).
22408
224092005-12-09 Ed Schonberg <schonberg@adacore.com>
22410
22411 * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
22412 anonymous access types.
22413
22414 * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
22415 matching of anonymous access types and anonymous access to subprogram
22416 types. 'R'M 4.9.1 (2/2).
22417
224182005-12-09 Ed Schonberg <schonberg@adacore.com>
22419
22420 * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
22421 rule prematurely when operands are universal, remaining ambiguities
22422 will be removed during resolution.
22423 Code cleanup.
22424
22425 * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
22426 that are Ada 2005 functions.
22427 (Has_Abstract_Interpretation): Subsidiary to
22428 Remove_Conversions, to remove ambiguities caused by abstract operations
22429 on numeric types when operands are universal.
22430
224312005-12-09 Robert Dewar <dewar@adacore.com>
22432
22433 * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
22434 for case where spec is categorized.
22435
224362005-12-09 Javier Miranda <miranda@adacore.com>
22437
22438 * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
22439 types use the corresponding record type. This was not needed before
22440 the implementation of Ada 2005 synchronized types because
22441 concurrent types were never tagged types in Ada 95.
22442
224432005-12-09 Ed Schonberg <schonberg@adacore.com>
22444
22445 * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
22446 first subtype of the type of the expression to verify that it is a
22447 legal Time type.
22448
224492005-12-09 Robert Dewar <dewar@adacore.com>
22450
22451 * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
22452 decoded names.
22453
224542005-12-09 Quentin Ochem <ochem@adacore.com>
22455 Robert Dewar <dewar@adacore.com>
22456 Ed Falis <falis@adacore.com>
22457 Florian Villoing <villoing@adacore.com>
22458 Thomas Quinot <quinot@adacore.com>
22459 Arnaud Charlet <charlet@adacore.com>
22460
22461 * gnat_ugn.texi: Created section "Stack Related Tools"
22462 Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
22463 "Stack Related Tools"
22464 Added subsection "Static Stack Usage Analysis"
22465 Added subsection "Dynamic Stack Usage Analysis"
22466 Include documentation of itypes in sprint listing (-gnatG)
22467 Documented gnatbind -D switch (default sec stack size for fixed sec
22468 stacks).
22469 Added Interrupt_State and Persistent_BSS to list of configuration
22470 pragmas.
22471 Add missing doc for maximum value of nnn in -gnatyMnnn
22472
22473 * gnat_rm.texi: Document the AltiVec binding.
22474 Add documentation for pragma Complete_Representation
22475 Shortened an overly long line (> 79 chars)
22476 Clarify documentation of unchecked conversion in implementation
22477 defined cases.
22478 Document two argument form of pragma Debug
22479
22480 * types.ads (Column_Number): Update documentation.
22481
22482 * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
22483 library level Finalize_Storage_Only objects (these are not attached to
22484 any finalization list).
22485
22486 * system-mingw.ads: (Underlying_Priorities): Update comment.
22487
224882005-12-09 Robert Dewar <dewar@adacore.com>
22489
22490 * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
6f7f72f9 22491 i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
aedc2c2b
AC
22492 inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
22493 i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
22494 krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
22495 lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
22496 interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
22497 s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
22498 reformatting.
22499
225002005-12-09 Robert Dewar <dewar@adacore.com>
22501
22502 * s-vaflop-vms-alpha.adb: (Ne_F): New function
22503 (Ne_G): New function
22504
22505 * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
22506 for tag assignment.
22507 (Rewrite_Comparison): Handle case where operation is not a comparison
22508 and ignore, and also handle type conversion case.
22509
225102005-12-09 Thomas Quinot <quinot@adacore.com>
22511
22512 * exp_aggr.ads: Fix typo in comment.
22513 ???-mark Convert_Aggr_In_Assignment as needing documentation.
22514
225152005-12-09 Gary Dismukes <dismukes@adacore.com>
22516
22517 * layout.adb: Replace various uses of byte by storage unit throughout.
22518 (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
22519 static size, convert to storage units before returning, to conform to
22520 spec.
22521
225222005-12-09 Matthew Gingell <gingell@adacore.com>
22523
22524 * g-exctra.ads: Fix typo in comment.
22525
225262005-12-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22527
22528 * utils.c: Minor reformatting.
22529
225302005-12-09 Robert Dewar <dewar@adacore.com>
22531
9e81dbc7 22532 * g-soccon.ads:
aedc2c2b
AC
22533 Further comment fixes to make the status of the default file clear
22534
22535 * s-bitops.adb: Clarify comment for Bits_Array
22536
719bb4e3 225372005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
bd97af06
RÁE
22538
22539 * Make-lang.in (ada.install-normal): Remove.
22540
719bb4e3 225412005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2f4d2d18
AM
22542
22543 * Make-lang.in: Remove all dependencies on s-gtype.
22544
53917868
RG
225452005-12-05 Richard Guenther <rguenther@suse.de>
22546
22547 * utils.c (convert): Use fold_convert where appropriate.
22548
40077270
PB
225492005-12-05 Paolo Bonzini <bonzini@gnu.org>
22550
6f7f72f9 22551 * Makefile.in (gnatlib): Fix regex, using \. instead of . when
40077270
PB
22552 a period is meant.
22553
a380cd0a
RG
225542005-12-02 Richard Guenther <rguenther@suse.de>
22555
22556 * trans.c (gnat_gimplify_expr): Use buildN instead of build.
22557
87f2a9f5
RS
225582005-12-01 Roger Sayle <roger@eyesopen.com>
22559
22560 * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
22561 nodes.
22562
9e94c78f 225632005-11-23 Laurent Guerby <laurent@guerby.net>
f8d15f14 22564
6f7f72f9 22565 * mlib-prj.adb (Build_Library): Initialize Delete.
f8d15f14 22566
9e94c78f 225672005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
04b5d587
JS
22568
22569 * socket.c: Add extern int h_errno for rtems since networking header
22570 files are not available at this point in a tool bootstrap. Newlib
22571 only has basic C library header files.
22572
452b5b1e
RG
225732005-11-19 Richard Guenther <rguenther@suse.de>
22574 Roger Sayle <roger@eyesopen.com>
22575
22576 PR ada/23717
22577 * misc.c (internal_error_function): Don't use vsprintf to format
22578 the error message text, instead use pp_format_text and the new
22579 pretty printer APIs. This allows handling of %qs, %w, etc.
22580
9e94c78f 225812005-11-18 Laurent Guerby <laurent@guerby.net>
e0709888 22582
6f7f72f9
EB
22583 PR ada/24857
22584 * Makefile.in: Use s-auxdec-empty for RTEMS.
e0709888 22585
115a82d3
RK
225862005-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22587
22588 PR ada/22333
22589 * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
22590 a temporary if taking the address of something that is neither
22591 reference, declaration, or constant, since the gimplifier
22592 can't handle that case.
22593
9e94c78f 225942005-11-17 Laurent Guerby <laurent@guerby.net>
f92af607
LG
22595
22596 PR ada/24857
22597 * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
6f7f72f9 22598
0678ec6b
RG
225992005-11-16 Richard Guenther <rguenther@suse.de>
22600
22601 * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
22602
9e94c78f 226032005-11-16 Joel Sherrill <joel.sherrill@oarcorp.com>
b381d30b 22604
6f7f72f9
EB
22605 PR ada/24855
22606 * raise-gcc.c: Add missing stdarg.h include.
9e81dbc7 22607
1367ca38
RG
226082005-11-16 Richard Guenther <rguenther@suse.de>
22609
22610 * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
22611 (ada/misc.o): Likewise.
22612
5de923eb
AC
226132005-11-14 Thomas Quinot <quinot@adacore.com>
22614
22615 * g-soccon.ads: Minor reformatting. Update comments.
22616
22617 * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
22618 gain visibility on the declaration of struct timeval.
22619
22620 * g-soccon-freebsd.ads,
22621 g-soccon-darwin.ads,
22622 g-soccon-tru64.ads,
22623 g-soccon-aix.ads,
22624 g-soccon-irix.ads,
22625 g-soccon-hpux.ads,
22626 g-soccon-solaris.ads,
22627 g-soccon-vms.ads,
22628 g-soccon-mingw.ads,
22629 g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
22630
22631 * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
22632 g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
22633 g-soccon-linux-x86.ads: New files.
22634
9e81dbc7 22635 * g-socthi-mingw.adb:
5de923eb
AC
22636 (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
22637
22638 * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
22639 (time_t, suseconds_t): New types constructed to match the tv_sec
22640 and tv_usec fields of C struct timeval.
22641 (Timeval): Construct structure in terms of the new types.
22642 (Host_Errno): New function (imported from socket.c), returns last hosts
22643 database error.
22644
22645 * g-socthi-vxworks.adb: Add error handling circuitry.
22646
22647 * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
22648 components of struct timeval.
22649 (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
22650 (Check_Selector): In error conditions, clear internal socket sets to
22651 avoid a memory leak.
22652 (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
22653 Send_Timeout, Receive_Timeout.
22654
22655 * g-socthi.ads (time_t, suseconds_t): New types constructed to match
22656 the tv_sec and tv_usec fields of C struct timeval.
22657 (Timeval): Construct structure in terms of the new types.
22658 (Host_Errno): New function (imported from socket.c), returns last hosts
22659 database error.
22660
22661 * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
22662 hosts database last error code.
22663
22664 * gen-soccon.c: Complete value expansion should not be performed on
22665 TARGET, as it has the form of a math expression, and some components
22666 may be platform-defined macros.
22667 For VxWorks, generate the OK and ERROR values.
22668 New constants giving the sizes of the components of C struct timeval.
22669
226702005-11-14 Robert Dewar <dewar@adacore.com>
22671 Ed Schonberg <schonberg@adacore.com>
22672
22673 PR ada/18434
5de923eb
AC
22674 * types.ads: Include All_Checks in Suppress_Array
22675
22676 * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
22677 not(a=b), since we no longer do this rewriting, and hence it is not
22678 needed.
22679 (Elaboration_Checks_Suppressed): Add special casing to
22680 deal with different cases of static and dynamic elaboration checks (all
22681 checks does not count in the first case, but does in the second).
22682 (Expr_Known_Valid): Do not assume that the result of any arbitrary
22683 function call is valid, since this is not the case.
22684 (Ensure_Valid): Do not apply validity check to a real literal
22685 in a universal or fixed context
22686
22687 * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
22688 elementary types using the operator in standard. It is cleaner not to
22689 modify the programmers intent, especially in the case of floating-point.
22690 (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
22691 it did not matter because we always rewrote a/=b to not(a=b).
22692 (Expand_Allocator_Expression): For an allocator expression whose nominal
22693 subtype is an unconstrained packed type, convert the expression to its
22694 actual constrained subtype.
22695 Implement warning for <= or >= where < or > not possible
22696 Fix to Vax_Float tests (too early in many routines, causing premature
22697 Vax_Float expansions.
22698
22699 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
22700 to be used with packages and generic packages as well as with
22701 subprograms.
22702 (Suppress): Set All_Checks, but not Elaboration_Check, for case
22703 of pragma Suppress (All_Checks)
22704 (Analyze_Pragma, case Warnings): Implement first argument allowed to be
22705 a string literal for precise control over warnings.
22706 Avoid raise of pragma in case of unrecognized pragma and just return
22707 instead.
22708
22709 * sem_prag.ads: Minor reformatting
22710
22711 * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
22712 with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
22713 Switch. Do not handle any exception.
22714 Include -gnatwx as part of -gnatg (warn on redundant parens)
22715 Allow optional = after -gnatm
22716 (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
22717 longer sets Elaboration_Checks.
22718 Code to set warning mode moved to Sem_Warn
22719 so that it can be shared by pragma processing.
22720
22721 * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
22722 statement.
22723
9e81dbc7 22724 * s-taprop-solaris.adb:
5de923eb
AC
22725 Change some <= to =, to avoid new warning
22726
9e81dbc7 22727 * a-exexda.adb, prj-proc.adb:
5de923eb
AC
22728 Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
22729 Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
22730
227312005-11-14 Robert Dewar <dewar@adacore.com>
22732
22733 * exp_vfpt.adb: Handle /= case
22734 (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
22735 so that we do not get duplicate scaling for fixed point conversions.
22736
22737 * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
22738
227392005-11-14 Matthew Gingell <gingell@adacore.com>
22740
9e81dbc7 22741 * system-lynxos-ppc.ads, system-lynxos-x86.ads:
5de923eb
AC
22742 Increase default priority on Lynx from 15 to 17, and meet the Ada
22743 requirement that Default_Priority be ((Priority'First +
22744 Priority'Last) / 2) by increasing the range of Interrupt_Priority.
22745
227462005-11-14 Vincent Celier <celier@adacore.com>
22747
22748 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
22749 mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
22750 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
22751 mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
22752 mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
22753 mlib-tgt-lynxos.adb (DLL_Prefix): New function
22754
227552005-11-14 Doug Rupp <rupp@adacore.com>
22756
22757 * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
22758 private part.
22759
227602005-11-14 Arnaud Charlet <charlet@adacore.com>
22761
22762 * s-traces-default.adb, s-trafor-default.ads,
22763 s-tratas-default.adb: Fix compilation errors.
22764
227652005-11-14 Jose Ruiz <ruiz@adacore.com>
22766
22767 * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
22768 raising the exception so the memory used is freed.
22769
227702005-11-14 Arnaud Charlet <charlet@adacore.com>
22771
22772 * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
22773 (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
22774 (convert_address): Update comments and list of platforms using this.
22775
22776 * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
22777 no longer used.
22778
227792005-11-14 Pascal Obry <obry@adacore.com>
22780 Vincent Celier <celier@adacore.com>
22781
22782 * gnatdll.adb (Parse_Command_Line): Remove redundant use of
22783 GNAT.Command_Line.
22784
22785 * memroot.adb: Remove redundant with/use clause on
22786 System.Storage_Elements.
22787
227882005-11-14 Arnaud Charlet <charlet@adacore.com>
22789
22790 * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
22791 (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
22792 related code to a-exexpr.adb
22793 (Save_Occurrence_And_Private): Move GCC EH related code to
22794 a-exexpr-gcc.adb
22795 (Raise_Current_Excep): Add new variable Id with pragma
6f7f72f9 22796 volatile, to ensure that the variable lives on stack.
5de923eb
AC
22797
22798 * a-exexpr-gcc.adb, raise-gcc.c: New file.
22799
22800 * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
22801 from a-except.adb.
22802 Move GCC EH related code to a-exexpr-gcc.adb
22803
22804 * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
22805 64-bit Solaris
22806 Split the Linux version of g-soccon into separate variants for 32 and 64
22807 bit platforms.
22808 (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
22809 vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
22810 install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
22811 of host variable $(RANLIB_FLAGS).
22812 (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
22813 Code clean up: remove unused/obsolete targets.
22814 (EH_MECHANISM): New variable introduced to differenciate between the
22815 two EH mechanisms statically.
22816 (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
22817 (LIBGNAT_OBJS): Add raise-gcc.o
22818 (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
22819 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
22820 supports VxWorks 6 RTPs.
22821 (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
22822 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
22823
22824 * raise.c: Move all GCC EH-related routines to raise-gcc.c
22825
228262005-11-14 Jose Ruiz <ruiz@adacore.com>
22827
22828 * s-tassta.adb (Create_Task): Move the code in charge of resetting the
22829 deferral level, when abort is not allowed, to a later stage (the
22830 Task_Wrapper).
22831 (Task_Wrapper): If Abort is not allowed, reset the deferral level since
22832 it will not get changed by the generated code. It was previously done
22833 in Create_Task.
22834
228352005-11-14 Thomas Quinot <quinot@adacore.com>
22836 Olivier Hainque <hainque@adacore.com>
22837 Eric Botcazou <ebotcazou@adacore.com>
22838
22839 * decl.c:
22840 Factor common code to build a storage type for an unconstrained object
22841 from a fat or thin pointer type and a constrained object type.
22842 (annotate_value): Handle BIT_AND_EXPR.
22843 (annotate_rep): Don't restrict the back annotation of inherited
22844 components to the type_annotate_only case.
22845 (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
22846 we are not defining the type.
22847 <E_Record_Type>: Likewise.
22848 (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
22849 to get advantage of the new maybe_stabilize_reference interface, to
22850 ensure that what we reference is indeed stabilized instead of relying
22851 on assumptions on what the stabilizer does.
22852 (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
22853 type imported through a limited_with clause, use its non-limited view.
22854 (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
22855 differentiation.
22856 (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
22857 of #if sections + explicit comparisons of convention identifiers.
22858 (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
22859 before early-returning for certain types when code generation is
22860 disabled.
22861 (gnat_to_gnu_entity) <object>: Adjust comment attached to the
22862 nullification of gnu_expr we do for objects with address clause and
22863 that we are not defining.
22864 (elaborate_expression_1): Do not create constants when creating
22865 variables needed by the debug info: the dwarf2 writer considers that
22866 CONST_DECLs is used only to represent enumeration constants, and emits
22867 nothing for them.
22868 (gnat_to_gnu_entity) <object>: When turning a non-definition of an
22869 object with an address clause into an indirect reference, drop the
22870 initializing expression.
22871 Include "expr.h".
22872 (STACK_CHECK_BUILTIN): Delete.
22873 (STACK_CHECK_PROBE_INTERVAL): Likewise.
22874 (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
22875 (STACK_CHECK_MAX_VAR_SIZE): Likewise.
22876 (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
22877 corresponding to the renamed object as ignored for debugging purposes.
22878
22879 * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
22880 related): For a prefix that is a dereference of a fat or thin pointer,
22881 if there is an actual subtype provided by the front-end, use that
22882 subtype to build an actual type with bounds template.
22883 (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
22884 is provided by the front-end, use that subtype to compute the size of
22885 the deallocated object.
22886 (gnat_to_gnu): When adding a statement into an elaboration procedure,
22887 check for a potential violation of a No_Elaboration_Code restriction.
22888 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
22889 with extra arguments to control whether to recurse through non-values
22890 and to let the caller know if the stabilization has succeeded.
22891 (gnat_stabilize_reference): Now a simple wrapper around
22892 maybe_stabilize, for common uses without restriction on lvalues and
22893 without need to check for the success indication.
22894 (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
22895 pass false instead of 0 as the FORCE argument which is a bool.
22896 (Identifier_to_gnu): Remove checks ensuring that an renamed object
22897 attached to a renaming pointer has been properly stabilized, as no such
22898 object is attached otherwise.
22899 (call_to_gnu): Invoke create_var_decl to create the temporary when the
22900 function uses the "target pointer" return mechanism.
22901 Reinstate conversion of the actual to the type of the formal
22902 parameter before any other specific treatment based on the passing
22903 mechanism. This turns out to be necessary in order for PLACEHOLDER
22904 substitution to work properly when the latter type is unconstrained.
22905
22906 * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
22907 common pattern.
22908 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
22909 with extra arguments to control whether to recurse through non-values
22910 and to let the caller know if the stabilization has succeeded.
22911
22912 * utils2.c (gnat_build_constructor): Only sort the fields for possible
22913 static output of record constructor if all the components are constant.
22914 (gnat_build_constructor): For a record type, sort the list of field
22915 initializers in increasing bit position order.
22916 Factor common code to build a storage type for an unconstrained object
22917 from a fat or thin pointer type and a constrained object type.
22918 (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
22919 types variants, and process special cases of VIEW_CONVERT expressions
22920 as their NOP_EXPR counterpart to ensure we get to the
22921 CORRESPONDING_VARs associated with CONST_DECls.
22922 (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
22923 on the right-hand side.
22924
22925 * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
22926 a common pattern.
22927 (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
22928 are converting back to its original type.
22929 (convert) <JM input>: Fallthrough regular conversion code instead of
22930 extracting the object if converting to a type variant.
22931 (create_var_decl): When a variable has an initializer requiring code
22932 generation and we are at the top level, check for a potential violation
22933 of a No_Elaboration_Code restriction.
22934 (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
22935 SIZE and SIZE_UNIT which we need for later back-annotations.
22936 * utils.c: (convert) <STRING_CST>: Remove obsolete code.
22937 <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
22938 is an unchecked union.
22939 (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
22940 (convert) <VIEW_CONVERT_EXPR>: When the types have the same
22941 main variant, just replace the VIEW_CONVERT_EXPR.
22942 <UNION_TYPE>: Revert 2005-03-02 change.
22943
22944 * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
22945
22946 * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
22947
229482005-11-14 Matthew Heaney <heaney@adacore.com>
22949
9e81dbc7
AS
22950 * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads,
22951 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb,
22952 a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads,
22953 a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb,
22954 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
22955 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb:
5de923eb
AC
22956 Compiles against the spec for ordered maps described in sections
22957 A.18.6 of the most recent (August 2005) AI-302 draft.
22958
229592005-11-14 Olivier Hainque <hainque@adacore.com>
22960
22961 * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
22962 to ensure bias adjustments take place when need be and to prevent
22963 occurrences of intermediate overflows.
22964
229652005-11-14 Matthew Gingell <gingell@adacore.com>
22966 Olivier Hainque <hainque@adacore.com>
22967
22968 * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
22969 ia64 HP-UX.
22970
22971 * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
22972 tracebacks on ia64 HP-UX and provide explanatory comment.
22973 Enable backtraces on ia64 GNU/Linux.
22974 (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
22975 base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
22976
229772005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
22978 Javier Miranda <miranda@adacore.com>
22979
22980 * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
22981 exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
22982 exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
22983 einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
22984
22985 * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
22986 properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
22987 assertions).
22988
22989 * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
22990 subprogram that generates the external name associated with a
22991 secondary dispatch table.
22992 (Get_Secondary_DT_External_Name): New subprogram that generates the
22993 external name associated with a secondary dispatch table.
22994
229952005-11-14 Emmanuel Briot <briot@adacore.com>
22996
22997 * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
22998 line in the ALI file to include both an instantiation reference, and a
22999 returned value.
23000
230012005-11-14 Vincent Celier <celier@adacore.com>
23002
23003 * clean.adb (Check_Project): Look for Ada code in extending project,
23004 even if Ada is not specified as a language.
23005 Use new function DLL_Prefix for DLL_Name
23006 (Clean_Interface_Copy_Directory): New procedure
23007 (Clean_Library_Directory): New procedure
23008 (Clean_Directory): Remove procedure, no longer used
23009 (Clean_Project): Do not delete any file in an externally built project
23010
23011 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
23012 directory of an extending project, even when there are no Ada source
23013 present.
23014 (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
23015 (Set_Ada_Paths.Add.Recursive_Add): Ditto
23016
23017 * mlib-prj.adb (Check_Library): For all library projects, get the
23018 library file timestamp.
23019 (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
23020 (Build_Library): Use new function DLL_Prefix for the DLL_Name
23021 (Clean): Remove procedure, no longer used
23022 (Ultimate_Extension_Of): New function
23023 (Build_Library): When cleaning the library directory, only remove an
23024 existing library file and any ALI file of a source of the project.
23025 When cleaning the interface copy directory, remove any source that
23026 could be a source of the project.
23027
23028 * prj.ads, prj.adb (Project_Empty): Add values of new components
23029 Library_TS and All_Imported_Projects.
23030 (Project_Empty): Add values for new components of Project_Data:
23031 Library_ALI_Dir and Display_Library_ALI_Dir
23032
23033 * prj-attr.adb: New project level attribute name Library_ALI_Dir
23034
23035 * prj-nmsc.adb (Check_Library_Attributes): Take into account new
23036 attribute Library_ALI_Dir.
23037 (Check_Library_Attributes): The library directory cannot be the same as
23038 any source directory of the project tree.
23039 (Check_Stand_Alone_Library): The interface copy directory cannot be
23040 the same as any source directory of the project tree.
23041
23042 * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
23043 all temporary files.
23044
230452005-11-14 Robert Dewar <dewar@adacore.com>
23046 Ed Schonberg <schonberg@adacore.com>
23047
23048 * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
23049 (Check_Elab_Call): A call within a protected body is never an
23050 elaboration call, and does not require checking.
23051 (Same_Elaboration_Scope): Take into account protected types for both
23052 entities.
23053 (Activate_Elaborate_All_Desirable): New procedure
23054
23055 * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
23056 desirable
23057
23058 * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
23059 (Elab_Error_Msg): Use -da to include internal unit links, not -de.
23060
9e81dbc7 23061 * lib-writ.ads, lib-writ.adb:
5de923eb
AC
23062 Implement new AD/ED for Elaborate_All/Elaborate desirable
23063 Use new Elaborate_All_Desirable flag in N_With_Clause node
23064
23065 * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
23066 N_Free_Statement nodes.
23067 Define new class N_Subprogram_Instantiation
23068 Add Elaborate_Desirable flag to N_With_Clause node
23069 Add N_Delay_Statement (covering two kinds of delay)
23070
23071 * debug.adb: Introduce d.f flag for compiler
23072 Add -da switch for binder
23073
230742005-11-14 Ed Schonberg <schonberg@adacore.com>
23075 Cyrille Comar <comar@adacore.com>
23076
23077 * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
23078 for task component, in the case of a limited aggregate. The enclosed
23079 object declaration will create it earlier. Otherwise, in the case of a
23080 nested aggregate, the object may appear in the wrong scope.
23081 (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
23082 (Gen_Assign): If the component being assigned is an array type and the
23083 expression is itself an aggregate, wrap the assignment in a block to
23084 force finalization actions on the temporary created for each row of the
23085 enclosing object.
23086 (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
23087 structures are initialized after all discriminants are set so that
23088 they can be accessed even when their offset is dynamic.
23089
230902005-11-14 Robert Dewar <dewar@adacore.com>
23091 Hristian Kirtchev <kirtchev@adacore.com>
23092
23093 * sem_attr.adb: Implement Machine_Rounding attribute
23094 (Analyze_Access_Attribute): The access attribute may appear within an
23095 aggregate that has been expanded into a loop.
23096 (Check_Task_Prefix): Add semantic check for attribute 'Callable and
23097 'Terminated whenever the prefix is of a task interface class-wide type.
23098 (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
23099 the prefix is of a task interface class-wide type.
23100
23101 * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
23102 to avoid warnings.
23103
23104 * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
23105 Remove pragma Inline for [Unaligned_]Valid.
23106 Add comments that Valid routines do not work for Vax_Float
23107
23108 * exp_attr.adb: Implement Machine_Rounding attribute
23109
23110 * snames.h: Add entry for Machine_Rounding attribute
23111
231122005-11-14 Javier Miranda <miranda@adacore.com>
23113 Robert Dewar <dewar@adacore.com>
23114 Hristian Kirtchev <kirtchev@adacore.com>
23115
23116 * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
23117 and related): For a prefix that is an explicit dereference of an
23118 access to unconstrained packed array type, annotate the dereference
23119 with an actual subtype so GIGI can make a correct size computation.
23120 (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
23121 'Unrestricted_Access, if the designated type is an interface we
23122 add a type conversion to force the displacement of the pointer
23123 to the secondary dispatch table.
23124 Use Universal_Real instead of Long_Long_Float when we need a high
23125 precision float type for the generated code (prevents gratuitous
23126 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
23127 (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
23128 'Terminated for task interface class-wide objects. Generate a call to
23129 the predefined dispatching routine used to retrieve the _task_id from
23130 a task corresponding record.
23131 (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
23132
23133 * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
23134 (Check_Dispatching_Operation): Protect the frontend againts
23135 previously detected errors.
23136
23137 * Makefile.rtl: Add new instantiations of system.fat_gen
23138
9e81dbc7 23139 * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads:
5de923eb
AC
23140 Change name of instantiated package for better consistency
23141 with newly added system.fat_gen instantiations.
23142
23143 * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
23144 s-fvagfl.ads: New files.
23145
231462005-11-14 Cyrille Comar <comar@adacore.com>
23147 Thomas Quinot <quinot@adacore.com>
23148
23149 * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
23150 assignment of a value of a tagged type that has been rewritten to a
23151 block statement, it is known by construction that no checks are
23152 necessary for the statements within the block: analyze it with checks
23153 suppressed.
23154 (Expand_N_If_Statement): When killing a dead then-branch in an
23155 if-statement that has elsif_parts, recompute the Current_Value node
23156 for any entity whose value is known from the condition of the first
23157 elsif_part.
23158 (Expand_N_Return_Statement): When returning a mutable record, convert
23159 the return value into its actual subtype in order to help the backend
23160 to return the actual size instead of the maximum. This is another
23161 aftermath of not returning mutable records on the sec-stack anymore.
23162
23163 * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
23164 handling of error msg for suspicious reverse range iteration.
23165 (Check_Possible_Current_Value_Condition): Move declaration from body to
23166 spec, to allow this subprogram to be called from exp_ch5.
23167
231682005-11-14 Thomas Quinot <quinot@adacore.com>
23169
23170 * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
23171 generate a set of nested array aggregates instead of a single flat
23172 aggregate for multi-dimensional arrays.
23173
231742005-11-14 Pascal Obry <obry@adacore.com>
23175
23176 * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
23177 by spawnve is a process handle, no need to convert. Add a parameter
23178 close to control wether the process handle must be closed.
23179 (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
23180 a process handle, not need to convert.
23181 (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
23182
23183 * g-expect.adb: (Kill): Document the new close parameter.
23184 (Close): Do not release the process handle in the kill there as
23185 waitpid() is using it.
23186 (Send_Signal): Release the process handle.
23187
231882005-11-14 Robert Dewar <dewar@adacore.com>
23189
23190 * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
23191 need a high precision float type for the generated code (prevents
23192 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
23193 used).
23194
23195 * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
23196 need a high precision float type for the generated code (prevents
23197 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
23198 used).
23199 (Expand_Width_Attribute): In configurable run-time, the attribute is not
23200 allowed on non-static enumeration subtypes. Force a load error to emit
23201 the correct diagnostic.
23202
232032005-11-14 Thomas Quinot <quinot@adacore.com>
23204 Robert Dewar <dewar@adacore.com>
23205 Ed Schonberg <schonberg@adacore.com>
23206
23207 * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
23208 subtype to compute the size of the designated object at run-time,
23209 create such a subtype and store it in the Actual_Designated_Subtype
23210 attribute of the N_Free_Statement.
23211 Generate itype for classwide designated object in both cases of
23212 user-specified storage pool: specific and class-wide, not only in the
23213 specific case.
23214 Raise CE when trying to set a not null access type object to null.
23215 (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
23216 an explicit loop, because freeze nodes make its position variable.
23217
23218 * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
23219 null object.
23220
232212005-11-14 Javier Miranda <miranda@adacore.com>
23222
23223 * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
23224 Build_Stream_Procedure): Add the null-excluding attribute to the first
23225 formal.
23226 This has no semantic meaning under Ada95 mode but it is a
23227 requirement under Ada05 mode.
23228
23229 * par-ch3.adb (P_Access_Definition): Addition of warning message if
23230 the null exclusion is used under Ada95 mode
23231 (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
23232 (P_Access_Definition): Remove assertion that forbids the use of
23233 the null-exclusion feature in Ada95.
23234
232352005-11-14 Robert Dewar <dewar@adacore.com>
23236
23237 * impunit.adb: Exclude container helper units not intended for use by
23238 users.
23239
232402005-11-14 Ed Schonberg <schonberg@adacore.com>
23241
23242 * freeze.adb (Freeze_Entity): For an access formal that is an access
23243 to subprogram, freeze the anonymous subprogram type at the same time,
23244 to prevent later freezing in the wrong scope, such as the enclosing
23245 subprogram body.
23246 (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
23247 subprogram whenever available.
23248
232492005-11-14 Arnaud Charlet <charlet@adacore.com>
23250
23251 PR ada/23732
23252 * gnatvsn.ads (Library_Version): Bump to 4.1
23253
232542005-11-14 Robert Dewar <dewar@adacore.com>
23255
23256 * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
23257 Storage_Offset to avoid wrap around causing invalid results.
23258
232592005-11-14 Pascal Obry <obry@adacore.com>
23260
23261 * gnatbind.adb (Is_Cross_Compiler): New function returning True for
23262 cross-compiler.
23263 (Scan_Bind_Arg): Fail with an error message if -M option is used
23264 on a native compiler.
23265
232662005-11-14 Robert Dewar <dewar@adacore.com>
23267 Vincent Celier <celier@adacore.com>
23268
23269 * gprep.adb: Implement -C switch to scan comments
23270
23271 * scng.adb: Scan comment symbol separately if Replace_In_Comments set
23272
23273 * scans.ads: Comment updates (including new use of Tok_Comment in
23274 preprocessing)
23275
23276 * opt.ads: Add documentation for flags that are used by gprmake,
23277 currently and in the next version of gprmake.
23278 (Verbosity_Level): New variable
23279 Add Replace_In_Comments switch
23280
23281 * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
23282 and -vm.
23283 Add /REPLACE_IN_COMMENTS for gnatprep -C switch
23284
232852005-11-14 Arnaud Charlet <charlet@adacore.com>
23286
23287 * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
23288 message, friendlier.
23289
232902005-11-14 Robert Dewar <dewar@adacore.com>
23291
23292 * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
23293
232942005-11-14 Doug Rupp <rupp@adacore.com>
23295
23296 * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
23297
232982005-11-14 Robert Dewar <dewar@adacore.com>
23299
23300 * interfac.ads: Change declarations of IEEE float types so that we no
23301 longer need a separate version of this package for VMS.
23302
233032005-11-14 Ed Schonberg <schonberg@adacore.com>
23304
23305 * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
23306 internal entity created for the declaration of a child subprogram body
23307 with no spec as coming from source, to generate proper cross-reference
23308 information.
23309
233102005-11-14 Vincent Celier <celier@adacore.com>
23311
23312 * make.adb (Compile_Sources): Change verbose message to minimum
23313 verbosity level High for "is in an Ada library", "is a read-only
23314 library" and "is an internal library",
23315 (Create_Binder_Mapping_File): Path name of ALI file for library project
23316 must include the library directory, not the object directory.
23317 (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
23318 for new switches -vl, -vm and -vh.
23319 (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
23320 (Check): Use minimum verbosity Medium for some Verbose_Msg calls
23321 (Compile_Sources): Do not attempt to compile if an ALI file is missing
23322 in a project that is externally built.
23323 (Compute_All_Imported_Projects): New procedure
23324 (Gnatmake): Check if importing libraries should be regenerated because
23325 at least an imported library is more recent.
23326 (Initialize): For each project compute the list of the projects it
23327 imports directly or indirectly.
23328 (Add_Library_Search_Dir): New procedure, used in place of
23329 Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
23330 put in the search paths.
23331 (Add_Source_Search_Dir): New procedure, used in place of
23332 Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
23333 put in the search paths.
23334 (Mark_Directory): Resolve the absolute path the directory before marking
23335 it.
23336
23337 * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
23338 call to new procedure Bad_Switch. Call Scan_Pos with new parameter
23339 Switch. Do not handle any exception.
23340 (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
23341 so that the switch is recognized as valid.
23342 (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
23343
233442005-11-14 GNAT Script <nobody@adacore.com>
23345
23346 * Make-lang.in: Makefile automatically updated
23347
233482005-11-14 Pascal Obry <obry@adacore.com>
23349
23350 * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
23351 used.
23352 (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
23353 In both cases the last argument was dropped.
23354
233552005-11-14 Eric Botcazou <ebotcazou@adacore.com>
23356
23357 * namet.h: (Column_Numbe): New type.
23358 (Get_Column_Number): Define to sinput__get_column_number.
23359 (Instantiation): Define to sinput__instantiation.
23360 (Get_Column_Number): Declare.
23361 (Instantiation): Likewise.
23362
233632005-11-14 Robert Dewar <dewar@adacore.com>
23364
23365 * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
23366 syntax, which could cause compiler hangs.
23367
233682005-11-14 Vincent Celier <celier@adacore.com>
23369
23370 * prj-ext.adb: Take into account new environment variable
23371 GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
23372 are defined.
23373 (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
23374 normalize its path name, making it absolute and resolving symbolic
23375 links, and replace the original if resolved path is different.
23376
233772005-11-14 Vincent Celier <celier@adacore.com>
23378
23379 * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
23380 into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
23381
233822005-11-14 Emmanuel Briot <briot@adacore.com>
23383
23384 * prj-pp.adb (Print): Do not output the with statement if the
23385 associated name is empty, which happens for virtual extending projects.
23386 (Print): Preserve the "extends all" attribute when printing the project.
23387
23388 * prj-tree.ads (String_Value_Of): Add comment about returned value for
23389 a virtual extending project.
23390
233912005-11-14 Ed Schonberg <schonberg@adacore.com>
23392
23393 * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
23394 rhs of an assignment even if the type is unconstrained, when the
23395 context is non-expanding.
23396 In an inlined body, if the context type is private,
23397 resolve with its full view, which must be a composite type.
23398
233992005-11-14 Robert Dewar <dewar@adacore.com>
23400 Ed Schonberg <schonberg@adacore.com>
23401
23402 * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
23403 Do not give obsolescent warning on with of subprogram (since we
23404 diagnose calls)
23405 (Analyze_With_Clause): Add test for obsolescent package
23406 (Install_Context_Clauses): If the unit is the body of a child unit, do
23407 not install twice the private declarations of the parents, to prevent
23408 circular lists of Use_Clauses in a parent.
23409 (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
23410 compiling body of child unit.
23411 Use new class N_Subprogram_Instantiation
23412 (Expand_With_Clause): If this is a private with_clause for a child unit,
23413 appearing in the context of a package declaration, then the implicit
23414 with_clauses generated for parent units are private as well.
23415 (License_Check): Do not generate message if with'ed unit is internal
23416
234172005-11-14 Gary Dismukes <dismukes@adacore.com>
23418 Ed Schonberg <schonberg@adacore.com>
23419 Thomas Quinot <quinot@adacore.com>
23420
23421 * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
23422 names are internal, because they will not have a corresponding partner
23423 in the actual package.
23424 (Analyze_Formal_Package): Move the setting of the formal package spec's
23425 Generic_Parent field so that it occurs prior to analyzing the package,
23426 to allow proper operation of Install_Parent_Private_Declarations.
23427 (Analyze_Package_Instantiation): Set the instantiated package entity's
23428 Package_Instantiation field.
23429 (Get_Package_Instantiation_Node): Move declaration to package spec.
23430 Retrieve the N_Package_Instantiation node when the Package_Instantiation
23431 field is present.
23432 (Check_Generic_Child_Unit): Within an inlined call, the only possible
23433 instantiation is Unchecked_Conversion, for which no parents are needed.
23434 (Inline_Instance_Body): Deinstall and record the use_clauses for all
23435 parent scopes of a scope being removed prior to inlining an instance
23436 body.
23437 (Analyze_Package_Instantiation): Do not perform front-end inlining when
23438 the current context is itself an instance within a non-instance child
23439 unit, to prevent scope stack errors.
23440 (Save_References): If the node is an aggregate that is an actual in a
23441 call, rewrite as a qualified expression to preserve some type
23442 information, to resolve possible ambiguities in the instance.
23443 (Instance_Parent_Unit): New global variable to record the ultimate
23444 parent unit associated with a generic child unit instance (associated
23445 with the existing Parent_Unit_Visible flag).
23446 (type Instance_Env): New component Instance_Parent_Unit for stacking
23447 parents recorded in the global Instance_Parent_Unit.
23448 (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
23449 stack.
23450 (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
23451 it's not a top-level unit, and only do this if Instance_Parent_Unit is
23452 not already set. Replace test of Is_Child_Unit with test of parent's
23453 scope against package Standard. Add comments and a ??? comment.
23454 (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
23455 on a child instance parent to test that the parent equals
23456 Instance_Parent rather than simply checking that the unit is not a
23457 child unit.
23458 (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
23459 (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
23460 a formal interface are ancestors of the corresponding actual.
23461 (Validate_Formal_Interface_Type): Additional legality checks.
23462 (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
23463 interface types with ancestors.
23464 (Analyze_Formal_Package): If formal is a renaming, use renamed entity
23465 to diagnose attempts to use generic within its own declaration.
23466
234672005-11-14 Ed Schonberg <schonberg@adacore.com>
23468 Javier Miranda <miranda@adacore.com>
23469
23470 * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
23471 discriminant.
23472 (Build_Private_Derived_Type): The entity of the created full view of the
23473 derived type does not come from source. If after installing the private
23474 declarations of the parent scope the parent is still private, use its
23475 full view to construct the full declaration of the derived type.
23476 (Build_Derived_Record_Type): Relax the condition that controls the
23477 execution of the check that verifies that the partial view and
23478 the full view agree in the set of implemented interfaces. In
23479 addition, this test now only takes into account the progenitors.
23480 (Derive_Interface_Subprograms): No need to derive subprograms
23481 of ancestors that are interfaces.
23482 (Derive_Subprograms): Remove formal No_Predefined_Prims and the
23483 associated code.
23484 Change name Is_Package to Is_Package_Or_Generic_Package
23485 (Complete_Subprograms_Derivation): Handle the case in which the full
23486 view is a transitive derivation of the ancestor of the partial view.
23487 (Process_Full_View): Rename local subprogram Find_Interface_In_
23488 Descendant to Find_Ancestor_Interface to leave the code more clear.
23489 Remove wrong code that avoids the generation of an error message
23490 when the immediate ancestor of the partial view is an interface.
23491 In addition some minor reorganization of the code has been done to
23492 leave it more clear.
23493 (Analyze_Type_Declaration): If type has previous incomplete tagged
23494 partial view, inherit properly its primitive operations.
23495 (Collect_Interfaces): Make public, for analysis of formal
23496 interfaces.
23497 (Analyze_Interface_Declaration): New procedure for use for regular and
23498 formal interface declarations.
23499 (Build_Derived_Record_Type): Add support for private types to the code
23500 that checks if a tagged type implements abstract interfaces.
23501 (Check_Aliased_Component_Type): The test applies in the spec of an
23502 instance as well.
23503 (Access_Type_Declaration): Clean up declaration of malformed type
23504 declared as an access to its own classwide type, to prevent cascaded
23505 crash.
23506 (Collect_Interfaces): For private extensions and for derived task types
23507 and derived protected types, the parent may be an interface that must
23508 be included in the interface list.
23509 (Access_Definition): If the designated type is an interface that may
23510 contain tasks, create Master_Id for it before analyzing the expression
23511 of the declaration, which may be an allocator.
23512 (Record_Type_Declaration): Set properly the interface kind, for use
23513 in allocators, the creation of master id's for task interfaces, etc.
23514
235152005-11-14 Javier Miranda <miranda@adacore.com>
23516 Ed Schonberg <schonberg@adacore.com>
23517
23518 * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
23519 omitted in case of stream attribute subprograms.
23520 (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
23521 appear immediately after a subprogram body, when there is no previous
23522 subprogram declaration.
23523 Change name Is_Package to Is_Package_Or_Generic_Package
23524 (Process_Formals): A non null qualifier on a non null named access
23525 type is not an error, and is a warning only if Redundant_Constructs
23526 are flagged.
23527
235282005-11-14 Gary Dismukes <dismukes@adacore.com>
23529 Ed Schonberg <schonberg@adacore.com>
23530
23531 * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
23532 nested within Analyze_Package_Specification to install the private
23533 declarations and use clauses within each of the parent units of a
23534 package instance of a generic child package.
23535 (Analyze_Package_Specification): When entering a private part of a
23536 package associated with a generic instance or formal package, the
23537 private declarations of the parent must be installed (by calling new
23538 procedure Install_Parent_Private_Declarations).
23539 Change name Is_Package to Is_Package_Or_Generic_Package
23540 (Preserve_Full_Attributes): For a synchronized type, the corresponding
23541 record is absent in a generic context, which does not indicate a
23542 compiler error.
23543
235442005-11-14 Ed Schonberg <schonberg@adacore.com>
23545
23546 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
23547 not try to rewrite a renamed stream attribute, because the operations
23548 on the type may not have been generated.
23549 Handle properly a renaming_as_body generated for a stream operation
23550 whose default is abstract because the object type itself is abstract.
23551 (Find_Type): If the type is incomplete and appears as the prefix of a
23552 'Class reference, it is tagged, and its list of primitive operations
23553 must be initialized properly.
23554 (Chain_Use_Clauses): When chaining the use clauses that appear in the
23555 private declaration of a parent unit, prior to compiling the private
23556 part of a child unit, find on the scope stack the proper parent entity
23557 on which to link the use clause.
23558 (Note_Redundant_Use): Emit a warning when a redundant use clause is
23559 detected.
23560 (Analyze_Object_Renaming): An attribute reference is not a legal object
23561 if it is not a function call.
23562
235632005-11-14 Robert Dewar <dewar@adacore.com>
23564 Ed Schonberg <schonberg@adacore.com>
23565
23566 * sem_eval.adb: Implement d.f flag
23567 (Subtype_Statically_Match): A generic actual type has unknown
23568 discriminants when the corresponding actual has a similar partial view.
23569 If the routine is called to validate the signature of an inherited
23570 operation in a child instance, the generic actual matches the full view,
23571
235722005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
23573 Ed Schonberg <schonberg@adacore.com>
23574 Robert Dewar <dewar@adacore.com>
23575 Thomas Quinot <quinot@adacore.com>
23576
23577 * sem_res.adb (Resolve_Call): Provide a better error message whenever
23578 a procedure call is used as a select statement trigger and is not an
23579 entry renaming or a primitive of a limited interface.
23580 (Valid_Conversion): If the operand has a single interpretation do not
23581 remove address operations.
23582 (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
23583 statement to inhibit warning.
23584 (Resolve_Unary_Op): Do not produce a warning when
23585 processing an expression of the form -(A mod B)
23586 Use Universal_Real instead of Long_Long_Float when we need a high
23587 precision float type for the generated code (prevents gratuitous
23588 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
23589 (Resolve_Concatenation_Arg): Improve error message when argument is an
23590 ambiguous call to a function that returns an array.
23591 (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
23592 there is an implicit operator in the given scope if we are within an
23593 instance: legality check has been performed on the generic.
23594 (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
23595 after resolving operand, to avoid false warnings on overloaded calls.
23596
235972005-11-14 Ed Schonberg <schonberg@adacore.com>
23598 Javier Miranda <miranda@adacore.com>
23599
23600 PR ada/15604
5de923eb
AC
23601 * sem_type.adb (Covers): In an inlined body, a composite type matches
23602 a private type whose full view is a composite type.
23603 (Interface_Present_In_Ancestor): Protect the frontend against
23604 previously detected errors to ensure that its compilation
23605 with assertions enabled gives the same output that its
23606 compilation without assertions.
23607 (Interface_Present_In_Ancestor): Add support for private types.
23608 Change name In_Actual to In_Generic_Actual (clean up)
23609 (Disambiguate): New predicate In_Actual, to recognize expressions that
23610 appear in the renaming declaration generated for generic actuals, and
23611 which must be resolved in the outer context.
23612
236132005-11-14 Robert Dewar <dewar@adacore.com>
23614 Thomas Quinot <quinot@adacore.com>
23615 Hristian Kirtchev <kirtchev@adacore.com>
23616 Ed Schonberg <schonberg@adacore.com>
23617
23618 * sem_util.ads, sem_util.adb: Change name Is_Package to
23619 Is_Package_Or_Generic_Package.
23620 (Check_Obsolescent): New procedure.
23621 (Set_Is_Public): Remove obsolete junk test.
23622 (Set_Public_Status): Do not set Is_Public on an object whose declaration
23623 occurs within a handled_sequence_of_statemets.
23624 (Is_Controlling_Limited_Procedure): Factor some of the logic, account
23625 for a parameterless procedure.
23626 (Enter_Name): Recognize renaming declarations created for private
23627 component of a protected type within protected operations, so that
23628 the source name of the component can be used in the debugger.
23629
236302005-11-14 Ed Schonberg <schonberg@adacore.com>
23631 Robert Dewar <dewar@adacore.com>
23632
23633 * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
23634 of a generic subprogram are not visible outside the body.
23635 (Set_Warning_Switch): New procedure (code to set warning mode moved
23636 here from Switch.C so that it can be shared by pragma processing.
23637 (Check_References): Special case warning for non-modified non-imported
23638 volatile objects.
23639 * par-prag.adb: Modify processing of pragma Warnings to accomodate new
23640 form with a string literal argument
23641
236422005-11-14 Javier Miranda <miranda@adacore.com>
23643
23644 * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
23645 anonymous access.
23646 (Write): Addition of "not null" to the anonymous access.
23647 (Read): Addition of "not null" to the anonymous access.
23648 (Write): Addition of "not null" to the anonymous access.
23649
23650 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
23651 I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
23652 I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
23653 (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
23654 W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
23655 "not null" to the anonymous access.
23656
236572005-11-14 Robert Dewar <dewar@adacore.com>
23658
23659 * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
23660 offset values
23661
236622005-11-14 Vincent Celier <celier@adacore.com>
23663
23664 * switch.adb (Bad_Switch): New procedure
23665 (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
23666 message when in error.
23667
23668 * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
23669 Too_Many_Output_Files): Remove declarations, no longer used.
23670 (Scan_Nat): New parameter Switch
23671 (Scan_Pos): Ditto
23672 (Bad_Switch): New procedure
23673
23674 * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
23675 with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
23676 new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
23677 to Osint.Fail. Do not handle any exception.
23678
236792005-11-14 Vincent Celier <celier@adacore.com>
23680
23681 * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
23682 designates a non existent directory.
23683
236842005-11-14 Robert Dewar <dewar@adacore.com>
23685
23686 * xgnatugn.adb: Replace invalid membership test by 'Valid
23687
236882005-11-14 Vincent Celier <celier@adacore.com>
23689
23690 * makegpr.adb (Gprmake): Do not attempt to build the global archive if
23691 there is no object directory.
23692
236932005-11-14 Robert Dewar <dewar@adacore.com>
23694
23695 * usage.adb: Minor adjustment to output format, use nn instead of nnn
23696 (so that -gnateInnn does not run into next column)
23697
236982005-11-14 Ed Falis <falis@adacore.com>
23699
23700 * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
23701 "constrained"
23702
237032005-11-14 Cyrille Comar <comar@adacore.com>
23704
23705 * s-chepoo.ads: Add comments on Dereference.
23706 Remove unnecessary inherited abstract primitives.
23707 Cosmetic cleanup.
23708
237092005-11-14 Robert Dewar <dewar@adacore.com>
23710
23711 * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
23712 node parameter, not needed, since it is available as Declaration_Node.
23713
237142005-11-14 Geert Bosch <bosch@adacore.com>
23715
23716 * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
23717 grammatically correct.
23718
237192005-11-14 Vincent Celier <celier@adacore.com>
23720
23721 * s-fileio.ads: Correct spelling error in comment
23722
237232005-11-14 Cyrille Comar <comar@adacore.com>
23724 Robert Dewar <dewar@adacore.com>
23725 Vincent Celier <celier@adacore.com>
23726 Ben Brosgol <brosgol@adacore.com>
23727 Jose Ruiz <ruiz@adacore.com>
23728 Pascal Obry <obry@adacore.com>
23729
9e81dbc7 23730 * gnat_ugn.texi:
5de923eb
AC
23731 Document that -fstack-check is needed for strict compliance with the
23732 Ada 95 Reference Manual.
23733 Correct reference to VAX systems to meet HP guidelines
23734 Add documentation for new gnatmake switches -vl, -vm and -vh
23735 Replace DEC Ada by HP Ada
23736 Replace DIGITAL by HP
23737 Remove empty section on tools in compatibility section
23738 Clarify the Windows convention semantics.
23739 Document the Win32 calling convention.
23740 The Stdcall, Win32 and DLL convention are synonyms.
23741 Add a note in -gnatR description about zero size record components
23742 Note on new >= and <= warnings for -gnatwc
23743 Document that equal sign after -gnatm is optional.
23744 Note that strip is working fine on DLL built with a Library
23745 Project. The restriction apply only to DLL built with gnatdll.
23746 Update section about the way to debug a DLL.
23747 Update information about the DLL convention.
23748 Document -C switch for gnatprep
23749 Document new attribute Library_ALI_Dir
23750 Update elaboration doc to include implicit Elaborate pragmas now
23751 generated for subprogram instantiations.
23752 Document limitation on executable names that include spaces for --GCC,
23753 --GNATBIND, and --GNATLINK switches.
23754 Document that -w causes -gnatws to be added at start of gcc switches
23755
23756 * gnat_rm.texi: Document that -mieee is needed for generating infinite
23757 and NaN values in case of overflow on machines that are not fully
23758 compliant with the IEEE floating-point standard.
23759 Create a section describing the set of compiler options needed for
23760 strict compliance with the Ada 95 Reference Manual.
23761 Add documentation for pragma Obsolescent applied to a package
23762 Clarify potential issues of mixed language programs related to the
23763 I/O buffering enabling in the elaboration of the GNAT runtime.
23764 Add extra documentation for pragma Restrictions (No_Elaboration_Code)
23765 This documentation only patch adds extra documentsion for pragma
23766 Restrictions (No_Elaboration_Code), explaining why it is not possible
23767 to document this restriction in terms of allowed source constructs.
23768 Document string literal form of pragma Warnings
23769 Document new attribute Library_ALI_Dir
23770 Add documentation on stable attributes in project files that was missing
23771
23772 * gnat-style.texi: Indicate that paragraphs within a single comment
23773 should be separated by empty comment lines
23774
23775 * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
23776 /05 respectively)
23777
23778 * bindusg.adb: Minor cleanup, put -m before -M for consistency
23779
237802005-11-14 Robert Dewar <dewar@adacore.com>
23781
23782 * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
23783 a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
23784 a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
23785 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
23786 a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
23787 a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
23788 a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
23789 a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
23790 a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
23791 a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
23792 a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
23793 a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
23794 g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
23795 a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
23796 a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
23797 system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
23798 g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
23799 g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
23800 a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
23801 a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
23802 a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
23803 a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
23804 a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
23805 a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
23806 system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
23807 system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
23808 a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
23809 a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
23810 a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
23811 system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
23812 system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
23813 s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
23814 system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
23815 system-interix.ads, system-solaris-sparc.ads,
23816 system-solaris-sparcv9.ads, s-inmaop-vms.adb,
23817 s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
23818 system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
23819 s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
23820 a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
23821 a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
23822 a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
23823 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
23824 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
23825 a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
23826 a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
23827 a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
23828 a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
23829 a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
23830 a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
23831 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
23832 a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
23833 a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
23834 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
23835 a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
23836 a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
23837 a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
23838 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
23839 a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
23840 a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
23841 a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
23842 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
23843 a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
23844 a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
23845 a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
23846 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
23847 a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
23848 a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
23849 a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
23850 bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
23851 csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
23852 errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
23853 errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
23854 exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
23855 exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
23856 freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
23857 g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
23858 g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
23859 g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
23860 g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
23861 g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
23862 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
23863 g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
23864 g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
23865 gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
23866 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
23867 g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
23868 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
23869 g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
23870 g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
23871 g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
23872 layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
23873 mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
23874 mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
23875 nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
23876 osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
23877 par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
23878 par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
23879 par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
23880 prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
23881 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
23882 prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
23883 prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
23884 sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
23885 sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
23886 sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
23887 sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
23888 s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
23889 sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
23890 s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
23891 s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
23892 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
23893 s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
23894 s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
23895 s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
23896 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
23897 s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
23898 s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
23899 s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
23900 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
23901 s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
23902 s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
23903 s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
23904 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
23905 s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
23906 s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
23907 s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
23908 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
23909 s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
23910 s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
23911 s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
23912 s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
23913 s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
23914 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
23915 s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
23916 styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
23917 s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
23918 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
23919 s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
23920 s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
23921 s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
23922 s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
23923 s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
23924 s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
23925 s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
23926 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
23927 table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
23928 tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
23929 ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
23930 usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
23931 xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
23932 xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
23933 a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
23934 a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
23935 a-numaux-darwin.ads, a-numaux-darwin.adb,
23936 a-swuwha.ads, a-stunha.ads: Minor reformatting
23937
e0ac6309
RD
239382005-11-14 Robert Dewar <dewar@adacore.com>
23939
23940 PR ada/18434
23941 * osint-m.adb: Add pragma Elaborate_All for Osint
23942
f45ddfe0
EB
239432005-11-10 Eric Botcazou <ebotcazou@adacore.com>
23944
23945 PR ada/23995
23946 * trans.c (call_to_gnu): Restore statement lost in translation.
23947
13bb031a
EB
239482005-11-08 Eric Botcazou <ebotcazou@adacore.com>
23949
23950 * init.c: Use the Linux-specific section for the IA-64/Linux target.
23951 (__gnat_adjust_context_for_raise): Add conditional code so that the
23952 IA-64 is also supported.
23953
72098128
JW
239542005-11-03 James E Wilson <wilson@specifix.com>
23955
23956 PR ada/23427
13bb031a
EB
23957 * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
23958 TREE_OVERFLOW check.
72098128 23959
8fafe21d
OH
239602005-09-21 Olivier Hainque <hainque@adacore.com>
23961
23962 PR ada/22418
23963 * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
23964 as we create them to store a size in bits.
23965
552725e3
EB
239662005-10-21 Eric Botcazou <ebotcazou@adacore.com>
23967
23968 PR ada/21937
23969 PR ada/22328
23970 PR ada/22381
23971 PR ada/22383
23972 PR ada/22419
23973 PR ada/22420
23974 * utils2.c (build_return_expr): New helper function.
23975 * gigi.h (build_return_expr): Declare it.
23976 * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
23977 of manually building the RETURN_EXPR tree.
23978 (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
23979 (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
8fafe21d 23980 build_binary_op for the "target pointer" case. Use build_return_expr
552725e3
EB
23981 instead of manually building the RETURN_EXPR tree.
23982
9e94c78f 239832005-09-16 Laurent Guerby <laurent@guerby.net>
ccdeca37
LG
23984
23985 PR ada/23788
23986 * s-tpinop.ads: Make this unit Preelaborate.
23987
da8f5fd9
AJ
239882005-09-16 Andreas Jaeger <aj@suse.de>
23989
23990 * socket.c: Add string.h for memcpy.
23991
98b40956
AC
239922005-09-05 Arnaud Charlet <charlet@adacore.com>
23993
23994 * dec-io.ads, dec-io.adb: Removed, no longer used.
23995
239962005-09-01 Arnaud Charlet <charlet@adacore.com>
23997
23998 * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
23999
24000 * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
24001 s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
24002 s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
24003 s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
24004 dependent units are Preelaborate.
24005 (Initialize): Call Interrupt_Managemeent.Initialize and
24006 OS_Primitives.Initialize to ensure proper initialization of this unit.
24007 Remove use of System.Soft_Links
24008 Make this unit Preelaborate.
24009
24010 * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
24011 s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
24012 s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
24013 s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
24014 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
24015 s-tratas.ads, s-tasinf.ads: Minor reformatting.
24016 Add pragma Preelaborate, since these packages are suitable for this
24017 categorization.
24018 Update comments.
24019
24020 * s-traent-vms.ads, s-intman-dummy.adb,
24021 s-taprop-dummy.adb: Make this unit Preelaborate.
24022
24023 * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
da8f5fd9 24024 s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
98b40956
AC
24025 s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
24026 s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
24027 s-intman-solaris.adb, s-intman-irix-athread.adb,
24028 s-intman-irix.adb: Mark this unit Preelaborate.
24029 (Initialize): New procedure.
24030 Update comments.
24031
24032 * s-taspri-linux.ads: Removed.
24033
24034 * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
24035 as done by other implementations (e.g. posix).
24036
24037 * s-taprop.ads (Timed_Delay): Update spec since the caller now is
24038 responsible for deferring abort.
24039 Mark this unit Preelaborate.
24040
24041 * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
24042 proper initialization of the tasking run-time.
24043
24044 * s-tasdeb.ads: Mark this unit Preelaborate.
24045 (Known_Tasks): Add explicit default value to avoid elaboration code.
24046
24047 * s-inmaop-vms.adb (Elaboration code): Add call to
24048 Interrupt_Management.Initialize since the elaboration code depends on
24049 proper initialization of this package.
24050
24051 * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
24052 s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
24053 s-osprim-posix.adb: Make this unit Preelaborate.
24054
24055 * a-calend.adb: Add call to OS_Primitives.Initialize
24056
24057 * a-elchha.adb: Update use of Except.Id.Full_Name.
24058 Minor reformatting.
24059 Remove use of Ada.Exceptions.Traceback when possible, cleaner.
24060
24061 * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
24062 Move with clauses outside Warnings Off now that dependent units are
24063 Preelaborate.
24064 Use raise xxx with "..."; Ada 2005 form.
24065
da8f5fd9 24066 * a-taside.ads, a-taside.adb:
98b40956
AC
24067 Remove some dependencies, to make it easier to make this unit truly
24068 Preelaborate.
24069 Rewrite some code to be conformant with Preelaborate rules.
24070
24071 * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
24072 marked Preelaborate in the future.
24073
24074 * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
24075 these units Preelaborate.
24076
24077 * s-exctab.adb: Update use of Except.Id.Full_Name.
24078
24079 * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
24080 (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
24081 Set_Exc_Stack_Addr): Removed, no longer used.
24082 Remove reference to *Machine_State_Addr*, no longer needed.
24083
24084 * s-stalib.ads: Mark this unit as Preelaborate[_05].
24085 (Exception_Data): Full_Name is now a System.Address so that this unit
24086 can be made Preelaborate.
24087 Clean up/simplify code thanks to Full_Name being a System.Address.
24088 Remove obsolete pragma Suppress (All_Checks), no longer needed.
24089
da8f5fd9 24090 * s-taskin.ads, s-taskin.adb:
98b40956
AC
24091 Move with clauses outside Warnings Off now that dependent units are
24092 Preelaborate.
24093 Make this unit Preelaborate.
24094 (Initialize): New proceduure, replace elaboration code and makes the
24095 set up of the tasking run-time cleaner.
24096 (Detect_Blocking): Now a function instead of a deferred boolean, to
24097 obey Preelaborate rules.
24098
24099 * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
24100 soft links, no longer used.
24101
24102 * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
24103 packages are suitable for this categorization.
24104
24105 * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
24106 since we compile run-time sources in Ada 2005 mode.
24107 (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
24108 avoid having s-taprop*.adb depend on s-soflin and to avoid code
24109 duplication.
24110 Remove reference to *Machine_State_Addr*, no longer needed.
24111
241122005-09-01 Arnaud Charlet <charlet@adacore.com>
24113
24114 * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
24115 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
24116 Remove reference to System.Exceptions.
24117
24118 * s-mastop-x86.adb: Removed, no longer used.
24119
24120 * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
24121
24122 * a-excach.adb: Minor reformatting.
24123
24124 * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
24125 instead fix new warnings that were hidden by this change.
24126 (AAA, ZZZ): Removed, replaced by...
24127 (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
24128 are used instead of constants, to help make Ada.Exception truly
24129 preelaborate.
24130 (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
24131 Raise_Storage_Error): File is now a System.Address, to simplify code.
24132 (Elab code): Removed, no longer used.
24133 (Null_Occurrence): Remove Warnings Off and make this construct
24134 preelaborate.
24135 Remove code related to front-end zero cost exception handling, since
24136 it is no longer used.
24137 Remove -gnatL/-gnatZ switches.
24138
24139 * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
24140 Update use of Except.Msg.
24141
24142 * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
24143 freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
24144 to front-end zero cost exception handling, since it is no longer used.
24145 Remove -gnatL/-gnatZ switches.
24146
24147 * lib-writ.ads: Minor reformatting
24148 Remove doc of UX
24149
24150 * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
24151
24152 * Make-lang.in: Remove references to s-except.ads
24153
24154 * s-except.ads: Removed, no longer used.
24155
da8f5fd9 24156 * s-mastop.ads, s-mastop.adb:
98b40956
AC
24157 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
24158 Remove reference to System.Exceptions.
24159
24160 * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
24161 switch-b.adb: Remove code related to front-end zero cost exception
24162 handling, since it is no longer used.
24163 Remove -gnatL/-gnatZ switches.
24164
241652005-09-01 Robert Dewar <dewar@adacore.com>
24166 Gary Dismukes <dismukes@adacore.com>
24167 Javier Miranda <miranda@adacore.com>
24168
24169 * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
24170 type by valid test and generate warning.
24171 (Tagged_Membership): Generate call to the run-time
24172 subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
24173 Change formal name Subtype_Mark to Result_Definition in several calls to
24174 Make_Function_Specification.
24175 (Expand_Allocator_Expression): Add tests for suppression of the AI-344
24176 check for proper accessibility of the operand of a class-wide allocator.
24177 The check can be left out if checks are suppressed or if the expression
24178 has a specific tagged type whose level is known to be safe.
24179
24180 * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
24181 generates the run-time check associated with null-excluding entities.
24182 (Expand_N_Return_Statement): Add tests to determine if the accessibility
24183 check on the level of the return expression of a class-wide function
24184 can be elided. The check usually isn't needed if the expression has a
24185 specific type (unless it's a conversion or a formal parameter). Also
24186 add a test for whether accessibility checks are suppressed. Augment
24187 the comments to describe the conditions for performing the check.
24188
241892005-09-01 Hristian Kirtchev <kirtchev@adacore.com>
24190 Javier Miranda <miranda@adacore.com>
24191 Gary Dismukes <dismukes@adacore.com>
24192 Ed Schonberg <schonberg@adacore.com>
24193
24194 * a-tags.adb (IW_Membership): Give support to
24195 "Iface_CW_Typ in T'Class". For this purpose the functionality of this
24196 subprogram has been extended to look for the tag in the ancestors tag
24197 table.
24198 Update the structure of the GNAT Dispatch Table to reflect the
24199 additional two tables used in dispatching selects.
24200 Introduce appropriate array types and record components in
24201 Type_Specific_Data to reflect the two tables.
24202 (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
24203 the TSD of a tag, indexed by position.
24204 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
24205 operation kind in the TSD of a tag, indexed by position.
24206
24207 * a-tags.ads: Introduce an enumeration type to capture different
24208 primitive operation kinds. Define a constant reflecting the number of
24209 predefined primitive operations.
24210 (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
24211 of an entry wrapper.
24212 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
24213 callable entity of a primitive operation.
24214
24215 * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
24216 primitive operations used in dispatching selects for limited
24217 interfaces, limited tagged, task and protected types what implement a
24218 limited interface.
24219 (Freeze_Type): Generate the bodies of the primitive operations used in
24220 dispatching selects for limited tagged, task and protected types that
24221 implement a limited interface. Generate statements to populate the two
24222 auxiliary tables used for dispatching in select statements.
24223 (Freeze_Record_Type): Add call to initialize the dispatch table entries
24224 associated with predefined interface primitive operations.
24225 (Build_Dcheck_Function): Change Set_Subtype_Mark to
24226 Set_Result_Definition.
24227 (Build_Variant_Record_Equality): Change Subtype_Mark to
24228 Result_Definition.
24229 (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
24230 (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
24231 (Build_Assignment): Simplify the code that adds the run-time-check.
24232 (Expand_N_Object_Declaration): Code cleanup.
24233
24234 * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
24235 entries when there is a protected type that implements a limited
24236 interface.
24237
24238 * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
24239 common routines used in expansion of dispatching selects.
24240 (Add_Private_Declarations): Select the appropriate protection type when
24241 there is a protected type that implements a limited interface.
24242 (Build_Parameter_Block): Generate a wrapped parameter block.
24243 (Build_Protected_Subprogram_Body): Select the appropriate type for
24244 locking entries when there is a protected type that implements a
24245 limited interface.
24246 (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
24247 classified as entry wrappers.
24248 (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
24249 asynchronous selects.
24250 (Expand_N_Conditional_Entry_Call): Add support for expansion of
24251 dispatching conditional selects.
24252 (Expand_N_Protected_Type_Declaration): Select the appropriate type for
24253 protection when there is a protected type that implements limited
24254 interfaces.
24255 (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
24256 timed selects.
24257 (Extract_Dispatching_Call): Extract the entity of the name of a
24258 dispatching call, the object parameter, actual parameters and
24259 corresponding formals.
24260 (Make_Initialize_Protection): Correct logic of protection initialization
24261 when there is a protected type that implements a limited interface.
24262 (Parameter_Block_Pack): Populate a wrapped parameter block with the
24263 values of actual parameters.
24264 (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
24265 block and assign them to the original actual parameters.
24266
24267 * exp_ch9.ads (Subprogram_Protection_Mode): New type.
24268 (Build_Protected_Sub_Specification): Change the type and name of the
24269 last formal to account for the increased variety of protection modes.
24270
24271 * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
24272 entities. Used to save the value of the Is_Hidden attribute when the
24273 limited-view is installed.
24274 (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
24275 the attribute of procedures classified as entry wrappers.
24276 (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
24277 entity of a primitive wrapper.
24278 (Write_Entity_Flags): Output the name and value of the
24279 Is_Primitive_Wrapper attribute.
24280 (Write_Field27_Name): Output the name and entity of the field Wrapped_
24281 Entity.
24282 (Underlying_Type): If we have an incomplete entity that comes from
24283 the limited view then we return the Underlying_Type of its non-limited
24284 view if it is already available.
24285 (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
24286 including operators.
24287 (Write_Field26_Name): Add entry for Overridden_Operation
24288 (Overridden_Operation): New attribute of functions and procedures.
24289
24290 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
24291 predefined position in the dispatch table for the primitive operations
24292 used in dispatching selects.
24293 (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
24294 predefined primitive operations and replace it with
24295 Default_Prim_Op_Count.
24296 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
24297 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
24298 the names of the generated primitive operations used in dispatching
24299 selects.
24300 (Init_Predefined_Interface_Primitives): No need to inherit primitives in
24301 case of abstract interface types. They will be inherit by the objects
24302 implementing the interface.
24303 (Make_DT): There is no need to inherit the dispatch table of the
24304 ancestor interface for the elaboration of abstract interface types.
24305 The dispatch table will be inherited by the object implementing the
24306 interface.
24307 (Copy_Secondary_DTs): Add documentation.
24308 (Validate_Position): Improve this static check in case of
24309 aliased subprograms because aliased subprograms must have
24310 the same position.
24311 (Init_Predefined_Interface_Primitives): New subprogram that initializes
24312 the entries associated with predefined primitives of all the secondary
24313 dispatch tables.
24314 (Build_Anonymous_Access_Type): Removed.
24315 (Expand_Interface_Actuals): With the previous cleanup there is no need
24316 to build an anonymous access type. This allows further cleanup in the
24317 code generated by the expander.
24318 (Expand_Interface_Conversion): If the actual is an access type then
24319 build an internal function to handle the displacement. If the actual
24320 is null this function returns null because no displacement is
24321 required; otherwise performs a type conversion that will be
24322 expanded in the code that returns the value of the displaced actual.
24323 (Expand_Interface_Actuals): Avoid the generation of unnecessary type
24324 conversions that have no effect in the generated code because no
24325 displacement is required. Code cleanup; use local variables to
24326 avoid repeated calls to the subprogram directly_designated_type().
24327
24328 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
24329 Classify the primitive operations used in dispatching selects as
24330 predefined.
24331 (Implements_Limited_Interface): Determine whether some type either
24332 directly implements a limited interface or extends a type that
24333 implements a limited interface.
24334 (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
24335 (Expand_Subtype_From_Expr): Do not build actual subtype if the
24336 expression is limited.
24337 (Find_Interface_Tag): Add code to handle class-wide types and
24338 entities from the limited-view.
24339
24340 * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
24341 Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
24342 POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
24343 POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
24344 Set_Prim_Op_Kind.
24345
24346 * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
24347 of procedure name or prefix that appears as a trigger in a triggering
24348 alternative.
24349
24350 * uintp.ads: Introduce constants Uint_11 and Uint_13.
24351
243522005-09-01 Arnaud Charlet <charlet@adacore.com>
24353
24354 * s-tataat.adb, a-tasatt.adb:
24355 Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
24356
24357 * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
24358 these procedures to body, and renamed Abort_Defer, Abort_Undefer.
24359 (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
24360 longer used.
24361
243622005-09-01 Arnaud Charlet <charlet@adacore.com>
24363 Jose Ruiz <ruiz@adacore.com>
24364
da8f5fd9 24365 * s-taprop-vxworks.adb:
98b40956
AC
24366 Move with clauses outside Warnings Off now that dependent units are
24367 Preelaborate.
24368 (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
24369 initialization of this unit.
24370 (Specific): Add new procedures Initialize and Delete so that this
24371 package can be used for VxWorks 5.x and 6.x
24372 (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
24373 differences between VxWorks 5.x and 6.x
24374 Minor reformatting.
24375 (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
24376 caller.
24377 Use only Preelaborate-compatible constructs.
24378
24379 * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
24380 Primitives.Operations.
24381 (Delete, Initialize): New procedures.
24382
24383 * s-osinte-vxworks.adb: Body used to handle differences between
24384 VxWorks 5.x and 6.x
24385 (kill, Set_Time_Slice, VX_FP_TASK): New functions.
24386
24387 * s-osinte-vxworks.ads: Minor reformatting.
24388 Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
24389 (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
24390 and 6.
24391 (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
24392 between Vxworks 5 and 6.
24393 (taskLock, taskUnlock): Removeed, no longer used.
24394
24395 * adaint.c: The wait.h header is not located in the sys directory on
24396 VxWorks when using RTPs.
24397 (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
24398 using RTPs.
24399 (__gnat_dup): dup is available on Vxworks when using RTPs.
24400 (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
24401
24402 * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
24403
24404 * expect.c: The wait.h header is not located in the sys directory on
24405 VxWorks when using RTPs.
24406
244072005-09-01 Thomas Quinot <quinot@adacore.com>
24408
24409 * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
24410
24411 * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
24412
24413 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
24414 g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
24415 g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
24416 g-soccon-freebsd.ads: Add new constants:
24417 IP_MULTICAST_IF
24418 SO_RCVTIMEO/SO_SNDTIMEO
24419 IOV_MAX
24420
da8f5fd9 24421 * gen-soccon.c:
98b40956
AC
24422 Move all target-specific file inclusions and macro definitions to
24423 gsocket.h, in order to ensure that any C code in socket.c will see a
24424 set of constants that is consistent with the contents of g-soccon.ads.
24425
24426 * gsocket.h: Code imported from gen-soccon.c:
24427 Move all target-specific file inclusions and macro definitions to
24428 gsocket.h, in order to ensure that any C code in socket.c will see a set
24429 of constants that is consistent with the contents of g-soccon.ads.
24430 This change also makes gen-soccon self-contained (removing dependencies
24431 upon GCC internal headers).
24432
24433 * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
24434 iovecs at a time.
24435 (To_Inet_Addr): Now a procedure instead of a function, more efficient.
24436
24437 * socket.c: Minor reformatting.
24438
244392005-09-01 Ed Schonberg <schonberg@adacore.com>
24440 Thomas Quinot <quinot@adacore.com>
24441
24442 * fname-sf.adb, mlib-tgt.ads,
24443 back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
24444 g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
24445 osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
24446 prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
24447 prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
24448 prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
24449 sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
24450 makegpr.adb: Remove redundant use_clauses.
24451
244522005-09-01 Arnaud Charlet <charlet@adacore.com>
24453
da8f5fd9
AJ
24454 * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
24455 s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
24456 s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
24457 s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
24458 s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
24459 s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
24460 s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
24461 table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
24462 s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
24463 s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
24464 a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
24465 a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
24466 a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
24467 a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
24468 system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
98b40956 24469 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
da8f5fd9
AJ
24470 s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
24471 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
24472 s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
24473 s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
24474 s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
24475 s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
24476 system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
24477 s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
24478 system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
24479 s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
24480 a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
24481 a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
98b40956
AC
24482 a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
24483 a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
da8f5fd9
AJ
24484 a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
24485 a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
24486 a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
24487 a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
24488 a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
24489 a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
24490 csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
24491 g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
24492 a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
24493 a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
24494 a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
24495 a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
24496 g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
24497 i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
24498 interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
24499 i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
24500 s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
24501 s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
24502 s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
24503 s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
24504 s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
24505 s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
24506 s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
24507 s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
24508 s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
24509 s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
24510 s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
24511 s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
24512 s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
24513 s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
24514 s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
24515 s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
24516 s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
24517 s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
24518 s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
24519 s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
24520 s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
98b40956
AC
24521 s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
24522 and always use the no parameter form for consistency.
24523
24524 * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
24525
245262005-09-01 Robert Dewar <dewar@adacore.com>
24527
24528 * binde.adb: Minor reformatting
24529 (Find_Elab_Order): Output warning if -p used with static elab order
24530
245312005-09-01 Robert Dewar <dewar@adacore.com>
24532
24533 * checks.adb (Check_Needed): New procedure, deals with removing checks
24534 based on analysis of short-circuited forms. Also generates warnings for
24535 improper use of non-short-circuited forms.
24536 Code clean ups.
24537
245382005-09-01 Robert Dewar <dewar@adacore.com>
24539
24540 * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
24541 with 'Valid tests.
24542
245432005-09-01 Robert Dewar <dewar@adacore.com>
24544
24545 * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
24546 spec.
24547 Implement new insertion char < (conditional warning)
24548 * errutil.adb, erroutc.adb: Implement new insertion char <
24549 (conditional warning).
24550 * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
24551 (Error_Msg_Warn): New variable for < insertion char.
24552 * prj-nmsc.adb: Implement new errout insertion char < (conditional
24553 warning).
24554 (Check_For_Source): Change value of Source_Id only after the current
24555 source has been dealt with.
24556
245572005-09-01 Robert Dewar <dewar@adacore.com>
24558 Doug Rupp <rupp@adacore.com>
24559
24560 * exp_attr.adb: Handle vax fpt for 'Valid attribute
24561 * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
24562 * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
24563 (Valid_D, Valid_F, Valid_G): New functions
24564
245652005-09-01 Ed Schonberg <schonberg@adacore.com>
24566 Hristian Kirtchev <kirtchev@adacore.com>
24567 Javier Miranda <miranda@adacore.com>
24568
24569 * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
24570 from object notation, the original node is unanalyzed and carries no
24571 semantic information, so that accessiblity checks must be performed on
24572 the type of the actual itself.
24573 (Expand_N_Subprogram_Declaration): Change last actual parameter for
24574 compatibility with Build_Protected_Sub_Specification.
24575 (Check_Overriding_Inherited_Interfaces): Add suport to handle
24576 overloaded primitives.
24577 (Register_Interface_DT_Entry): Use the new name of the formal
24578 the the calls to Expand_Interface_Thunk
24579
24580 * exp_dbug.ads: Augment comments on encoding of protected types to
24581 include the generation of dispatching subprograms when the type
24582 implements at least one interface.
24583
24584 * lib.ads: Extend information in Load_Stack to include whether a given
24585 load comes from a Limited_With_Clause.
24586
24587 * lib-load.adb (From_Limited_With_Chain): New predicate to determine
24588 whether a potential circularity is harmless, because it includes units
24589 loaded through a limited_with clause. Extends previous treatment which
24590 did not handle properly arbitrary combinations of limited and
24591 non-limited clauses.
24592
245932005-09-01 Nicolas Setton <setton@adacore.com>
24594
24595 * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
24596 to be encoded as typ___XBLU_lowerbound__upperbound instead of
24597 typ___XB_lowerbound__upperbound.
24598
245992005-09-01 Thomas Quinot <quinot@adacore.com>
24600
24601 * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
24602 dummy access formal for RACW/RAS TypeCode TSS.
24603 (Build_TypeCode_Call): Do not generate dummy null access actual for
24604 calls to the TypeCode TSS.
24605
246062005-09-01 Ed Schonberg <schonberg@adacore.com>
24607
24608 * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
24609 fully qualified name, to distinguish instances with the same local name.
24610
24611 * g-souinf.ads (Enclosing_Entity): Document that entity name is now
24612 fully qualified.
24613
246142005-09-01 Robert Dewar <dewar@adacore.com>
24615
24616 * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
24617 packed arrays.
24618
246192005-09-01 Jerome Lambourg <lambourg@adacore.com>
24620
24621 * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
24622 (Free): New deallocation procedure for filter elements
24623 (Close): Deallocate any existing filter for the concerned connection
24624
246252005-09-01 Laurent Pautet <pautet@adacore.com>
24626
24627 * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
24628 position set is provided, we compute one in order to reduce the maximum
24629 length of the keys. This computation first selects a character
24630 position between 1 and the minimum length of the keys in order to
24631 avoid reducing one of the keys to an empty string.
24632 (Initialize, Compute): When the ratio V to K is too low, the algorithm
24633 does not converge. The initialization procedure now comes with a
24634 maximum number of iterations such that when exceeded, an exception is
24635 raised in Compute. The user can initialize this ratio to another value
24636 and try again
24637 Reformating and updated headers.
24638
246392005-09-01 Javier Miranda <miranda@adacore.com>
24640
24641 * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
24642 that given an entity T creates and returns an Itype that duplicates the
24643 contents of T. The returned Itype has the null-exclusion
24644 attribute set to True, and its Etype attribute references T
24645 to keep the association between the two entities.
24646 Update copyright notice
24647
24648 * sem_aggr.adb (Check_Can_Never_Be_Null,
24649 Aggregate_Constraint_Checks, Resolve_Aggregate,
24650 Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
24651
24652 * sem_ch5.adb (Analyze_Assignment): Code cleanup.
24653
246542005-09-01 Gary Dismukes <dismukes@adacore.com>
24655 Robert Dewar <dewar@adacore.com>
24656 Hristian Kirtchev <kirtchev@adacore.com>
24657
24658 * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
24659 Result_Definition.
24660
24661 * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
24662 function specs.
24663 Call Set_Result_Definition instead of Set_Subtype_Mark.
24664 (P_Subprogram_Specification): Add parsing of anonymous access result
24665 plus null exclusions. Call Set_Result_Definition instead of
24666 Set_Subtype_Mark.
24667
24668 * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24669 (P_Access_Type_Definition): Add parsing for an anonymous access result
24670 subtype, plus parsing for null exclusions. Call Set_Result_Definition
24671 instead of Set_Subtype_Mark.
24672
24673 * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24674 (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
24675 (Result_Definition): New function for N_Function_Specifications.
24676 (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
24677 N_Function_Specification.
24678 (Set_Null_Exclusion_Present): Allow this flag for
24679 N_Function_Specification.
24680 (Set_Result_Definition): New procedure for N_Function_Specifications.
24681 (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
24682 and N_Function_Specification.
24683
24684 * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
24685 Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
24686 Add support for LIMITED NEW for Ada 2005 AI-419
24687 Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
24688 syntax for anonymous access results.
24689 Replace Subtype_Mark field by Result_Definition in
24690 N_Function_Specification and N_Access_Definition specs.
24691 Add Null_Exclusion_Present to spec of N_Function_Specification.
24692 (Result_Definition): New function for N_Function_Specification and
24693 N_Access_Function_Definition.
24694 (Set_Result_Definition): New procedure for N_Function_Specification and
24695 N_Access_Function_Definition.
24696
24697 * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
24698 Result_Definition for cases of N_Access_Function_Definition and
24699 N_Function_Specification.
24700 Print "not null" if Null_Exclusion_Present on N_Function_Specification.
24701
247022005-09-01 Vincent Celier <celier@adacore.com>
24703
24704 * lib-writ.adb: Update Copyright notice
24705 (Write_With_Lines): On platforms where file names are case-insensitive,
24706 record the file names in lower case.
24707 (Write_ALI): For D lines, on platforms where file names are
24708 case-insensitive, record the file names in lower case.
24709
247102005-09-01 Ed Schonberg <schonberg@adacore.com>
24711 Emmanuel Briot <briot@adacore.com>
24712
24713 * lib-xref.adb (Output_Overridden_Op): Display information on
24714 overridden operation.
24715
24716 * lib-xref.ads: Add documentation on overridden operations.
24717
24718 * ali.ads (Xref_Entity_Record): Add support for storing the overriding
24719 information.
24720
24721 * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
24722 overriding entity information.
24723
247242005-09-01 Vincent Celier <celier@adacore.com>
24725
24726 * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
24727 including those that are inherited.
24728
247292005-09-01 Robert Dewar <dewar@adacore.com>
24730
24731 * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
24732
24733 * par-prag.adb: Implement new pragma Debug_Policy
24734
24735 * sem_prag.adb Implement new pragma Debug_Policy
24736 (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
24737 Component_Size attribute specification. Give warning for ignored pragma
24738 Pack.
24739
24740 * snames.h, snames.ads, snames.adb: Introduce entries in
24741 Preset_Names for Name_Disp_Asynchronous_Select,
24742 Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
24743 Name_Disp_Timed_Select.
24744 New pragma Debug_Policy
24745
24746 * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
24747 explicitly.
24748 Switch -gnata also sets Debug_Pragmas_Enabled
24749
24750 * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
24751 handle an explicit -gnata when compiling predefined files.
24752
247532005-09-01 Vincent Celier <celier@adacore.com>
24754
24755 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
24756 directories of projects that have no Ada sources.
24757
247582005-09-01 Robert Dewar <dewar@adacore.com>
24759
24760 * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
24761 (makes a difference for wide characters)
24762
da8f5fd9 24763 * widechar.adb, widechar.ads:
98b40956
AC
24764 Add Wide_Char_Byte_Count feature to count chars vs bytes
24765
247662005-09-01 Thomas Quinot <quinot@adacore.com>
24767 Ed Schonberg <schonberg@adacore.com>
24768 Robert Dewar <dewar@adacore.com>
24769
24770 * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
24771 'Address attribute reference with an overloaded prefix, use the
24772 location of the prefix (not the location of the attribute reference) as
24773 the error location.
24774 (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
24775 a function renaming thereof, is a valid prefix for 'Size (where it is
24776 intepreted as a function call).
24777 (Statically_Denotes_Entity): New predicate to determine whether the
24778 prefix of an array attribute can be considered static.
24779
24780 PR ada/9087
24781 (Eval_Attr): Fix failure to evaluate Component_Size for
24782 unconstrained arrays (resulted in wrong value in packed case, since
24783 back end cannot handle this case)
24784
247852005-09-01 Robert Dewar <dewar@adacore.com>
24786
24787 * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
24788 error msgs for most common cases.
24789 Use new errout insertion char < (conditional warning)
24790
247912005-09-01 Javier Miranda <miranda@adacore.com>
24792 Ed Schonberg <schonberg@adacore.com>
24793
24794 * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
24795 become local to the whole package.
24796 (Install_Limited_Withed_Unit): Instead of unchaining real entities if
24797 the package was already analyzed the new algorithm "replaces" the
24798 real entities by the shadow ones. This is required to ensure that
24799 the order of these entities in the homonym chains does not change;
24800 otherwise we can have undefined references at linking time because
24801 in case of conflicts the external name of the entities will have
24802 a suffix that depends on the order of the entities in the chain.
24803 (Remove_Limited_With_Clause): Complementary code that completes the
24804 new algorithm and replaces the shadow entities by the real ones.
24805 (Install_Limited_Withed_Unit): When unchaining entities before the
24806 installation of the shadow entities, only regular entities of the
24807 public part must be taken into account. This is required to
24808 keep this routine in synch with the work done by Remove_Limited_
24809 With_Clause
24810 (Install_Limited_With_Clause): Introduce implicit limited_with_clause
24811 even if unit is analyzed, because the analysis of the unit is
24812 idempotent in any case, and the limited view of the unit may have to
24813 be installed for proper visibility.
24814 (Expand_Limited_With_Clause): Even if the unit in the implicit
24815 with_clause has been analyzed already, a limited view of the package
24816 must be built for the current context, if it does not exist yet.
24817
248182005-09-01 Ed Schonberg <schonberg@adacore.com>
24819 Javier Miranda <miranda@adacore.com>
24820 Gary Dismukes <dismukes@adacore.com>
24821
24822 * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
24823 defining entity for the instance body, make a new defining identifier
24824 rather than copying the entity of the spec, to prevent accidental
24825 sharing of the entity list.
24826 (Check_Private_View): When exchanging views of private types, build the
24827 list of exchanged views as a stack, to ensure that on exit the exchanges
24828 are undone in the proper order.
24829 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
24830 Restore the compilation environment in case of instantiation_error.
24831 (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
24832 for an anonymous access result.
24833 (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
24834 (Formal_Entity): Handle properly the case of a formal package that
24835 denotes a generic package renaming.
24836
248372005-09-01 Thomas Quinot <quinot@adacore.com>
24838
24839 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
24840 clause if the array aggregate is surrounded by parentheses.
24841
248422005-09-01 Cyrille Comar <comar@adacore.com>
24843 Gary Dismukes <dismukes@adacore.com>
24844 Ed Schonberg <schonberg@adacore.com>
24845 Javier Miranda <miranda@adacore.com>
24846
24847 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
24848 underlying type
24849 to check if a type is Constrained in cases related to code generation
24850 (rather than semantic checking) since otherwise we do not generate
24851 similar code for mutable private types depending if their
24852 discriminants are visible or not.
24853 (Check_Abstract_Overriding): Do not complain about failure to override
24854 the primitive operations used in dispatching selects since they will
24855 always be overriden at the freeze point of the type.
24856 (Access_Definition): Separate out handling for resetting the scope
24857 of an anonymous access function result type. Retrieve the scope
24858 of the associated function rather than using Current_Scope, which
24859 does not have a consistent value (depends on whether we're in the
24860 middle of analyzing formal parameters). Add ??? comment about
24861 finding a cleaner way to handle the special cases of scope setting.
24862 (Process_Incomplete_Dependents): A protected operation is never a
24863 dispatching operation (only its wrapper may be).
24864 (Build_Derived_Record_Type): In case of tagged private types that
24865 implement interfaces add derivation of predefined primitive
24866 operations.
24867 (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
24868 by two parameters that are used in case of derivation from abstract
24869 interface types: No_Predefined_Prims is used to avoid the derivation
24870 of predefined primitives from the interface, and Predefined
24871 Prims_Only is used to complete the derivation predefined primitives
24872 in case of private tagged types implementing interfaces.
24873 Fix typo in comments
24874 (Find_Interface_In_Descendant): Protect the frontend against
24875 wrong code with large circularity chains.
24876 (Is_Private_Overriding): Add support for entities overriding interface
24877 subprograms. The test failed because Entities associated with overriden
24878 interface subprograms are always marked as hidden (and used to build
24879 the secondary dispatch table); in this case the overriden entity is
24880 available through the field abstract_interface_alias (cf. override_
24881 dispatching_operation)
24882 (Access_Definition): Set the scope of the type to Current_Scope for the
24883 case of a function with an anonymous access result type.
24884 (Access_Subprogram_Declaration): Handle creation of the type entity for
24885 an access-to-function type with an anonymous access result.
24886 (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
24887 in handling for N_Access_Function_Definition.
24888 (Analyze_Subtype_Declaration): Modify the text of error message.
24889 (Derived_Type_Declaration): Modify the text of error message.
24890 (Process_Subtype): Modify the text of error message plus cleanup
24891 of one redundant error message.
24892 (Analyze_Component_Declaration): Code cleanup.
24893 (Analyze_Object_Declaration): Code cleanup.
24894 (Analyze_Subtype_Declaration): Propagate the null-exclusion
24895 attribute in case of access types. Code cleanup.
24896 (Array_Type_Declaration): Code cleanup.
24897 (Process_Discriminants): Create the new null-excluding itype
24898 if required. Code cleanup.
24899 (Process_Subtype): Create the new null-excluding itype if
24900 required. Code cleanup.
24901 (Build_Derived_Record_Type): Code cleanup to avoid calling
24902 twice the subprogram derive_subprograms in case of private
24903 types that implement interfaces. In this particular case the
24904 subprogram Complete_Subprograms_Derivation already does the
24905 job associated with the second call.
24906
6f7f72f9
EB
24907 * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
24908 conversion to the full view when generating an operation for a
24909 discriminant whose type may currently be private.
98b40956
AC
24910
249112005-09-01 Ed Schonberg <schonberg@adacore.com>
24912 Javier Miranda <miranda@adacore.com>
24913
24914 * sem_ch4.adb (Transform_Object_Operation): In a context off the form
24915 V (Obj.F), the rewriting does not involve the indexed component, but
24916 only the selected component itself.
24917 Do not apply the transformation if the analyzed node is an actual of a
24918 call to another subprogram.
24919 (Complete_Object_Operation): Retain the entity of the
24920 dispatching operation in the selector of the rewritten node. The
24921 entity will be used in the expansion of dispatching selects.
24922 (Analyze_One_Call): Improve location of the error message associated
24923 with interface.
24924 (Analyze_Selected_Component): No need to resolve prefix when it is a
24925 function call, resolution is done when parent node is resolved, as
24926 usual.
24927 (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
24928 when attempting to resolve a call transformed from its object notation.
24929 (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
24930 of the argument list for each interpretation of the operation.
24931 (Try_Object_Operation): The designated type of an access parameter may
24932 be an incomplete type obtained through a limited_with clause, in which
24933 case the primitive operations of the type are retrieved from its full
24934 view.
24935 (Analyze_Call): If this is an indirect call, and the return type of the
24936 access_to_subprogram is incomplete, use its full view if available.
24937
249382005-09-01 Javier Miranda <miranda@adacore.com>
24939 Gary Dismukes <dismukes@adacore.com>
24940
24941 * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
24942 access types the null-exclusion and access-to-constant attributes must
24943 also match.
24944 (Analyze_Return_Statement): When the result type is an anonymous access
24945 type, apply a conversion of the return expression to the access type
24946 to ensure that appropriate accessibility checks are performed.
24947 (Analyze_Return_Type): For the case of an anonymous access result type,
24948 generate the Itype and set Is_Local_Anonymous_Access on the type.
24949 Add ??? placeholder for check to disallow returning a limited object
24950 in Ada 2005 unless it's an aggregate or a result of a function call.
24951 Change calls from Subtype_Mark to Result_Definition.
24952 (Analyze_Subprogram_Body): Change formal Subtype_Mark to
24953 Result_Definition in call to Make_Function_Specification.
24954 (Build_Body_To_Inline): Change Set_Subtype_Mark to
24955 Set_Result_Definition.
24956 (Make_Inequality_Operator): Change formal Subtype_Mark to
24957 Result_Definition in call to Make_Function_Specification.
24958 (Process_Formals): Create the new null-excluding itype if required.
24959 (New_Overloaded_Entity): For an entity overriding an interface primitive
24960 check if the entity also covers other abstract subprograms in the same
24961 scope. This is required to handle the general case, that is, overriding
24962 other interface primitives and overriding abstract subprograms inherited
24963 from some abstract ancestor type.
24964 (New_Overloaded_Entity): For an overriding entity that comes from
24965 source, note the operation that it overrides.
24966 (Check_Conformance, Type_Conformant): Addition of one new formal
24967 to skip controlling formals in the analysis. This is used to
24968 handle overloading of abstract interfaces.
24969 (Base_Types_Match): Add missing case for types imported from
24970 limited-with clauses
24971 (New_Overloaded_Entity): Add barrier to protect the use of
24972 the "alias" attribute.
24973
249742005-09-01 Ed Schonberg <schonberg@adacore.com>
24975
24976 * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
24977 verify that the procedure and the entry are mode conformant.
24978 (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
24979 as a different operator, which is often a cut-and-paste error.
24980
249812005-09-01 Javier Miranda <miranda@adacore.com>
24982 Ed Schonberg <schonberg@adacore.com>
24983
24984 * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
24985 used in controlling parameters exclude null because it is necessary to
24986 read the tag to dispatch, and null has no tag.
24987 (Override_Dispatching_Operation): If the previous operation is inherited
24988 from an interface, it becomes hidden and does not participate in later
24989 name resolution.
24990
249912005-09-01 Javier Miranda <miranda@adacore.com>
24992 Ed Schonberg <schonberg@adacore.com>
24993 Gary Dismukes <dismukes@adacore.com>
24994
24995 * sem_res.adb (Resolve_Membership_Op): In case of the membership test
24996 "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
24997 the expander will generate the corresponding run-time check to evaluate
24998 the expression.
24999 (Resolve_Call): Check for legal type of procedure name or prefix that
25000 appears as a trigger in a triggering alternative.
25001 (Valid_Conversion): If expression is ambiguous and the context involves
25002 an extension of System, remove System.Address interpretations.
25003 (Resolve_Qualified_Expression): Reject the case of a specific-type
25004 qualification applied to a class-wide argument. Enhance comment
25005 to explain checking of Original_Node.
25006 (Resolve_Type_Conversion): The location of the error message was not
25007 general enough to handle the general case and hence it has been removed.
25008 In addition, this patch improves the text of the message.
25009 (Resolve_Type_Conversion): Add missing support for access to interface
25010 types.
25011 (Resolve_Type_Conversion): If the target is a class-wide interface type,
25012 do not expand if the expression is the actual in a call, because proper
25013 expansion will take place when the call itself is expanded.
25014 (Resolve_Allocator): If the context is an unchecked conversion, the
25015 allocator inherits its storage pool, if any, from the target type of
25016 the conversion.
25017
250182005-09-01 Ed Schonberg <schonberg@adacore.com>
25019 Javier Miranda <miranda@adacore.com>
25020
25021 * sem_type.adb (Add_One_Interp): If a candidate operation is an
25022 inherited interface operation that has an implementation, use the
25023 implementation to avoid spurious ambiguities.
25024 (Interface_Present_In_Ancestor): In case of concurrent types we can't
25025 use the Corresponding_Record_Typ attribute to look for the interface
25026 because it is set by the expander (and hence it is not always
25027 available). For this reason we traverse the list of interfaces
25028 (available in the parent of the concurrent type).
25029 (Interface_Present_In_Ancestor): Handle entities from the limited view
25030
250312005-09-01 Ed Schonberg <schonberg@adacore.com>
25032
25033 * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
25034 from the list of required components.
25035 (Is_Controlling_Limited_Procedure): Determine whether an entity is a
25036 primitive procedure of a limited interface with a controlling first
25037 parameter.
25038 (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
25039 of an entry.
25040 (Safe_To_Capture_Value): A value (such as non_null) is not safe to
25041 capture if it is generated in the second operand of a short-circuit
25042 operation.
25043 Do not capture values for variables with address clauses.
25044 (Is_Object_Reference): Treat a function call as an object reference only
25045 if its type is not Standard_Void_Type.
25046
250472005-09-01 Ed Schonberg <schonberg@adacore.com>
25048
25049 * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
25050 to a variable that is statically known to be constant.
25051
250522005-09-01 Geert Bosch <bosch@adacore.com>
25053 Robert Dewar <dewar@adacore.com>
25054
25055 * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
25056 (VAXGF_Safe_First): Idem.
25057
250582005-09-01 Robert Dewar <dewar@adacore.com>
25059 Arnaud Charlet <charlet@adacore.com>
25060
25061 * g-dirope.ads: Minor reformatting
25062 Document that bounds of result of Base_Name match the input index
25063 positions.
25064 Add documentation on environment variable syntax for Expand_Path
25065
25066 * gnat_ugn.texi: Update documentation to include mention of -m switches
25067 Document new treatment of wide characters in max line length
25068 style check.
25069 Remove -gnatL/-gnatZ switches, no longer used.
25070 Add note on pragmas Assertion_Policy and Debug_Policy in discussion
25071 of -gnata switch.
25072
25073 * gnat_rm.texi: Add doc for two argument form of pragma
25074 Float_Representation.
25075 Add documentation for pragma No_Strict_Aliasing
25076 Add note that explicit component clause overrides pragma Pack.
25077 Add documentation of pragma Debug_Policy
25078
250792005-09-01 Matthew Heaney <heaney@adacore.com>
25080
da8f5fd9
AJ
25081 * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
25082 a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
25083 a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
98b40956
AC
25084 a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
25085 draft (Draft 13, August 2005) of Ada Amendment 1.
25086
250872005-09-01 Arnaud Charlet <charlet@adacore.com>
25088
25089 * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
25090 Note that the platform-specific version of g-soccon.ads for VMS is now
25091 named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
25092 really is a package spec).
25093 Replace s-taspri-linux.ads by s-taspri-posix.ads
25094 Remove references to s-mastop-x86.adb
25095
25096 * system-vxworks-xscale.ads: Removed, no longer used.
25097 * s-vxwork-xscale.ads: Removed, no longer used.
25098
250992005-09-01 Robert Dewar <dewar@adacore.com>
25100
25101 * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
25102 g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
25103 g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
25104 exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
25105 g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
25106 g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
25107 g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
25108 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
25109 g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
25110 g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
25111 sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
25112 a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
25113 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
25114 a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
25115 a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
25116 a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
25117 g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
25118 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
25119 g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
25120 i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
25121 a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
25122
332a1c2e
AC
251232005-08-29 Arnaud Charlet <charlet@adacore.com>
25124
25125 PR ada/23187
25126 * adaint.c
da8f5fd9 25127 (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
332a1c2e
AC
25128
251292005-08-29 Arnaud Charlet <charlet@adacore.com>
25130 Doug Rupp <rupp@adacore.com>
25131
25132 * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
25133 when needed.
25134 (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
25135 this code in the GNAT run-time.
25136
25137 * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
25138
25139 PR ada/21053
25140 * init.c (__gnat_error_handler [many]): Mark "msg" as const
25141 (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
25142
25143 (__gnat_inside_elab_final_code): Moved here from
25144 Standard_Library and only defined for the compiler.
25145 __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
25146 (__gnat_inum_to_ivec): Do not define this function on VxWorks when
25147 using RTPs because directly vectored Interrupt routines are not
25148 supported on this configuration.
25149 (getpid): Do not redefine this function on VxWorks when using RTPs
25150 because this primitive is well supported by the RTP libraries.
25151 (copy_msg): Correct the code that checks for buffer overflow.
25152 Discovered during code reading.
25153
251542005-08-29 Olivier Hainque <hainque@adacore.com>
25155
25156 * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
25157 a library level mutable variable with an initializer, tell
25158 build_allocator to ignore the initializer's size. It may not be large
25159 enough for all the values that might be assigned to the variable later
25160 on.
25161
251622005-08-29 Arnaud Charlet <charlet@adacore.com>
25163 Eric Botcazou <ebotcazou@adacore.com>
25164
25165 * trans.c: Protect < in error msg with quote
25166 Replace GCC_ZCX by Back_End_Exceptions.
25167 (addressable_p) <COMPONENT_REF>: Also return 1 if the field
25168 has been sufficiently aligned in the record.
25169
35fd1d77
JW
251702005-08-15 James E. Wilson <wilson@specifix.com>
25171
25172 * system-linux-alpha.ads: Change ia64 to alpha.
25173
b15341b8
KH
251742005-08-01 Kazu Hirata <kazu@codesourcery.com>
25175
25176 * decl.c, utils.c: Fix comment typos.
25177
9e4eb559
KH
251782005-07-29 Kazu Hirata <kazu@codesourcery.com>
25179
25180 * decl.c, init.c, initialize.c: Fix comment typos.
25181
4038c495
GB
251822005-07-20 Giovanni Bajo <giovannibajo@libero.it>
25183
25184 Make CONSTRUCTOR use VEC to store initializers.
25185 * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
25186 CONSTRUCTOR_ELTS.
25187 * trans.c (extract_values): Likewise.
25188 * utils.c (convert, remove_conversions): Likewise.
25189 * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
25190 gnat_build_constructor): Likewise.
25191
f685a2e6
AP
251922005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
25193
25194 * decl.c (components_to_record): Use DECL_FCONTEXT instead of
25195 DECL_SECTION_NAME.
25196 (compare_field_bitpos): Likewise.
25197
7c6ef73e
AP
251982005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
25199
25200 * utils.c (create_var_decl): Only set DECL_COMMON on
25201 VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
25202 VAR_OR_FUNCTION_DECL_P.
25203
820cc88f 252042005-07-08 Daniel Berlin <dberlin@dberlin.org>
da8f5fd9 25205
820cc88f
DB
25206 * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
25207 removed.
25208
1a9cb483
AC
252092005-07-07 Pascal Obry <obry@adacore.com>
25210
25211 * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
25212 returned type on Windows.
25213
25214 * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
25215 routine.
25216
25217 * g-socket.adb (Inet_Addr): Check for empty Image and raises an
25218 exception in this case.
25219 Simplify the code as "Image (Image'Range)" = "Image".
25220
252212005-07-07 Vincent Celier <celier@adacore.com>
25222
25223 * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
25224 the destructor/constructor attributes for <lib>final/<lib>init.
25225
25226 * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
25227
252282005-07-07 Eric Botcazou <ebotcazou@adacore.com>
25229
25230 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
25231 type if the parameter is not passed by copy but reference by default.
25232
252332005-07-07 Javier Miranda <miranda@adacore.com>
25234
25235 * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
25236 Reimplementation of the support for abstract interface types in order
25237 to leave the code more clear and easy to maintain.
25238
25239 * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
25240 abstract interface types in order to leave the code clearer and easier
25241 to maintain.
25242
25243 * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
25244 is now implemented by the new subprogram Fill_Secondary_DT_Entry.
25245 (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
25246 appropriate entry of the secondary dispatch table.
25247 (Make_DT): Add code to inherit the secondary dispatch tables of
25248 the ancestors.
25249
25250 * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
25251 implementing both functionalities by means of a common routine, each
25252 routine has its own code.
25253
252542005-07-07 Javier Miranda <miranda@adacore.com>
25255
25256 * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
25257
25258 * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
25259 types:
25260 --
25261 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
25262 --
25263
25264 * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
25265 use of tag incomplete types.
25266
25267 * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
25268 give support to tagged incomplete types.
25269
25270 * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
25271 expression is a discriminant reference and its type is private, as can
25272 happen within a stream operation for a mutable record, use the full
25273 view of the type to resolve the case alternatives.
25274 (Analyze_Assignment): Check wrong dereference of incomplete types.
25275
25276 * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
25277 types.
25278
25279 * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
25280 incomplete types.
25281
25282 * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
25283 N_Incomplete_Type_Declaration nodes.
25284
25285 * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
25286 Tag_Present to give support to tagged incomplete types:
25287 --
25288 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
25289 --
25290
252912005-07-07 Olivier Hainque <hainque@adacore.com>
25292
25293 PR ada/22301
1a9cb483
AC
25294 * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
25295 definitions for the Unwind wrappers in the compiler case.
25296
252972005-07-07 Ed Schonberg <schonberg@adacore.com>
25298 Javier Miranda <miranda@adacore.com>
25299
25300 * par-load.adb (Load): If a child unit is loaded through a limited_with
25301 clause, each parent must be loaded as a limited unit as well.
25302
25303 * sem_ch10.adb (Previous_Withed_Unit): Better name for
25304 Check_Withed_Unit. Return true if there is a previous with_clause for
25305 this unit, whether limited or not.
25306 (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
25307 the current unit.
25308 (Is_Visible_Through_Renamings): New local subprogram of install_limited
25309 _withed_unit that checks if some package installed through normal with
25310 clauses has a renaming declaration of package whose limited-view is
25311 ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
25312 of the current Draft document for Ada 2005.
25313 (Analyze_Context): Complete the list of compilation units that
25314 are allowed to contain limited-with clauses. It also contains
25315 checks that were previously done by Install_Limited_Context_Clauses.
25316 This makes the code more clear and easy to maintain.
25317 (Expand_Limited_With_Clause) It is now a local subprogram of
25318 Install_Limited_Context_Clauses, and contains the code that adds
25319 the implicit limited-with clauses for parents of child units.
25320 This functionality was prevously done by Analyze_Context.
25321
25322 * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
25323 incomplete type.
25324
25325 * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
25326 been erroneously named in a limited-with clause of its own context.
25327 In this case the error has been previously notified by Analyze_Context.
25328
253292005-07-07 Ed Schonberg <schonberg@adacore.com>
25330
25331 * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
25332 generic package that contains local declarations with the same name.
25333 (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
25334
253352005-07-07 Bernard Banner <banner@adacore.com>
25336
25337 * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
25338 ia64 platform only on platforms that you the GCC unwind library
25339 rather than the system unwind library.
25340
253412005-07-07 Thomas Quinot <quinot@adacore.com>
25342
25343 * expect.c: Minor reformatting
25344
253452005-07-07 Sergey Rybin <rybin@adacore.com>
25346
25347 * vms_data.ads: Add VMS qualifiers for new gnatpp switch
25348 --no-separate-is
25349
25350 * gnat_ugn.texi: Add description for new gnatpp option
25351 (--no-separate-is)
25352
7d300a99
AC
253532005-07-04 Thomas Quinot <quinot@adacore.com>
25354
25355 * g-expect-vms.adb, g-expect.ads, g-expect.adb
25356 (Get_Command_Output): New subprogram to launch a process and get its
25357 standard output as a string.
25358
253592005-07-04 Eric Botcazou <ebotcazou@adacore.com>
9bae2797 25360 Olivier Hainque <hainque@adacore.com>
7d300a99
AC
25361
25362 * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
25363 fetch a code-range descriptor associated with the machine state. On
25364 failure set the machine state's PC to 0; on success, pass the
25365 descriptor to exc_virtual_unwind.
25366
25367 * init.c (Tru64 section): New function __gnat_set_code_loc.
25368
253692005-07-04 Vincent Celier <celier@adacore.com>
25370
da8f5fd9
AJ
25371 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25372 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
7d300a99
AC
25373 mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
25374 Remove all auto-initialization code, as this is now done through the
25375 constructor mechanism.
25376
25377 * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
25378 __gnat_sals_init_using_constructors): New functions.
25379
25380 * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
25381 Linker_Constructor and Linker_Destructor when switch -a is used.
25382
25383 * bindusg.adb: Add line for new switch -a
25384
25385 * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
25386 (Gnatbind): When switch -a is used, check if it is allowed
25387
25388 * switch-b.adb (Scan_Binder_Switches): Process new switch -a
25389
253902005-07-04 Joel Brobecker <brobecker@adacore.com>
25391
25392 * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
25393 This prevents us from hitting a limitation during the debug info
25394 generation when using stabs.
25395 (Prims_Ptr): Likewise.
25396
253972005-07-04 Gary Dismukes <dismukes@adacore.com>
25398 Ed Schonberg <schonberg@adacore.com>
25399 Javier Miranda <miranda@adacore.com>
25400
25401 * checks.adb (Null_Exclusion_Static_Checks): In the case of
25402 N_Object_Declaration, only perform the checks if the Object_Definition
25403 is not an Access_Definition.
25404
6f7f72f9
EB
25405 * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
25406 where the parent of an the access definition is an N_Object_Declaration
25407 when determining the Associated_Node_For_Itype and scope of an
25408 anonymous access-to-subprogram type.
7d300a99
AC
25409
25410 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
25411 Corresponding_Spec on the body created for a null procedure. Add ???
25412 comment. Remove New_Copy_Tree call on body argument to
25413 Set_Body_To_Inline.
25414
25415 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
25416 discriminants, use the type of the actual as well, because the
25417 discriminants may be read by the called subprogram.
25418
25419 * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
25420 access type we do not need to handle non-limited views.
25421 (Build_Derived_Record_Type): Additional check to check that in case of
25422 private types, interfaces are only allowed in private extensions.
25423
254242005-07-04 Eric Botcazou <ebotcazou@adacore.com>
25425
25426 * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
25427 <Pragma_Linker_Destructor>: Likewise.
25428
25429 * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
25430 Pragma_Linker_Destructor.
25431
25432 * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
25433 ATTR_LINK_DESTRUCTOR.
25434 (static_ctors, static_dtors): New variables.
25435
25436 * misc.c (gnat_expand_body): Output current function as constructor
25437 and destructor if requested.
25438
25439 * par-prag.adb: Add processing for pragma Linker_Constructor and
25440 Linker_Destructor.
25441
25442 * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
25443 extracted from Check_Interrupt_Or_Attach_Handler.
25444 (Check_Interrupt_Or_Attach_Handler): Invoke it.
25445 Implement pragma Linker_Constructor and Linker_Destructor with the
25446 help of Find_Unique_Parameterless_Procedure.
25447 Replace Name_Alias with Name_Target for pragma Linker_Alias.
25448
da8f5fd9 25449 * snames.h, snames.ads, snames.adb:
7d300a99
AC
25450 Add Name_Linker_Constructor and Name_Linker_Destructor.
25451 Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
25452 * snames.adb: Remove Name_Alias.
25453
25454 * trans.c: Include cgraph.h.
25455 (build_global_cdtor): New function.
25456 (Compilation_Unit_to_gnu): Build global constructor and destructor if
25457 needed.
25458 (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
25459 of objects too.
25460 (addressable_p) <COMPONENT_REF>: Unconditionally test
25461 DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
25462
25463 * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
25464 variable if it is external.
25465
25466 (static_ctors, static_dtors): New global variables.
25467 (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
25468 <ATTR_LINK_DESTRUCTOR>: Likewise.
25469 (end_subprog_body): Chain function as constructor and destructor
25470 if requested.
25471
25472 * exp_util.adb (Force_Evaluation): Unconditionally invoke
25473 Remove_Side_Effects with Variable_Ref set to true.
25474 (Remove_Side_Effects): Handle scalar types first. Use a renaming
25475 for non-scalar types even if Variable_Ref is true and for class-wide
25476 expressions.
25477
254782005-07-04 Ed Schonberg <schonberg@adacore.com>
25479
25480 * exp_attr.adb (Mod): Evaluate condition expression with checks off,
25481 to prevent spurious warnings.
25482
254832005-07-04 Thomas Quinot <quinot@adacore.com>
25484
25485 * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
25486 Itypes. Itypes are really unexpected there.
25487 (Build_TypeCode_Function): Generalise special processing for Itypes to
25488 handle the case of numeric implicit base types as well as enumerated
25489 ones.
25490
254912005-07-04 Ed Schonberg <schonberg@adacore.com>
25492
25493 * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
25494 controlled, indicate the expected type of the dereference that is
25495 created for the call to Deep_Finalize, to prevent spurious errors when
25496 the designated type is private and completed with a derivation from
25497 another private type.
25498
254992005-07-04 Vincent Celier <celier@adacore.com>
25500
25501 * make.adb (Change_To_Object_Directory): When unable to change the
25502 current dir to the object directory, output the full path of the
25503 directory.
25504
255052005-07-04 Matthew Gingell <gingell@adacore.com>
25506
25507 * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
25508
25509 * indepsw-linux.adb: Replace by...
25510
25511 * indepsw-gnu.adb: ...this new file
25512
255132005-07-04 Vincent Celier <celier@adacore.com>
25514
25515 * mlib-prj.adb (Auto_Initialize): New constant String
25516 (SALs_Use_Constructors): New Boolean function
25517 (Build_Library): Call gnatbind with Auto_Initialize switch when
25518 SALs_Use_Constructors returns True.
25519
25520 * mlib-tgt.ads: Minor reformatting
25521
25522 * mlib-utl.ads: Minor reformatting
25523
25524 * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
25525
255262005-07-04 Ed Schonberg <schonberg@adacore.com>
25527
25528 * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
25529 single protected declarations can have an interface list.
25530 (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
25531 with seriously malformed entry declarations, and lead to compilation
25532 abandoned messages.
25533
255342005-07-04 Javier Miranda <miranda@adacore.com>
25535
25536 * par-load.adb: Load the context items in two rounds.
25537
255382005-07-04 Robert Dewar <dewar@adacore.com>
25539
25540 * scng.adb: Do not consider Mod used as an attribute to be a keyword
25541
255422005-07-04 Ed Schonberg <schonberg@adacore.com>
25543 Javier Miranda <miranda@adacore.com>
25544
25545 * sem_ch10.adb (Build_Limited_Views): A type declared with a private
25546 type extension needs a limited view.
25547 Remove previous restriction on private types available through the
25548 limited-view (only tagged private types were previously allowed).
25549 (Install_Withed_Unit): In the code that implements the
25550 legality rule given in AI-377, exclude a child unit with the name
25551 Standard, because it is a homonym of the Standard environment package.
25552
255532005-07-04 Thomas Quinot <quinot@adacore.com>
25554
25555 * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
25556 overloaded function call, carry interpretations from the original tree
25557 to the copy.
25558
255592005-07-04 Ed Schonberg <schonberg@adacore.com>
25560
25561 * sem_ch6.adb (Conforming_Types): If the types are anonymous access
25562 types check whether some designated type is a limited view, and use
25563 the non-limited view if available.
25564
255652005-07-04 Gary Dismukes <dismukes@adacore.com>
25566
25567 * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
25568 constraint of full view of a private view T1 if present, when T2 is a
25569 discriminated full view.
25570
255712005-07-04 Thomas Quinot <quinot@adacore.com>
25572
25573 * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
25574 actual that is a view conversion of a bit packed array reference.
25575
255762005-07-04 Ed Schonberg <schonberg@adacore.com>
25577
25578 * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
25579 present before checking whether an interface type covers a synchronized
25580 type.
25581
255822005-07-04 Ed Schonberg <schonberg@adacore.com>
25583
25584 * sem_util.adb (Is_Object_Reference): An indexed or selected component
25585 whose prefix is an implicit dereference is an object reference. Removes
25586 spurious errors when compiling with -gnatc.
25587
255882005-07-04 Robert Dewar <dewar@adacore.com>
25589
25590 PR ada/22039
7d300a99
AC
25591 * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
25592
255932005-07-04 Matthew Gingell <gingell@adacore.com>
25594
25595 * tracebak.c: Enable tracebacks on ia64 platforms
25596
255972005-07-04 Vincent Celier <celier@adacore.com>
25598
25599 * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
25600 the GNAT BIND command, as gnatbind accepts multiples ALI files with
25601 the -L or -n switches.
25602
256032005-07-04 Vincent Celier <celier@adacore.com>
25604
25605 * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
25606 correctly computed and the main project data is not modified while
25607 doing so.
25608 (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
25609 (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
25610 c++linker as this does not work on some platforms.
25611
256122005-07-04 Matthew Heaney <heaney@adacore.com>
25613
25614 * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
25615 was changed.
25616 * a-coinve.adb: Perform constraint checks explicitly.
25617
256182005-07-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25619 Thomas Quinot <quinot@adacore.com>
25620
25621 * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
25622 new target gen-soccon.
25623
256242005-07-04 Robert Dewar <dewar@adacore.com>
25625
25626 * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
25627
256282005-07-04 Thomas Quinot <quinot@adacore.com>
25629
25630 * g-socket.ads (Check_Selector): Minor rewording of comment.
25631
256322005-07-04 Vincent Celier <celier@adacore.com>
25633
25634 * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
25635
256362005-07-04 Thomas Quinot <quinot@adacore.com>
25637
25638 * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
25639
256402005-07-04 Sergey Rybin <rybin@adacore.com>
25641
6f7f72f9 25642 * gnat_ugn.texi: Add description of --eol gnatpp option
7d300a99
AC
25643
256442005-07-04 Eric Botcazou <ebotcazou@adacore.com>
25645 Thomas Quinot <quinot@adacore.com>
25646
6f7f72f9 25647 * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
7d300a99
AC
25648 if the user wants all calls of a subprogram to be flagged,
25649 independently of whether they are made from within the same unit or
25650 another unit.
6f7f72f9
EB
25651 Mention restriction for pragma Linker_Alias on some platforms.
25652 Document pragma Linker_Constructor and Linker_Destructor.
25653 Rewrite documentation of Weak_External, Linker_Section and
25654 Linker_Alias pragmas.
7d300a99 25655
fc64d83c
AC
256562005-07-04 Arnaud Charlet <charlet@adacore.com>
25657
25658 * s-stausa.ads, s-stausa.adb: New files.
25659
cb5fee25
KC
256602005-06-30 Kelley Cook
25661
25662 * all files: Update FSF address in copyright headers.
25663 * gen-soccon.co (main): Output new FSF address in generated files.
25664
617a1b71
PB
256652005-06-28 Paul Brook <paul@codesourcery.com>
25666
25667 * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
25668
0adcdb66
AC
256692005-06-14 Olivier Hainque <hainque@adacore.com>
25670 Eric Botcazou <ebotcazou@adacore.com>
25671
25672 * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
25673 exc_unwind, now that we are generating proper .debug_frame output for
25674 that target.
25675
25676 * tracebak.c: Remove the mips-irix section, as we are now using the
25677 s-mastop based unwinder again.
25678 Under SPARC/Solaris, take into account the stack bias to compute the
25679 frame offset. The stack bias is 0 for the V8 ABI and 2047 for the V9
25680 ABI.
25681
256822005-06-14 Doug Rupp <rupp@adacore.com>
25683
25684 * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
25685
25686 * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
25687
256882005-06-14 Pascal Obry <obry@adacore.com>
25689
25690 * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
25691 a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
25692 a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
25693 package name).
25694
da8f5fd9
AJ
25695 * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
25696 a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
25697 a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
25698 a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
0adcdb66 25699 a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
da8f5fd9
AJ
25700 a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
25701 a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
25702 s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
25703 s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
25704 s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
25705 s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
25706 s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
25707 s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
25708 s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
25709 s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
25710 s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
25711 s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
25712 s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
25713 s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
25714 s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
25715 s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
25716 s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
25717 s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
25718 s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
25719 s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
25720 s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
25721 s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
25722 s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
25723 s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
0adcdb66
AC
25724 s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
25725 a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
25726 a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
25727 a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
25728 a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
25729 a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
25730 a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
25731 a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
25732 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
25733 a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
25734 a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
25735 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
25736 a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
25737 a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
25738 a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
25739 a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
25740 a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
25741 a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
25742 a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
25743 a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
25744 a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
25745 a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
25746 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
25747 a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
25748 a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
25749 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
25750 a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
25751 a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
25752 dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
25753 g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
25754 g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
25755 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
25756 g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
25757 g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
25758 gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
25759 g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
25760 i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
da8f5fd9
AJ
25761 s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
25762 s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
0adcdb66 25763 s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
da8f5fd9 25764 s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
0adcdb66
AC
25765 s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
25766 s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
25767 s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
25768 s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
25769 s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
25770 s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
25771 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
25772 s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
25773 s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
25774 s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
25775 s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
25776 s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
25777 s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
25778 s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
25779 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
25780 s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
25781 s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
25782 s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
25783 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
25784 s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
25785 s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
25786 s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
25787 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
25788 s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
25789 s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
25790 s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
25791 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
25792 s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
25793 s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
25794 s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
25795 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
25796 s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
25797 s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
25798 s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
25799 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
25800 s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
25801 s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
da8f5fd9
AJ
25802 s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
25803 s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
25804 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
25805 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
25806 s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
25807 s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
25808 s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
0adcdb66
AC
25809 s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
25810 s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
25811 s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
25812 s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
25813 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
25814 s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
da8f5fd9
AJ
25815 s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
25816 s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
0adcdb66
AC
25817 s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
25818 a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
25819 a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
25820 a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
25821 a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
25822 a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
25823 a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
25824 a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
25825 a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
25826 a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
25827 "GNU Ada" to GNAT, use proper casing for RUN-TIME.
25828
258292005-06-14 Jose Ruiz <ruiz@adacore.com>
25830 Arnaud Charlet <charlet@adacore.com>
25831
25832 * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
25833 longer protected objects. They have been replaced by lower-level
25834 suspension objects made up by a mutex and a condition variable (or
25835 their equivalent given a particular OS) plus some internal data to
25836 reflect the state of the suspension object.
25837 (Initialize, Finalize): Add this initialization procedure for
25838 Suspension_Object, which is a controlled type.
25839 (Finalize): Add the finalization procedure for Suspension_Object,
25840 which is a controlled type.
25841
25842 * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
25843 Ada.Synchronous_Task_Control because there is no longer a need for a
25844 VxWorks specific version of this package. Target dependencies
25845 has been moved to System.Task_Primitives.Operations.
25846
25847 * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
25848 longer needed.
25849 (InitializeCriticalSection, EnterCriticalSection,
25850 LeaveCriticalSection, DeleteCriticalSection): Replace the type
25851 pCriticalSection by an anonymous access type so that we avoid problems
25852 of accessibility to local objects.
25853
25854 * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
25855 s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
25856 s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
25857 s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
25858 s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
25859 set the environment task mask here.
25860 (Current_State): Add this function that returns the state of the
25861 suspension object.
25862 (Set_False): Add this procedure that sets the state of the suspension
25863 object to False.
25864 (Set_True): Add this procedure that sets the state of the suspension
25865 object to True, releasing the task that was suspended, if any.
25866 (Suspend_Until_True): Add this procedure that blocks the calling task
25867 until the state of the object is True. Program_Error is raised if
25868 another task is already waiting on that suspension object.
25869 (Initialize): Add this procedure for initializing the suspension
25870 object. It initializes the mutex and the condition variable which are
25871 used for synchronization and queuing, and it sets the internal state
25872 to False.
25873 (Finalize): Add this procedure for finalizing the suspension object,
25874 destroying the mutex and the condition variable.
25875
25876 * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
25877 s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
25878 s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
25879 s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
25880 which provides a low-level abstraction (using operating system
25881 primitives) for Ada.Synchronous_Task_Control.
25882 This object is made up by a mutex (for ensuring mutual exclusion), a
25883 condition variable (for queuing threads until the condition is
25884 signaled), a Boolean (State) indicating whether the object is open,
25885 and a Boolean (Waiting) reflecting whether there is a task already
25886 suspended on this object.
25887
25888 * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
25889 s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
25890 s-intman-vms.ads, s-intman-mingw.adb,
25891 (Initialize_Interrupts): Removed, no longer used.
25892
25893 * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
25894 (Setup_Interrupt_Mask): New procedure.
25895
25896 * s-intman-vxworks.ads, s-intman-vxworks.adb: Update comments.
25897
25898 * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
25899
25900 * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
25901 this is no longer done in the body of s-taprop
25902 (Server_Task): Explicitely test for Pending_Action in case
25903 System.Parameters.No_Abort is True.
25904
25905 * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
25906 is no longer done in the body of s-taprop
25907
259082005-06-14 Robert Dewar <dewar@adacore.com>
25909
25910 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
25911 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
25912 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
25913 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
25914 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
25915 system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
25916 system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
25917 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
25918 system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
25919 system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
25920 system-linux-hppa.ads, system-vms_64.ads,
25921 system-vxworks-alpha.ads: Minor comment update for
25922 AI-362 (unit is Pure).
25923
25924 * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
25925 Add pragma Pure_05 for AI-362
25926 Make remaining conversion functions obsolescent in Ada 95
25927
25928 * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
25929 Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
25930 Add entries for a-wichun and a-zchuni
25931 Add a-widcha a-zchara for AI-395
25932 Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
25933
25934 * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
25935 Add entries for a-wichun.o and a-zchuni.o
25936 Entries for a-widcha.o and a-zchara.o
25937 Add entry for a-chacon.o
25938
25939 * a-ztenau.adb: Add with of Ada.Characters.Conversions
25940
25941 * a-chacon.ads, a-chacon.adb: New files.
25942
25943 * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
25944 categorization violations.
25945
25946 * a-strmap.ads: Add pragma Pure_05 for AI-362
25947 * a-strmap.ads: Add note on implicit categorization for AI-362
25948
25949 * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
25950
25951 * par-prag.adb: Dummy entry for pragma Persistent_BSS
25952 Set Ada_Version_Explicit, for implementation of AI-362
25953 Add processing for pragma Pure_05 and Preelaborate_05
25954 Add entry for Assertion_Policy pragma
25955
25956 * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
25957 when needed for proper processing of categorization stuff
25958
da8f5fd9 25959 * sem_cat.adb:
0adcdb66
AC
25960 For several cases, make errors in preealborate units warnings,
25961 instead of errors, if GNAT_Mode is set. For AI-362.
25962
25963 * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
25964 preelaborate unit is now warning if in GNAT mode
25965
25966 * s-stoele.ads: Document AI-362 for pragma preelaborate
25967
259682005-06-14 Doug Rupp <rupp@adacore.com>
25969
25970 * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
25971 s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
25972 Default_Exception_Msg_Max_Length: new parameter.
25973
25974 * a-except.ads: (Exception_Msg_Max_Length): Set to
25975 System.Parameters.Default_Exception_Msg_Max_Length
25976 Add pragma Preelaborate_05 for AI-362
25977 Add warnings off to allow categorization violations for AI-362
25978
259792005-06-14 Vincent Celier <celier@adacore.com>
25980
25981 * gnatsym.adb: Adapt to modification of package Symbols: procedure
25982 Process is now in package Processing.
25983
25984 * symbols.ads, symbols.adb:
25985 (Processing): New package, containing procedure Process
25986
da8f5fd9 25987 * symbols-vms-alpha.adb:
0adcdb66
AC
25988 Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
25989
25990 * symbols-vms.adb, symbols-processing-vms-alpha.adb,
25991 symbols-processing-vms-ia64.adb: New files.
25992
259932005-06-14 Pascal Obry <obry@adacore.com>
25994
25995 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
25996 implementation. This new version generates the proper DllMain routine
25997 to initialize the SAL. The DllMain is generated in Ada and compiled
25998 before being added as option to the library build command.
25999
260002005-06-14 Doug Rupp <rupp@adacore.com>
26001 Pascal Obry <obry@adacore.com>
26002
26003 * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
26004 call to decc$translate_vms.
26005 (__gnat_locate_regular_file): Check if the path_val contains quotes. We
26006 need to remove those quotes before catenating the filename.
26007 (__gnat_locate_exec_on_path): improvements to the Win32 section:
26008 * avoid allocating the memory twice for better efficiency;
26009 * allocate 32K buffer for environment expansion as suggested by MSDN;
26010 * prepend ".;" to the path so that current directory is searched too.
26011
260122005-06-14 Robert Dewar <dewar@adacore.com>
26013
26014 * a-except.adb (Exception_Identity): return Null_Id for null occurrence
26015 instead of raising CE (AI-241)
26016 Add warnings off to allow categorization violations for AI-362
26017
260182005-06-14 Robert Dewar <dewar@adacore.com>
26019
26020 * ali-util.adb, gnatbind.adb: Remove references to
26021 Force_RM_Elaboration_Order.
26022
26023 * switch-b.adb: Remove recognition of -f switch
26024
260252005-06-14 Pascal Obry <obry@adacore.com>
26026
26027 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
26028 implementation which is slightly more efficient.
26029
260302005-06-14 Gary Dismukes <dismukes@adacore.com>
26031 Javier Miranda <miranda@adacore.com>
26032 Ed Schonberg <schonberg@adacore.com>
26033 Hristian Kirtchev <kirtchev@adacore.com>
26034
26035 * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
26036 allocator's designated type is a class-wide type, and compiling for
26037 Ada 2005, emit a run-time check that the accessibility level of the
26038 type given in the allocator's expression is not deeper than the level
26039 of the allocator's access type.
26040
26041 (Tagged_Membership): Modified to gives support to abstract interface
26042 types.
26043
26044 * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
26045 Access_Level.
26046 (Descendant_Tag): New predefined function
26047 (Is_Descendant_At_Same_Level): New predefined function
26048 (Get_Access_Level): New private function
26049 (Set_Access_Level): New private procedure
26050 (IW_Membership): New function. Given the tag of an object and the tag
26051 associated with an interface, evaluate if the object implements the
26052 interface.
26053 (Register_Interface_Tag): New procedure used to initialize the table of
26054 interfaces used by the IW_Membership function.
26055 (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
26056 of the dispatch table.
26057 (Inherit_TSD): Modified to copy the table of ancestor tags plus the
26058 table of interfaces of the parent.
26059 (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
26060 (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
26061 (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
26062 and raise Tag_Error if the passed tag equalis No_Tag, to conform with
26063 Ada 2005 semantics for the new predefined function.
26064
26065 * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
26066 call to Descendant_Tag rather than Internal_Tag.
26067 (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
26068 the accessibility level of the attribute's Item parameter is not deeper
26069 than the level of the attribute's prefix type. Tag_Error is raised if
26070 the check fails. The check is only emitted for Ada_05.
26071 (Find_Stream_Subprogram): If a TSS exists on the type itself for the
26072 requested stream attribute, use it.
26073 (Expand_N_Attribute_Reference): If the designated type is an interface
26074 then rewrite the referenced object as a conversion to force the
26075 displacement of the pointer to the secondary dispatch table.
26076 (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
26077 is a dereference of an object with a constrained partial view.
26078
26079 * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
26080 type is a class-wide type, emit a run-time check that the accessibility
26081 level of the returned object is not deeper than the level of the
26082 function's master (only when compiling for Ada 2005).
26083
26084 * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
26085 Action_Nb_Arg): Add entries for new Get_Access_Level and
26086 Set_Access_Level routines in these tables.
26087 (Make_DT): Generate a call to set the accessibility level of the
26088 tagged type in its TSD.
26089 (Make_DT): Code cleanup. The functionality of generating all the
26090 secondary dispatch tables has been moved to freeze_record_type.
26091 (Make_Abstract_Interface_DT): Minor code cleanup.
26092 (Set_All_DT_Position): Code cleanup. As part of the code cleanup
26093 this subprogram implements a new algorithm that provides the
26094 same functionality and it is more clear in case of primitives
26095 associated with abstract interfaces.
26096 (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
26097 clean up, the functionality of this subprogram is now provided
26098 by Set_All_DT_Position.
26099 (Write_DT): New subprogram: a debugging procedure designed to be called
26100 within gdb to display the dispatch tables associated with a tagged
26101 type.
26102 (Collect_All_Interfaces): New subprogram that collects the whole list
26103 of interfaces that are directly or indirectly implemented by a tagged
26104 type.
26105 (Default_Prim_Op_Position): New subprogram that returns the fixed
26106 position in the dispatch table of the default primitive operations.
26107 (Expand_Interface_Actuals): New subprogram to generate code that
26108 displaces all the actuals corresponding to class-wide interfaces to
26109 reference the interface tag of the actual object.
26110 (Expand_Interface_Conversion): New subprogram. Reference the base of
26111 the object to give access to the interface tag associated with the
26112 secondary dispatch table.
26113 (Expand_Interface_Thunk): New subprogram that generates the code of the
26114 thunk. This is required for compatibility with the C+ ABI.
26115 (Make_Abstract_Interface_DT): New subprogram that generate the
26116 declarations for the secondary dispatch tables associated with an
26117 abstract interface.
26118 (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
26119 attribute for each primitive operation covering interface subprograms
26120 (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
26121 These subprograms were upgraded to give support to abstract interfaces
26122
26123 * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
26124 RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
26125 RE_Set_Access_Level.
26126 (RE_Unit_Table): Add entries for new Ada.Tags operations.
26127 Add support to call the followig new run-time subprograms:
26128 IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
26129
26130 * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
26131 match its full declaration when both have an access definition with
26132 statically matching designated subtypes.
26133 (Analyze_Component_Declaration): Delete commented out code that was
26134 incorrectly setting the scope of an anonymous access component's type.
26135 (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
26136 an access discriminant when the containing type is nonlimited.
26137 (Make_Incomplete_Type_Declaration): Create an incomplete type
26138 declaration for a record type that includes self-referential access
26139 components.
26140 (Check_Anonymous_Access_Types): Before full analysis of a record type
26141 declaration, create anonymous access types for each self-referential
26142 access component.
26143 (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
26144 an access component in this context is a Local_Anonymous_Access, for
26145 proper accessibility checks.
26146 (Access_Definition): Set properly the scope of the anonymous access type
26147 created for a stand-alone access object.
26148 (Find_Type_Of_Object): An object declaration may be given with an access
26149 definition.
26150 (Complete_Subprograms_Derivation): New subprogram used to complete
26151 type derivation of private tagged types implementing interfaces.
26152 In this case some interface primitives may have been overriden
26153 with the partial-view and, instead of re-calculating them, they
26154 are included in the list of primitive operations of the full-view.
26155 (Build_Derived_Record_Type): Modified to give support to private
26156 types implemening interfaces.
26157 (Access_Definition): Reject ALL on anonymous access types.
26158 (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
26159 type derivation to occur at a deeper accessibility level than the
26160 parent type.
26161 For the case of derivation within a generic body however, disallow the
26162 derivation if the derived type has an ancestor that is a formal type
26163 declared in the formal part of an enclosing generic.
26164 (Analyze_Object_Declaration): For protected objects, remove the check
26165 that they cannot contain interrupt handlers if not declared at library
26166 level.
26167 (Add_Interface_Tag_Components): New subprogram to add the tag components
26168 corresponding to all the abstract interface types implemented by a
26169 record type or a derived record type.
26170 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
26171 Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
26172 Process_Full_View, Record_Type_Declaration): Modified to give
26173 support to abstract interface types
26174 (Collect_Interfaces): New subprogram that collects the list of
26175 interfaces that are not already implemented by the ancestors
26176 (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
26177 when partial view has no discriminants and full view has defaults.
26178 (Constrain_Access): Reject a constraint on a general access type
26179 if the discriminants of the designated type have defaults.
26180 (Access_Subprogram_Declaration): Associate the Itype node with the inner
26181 full-type declaration or subprogram spec. This is required to handle
26182 nested anonymous declarations.
26183 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
26184 Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
26185 Process_Full_View, Record_Type_Declaration): Modified to give
26186 support to abstract interface types
26187 (Derive_Subprograms): Addition of a new formal to indicate if
26188 we are in the case of an abstact-interface derivation
26189 (Find_Type_Of_Subtype_Indic): Moved from the body of the package
26190 to the specification because it is requied to analyze all the
26191 identifiers found in a list of interfaces
26192
26193 * debug.adb: Complete documentation of flag "-gnatdZ"
26194
26195 * exp_ch3.adb: Implement config version of persistent_bss pragma
26196 (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
26197 testing for TSS presence to properly enforce visibility rules.
26198 (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
26199 Make_Abstract_Interfaces_DT to generate the secondary tables
26200 associated with abstract interfaces.
26201 (Build_Init_Procedure): Modified to initialize all the tags
26202 corresponding.
26203 (Component_Needs_Simple_Initialization): Similar to other tags,
26204 interface tags do not need initialization.
26205 (Freeze_Record_Type): Modified to give support to abstract interface
26206 types.
26207 (Expand_N_Object_Declaration): Do not generate an initialization for
26208 a scalar temporary marked as internal.
26209
26210 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
26211 in-out parameter that is a component in an initialization procedure,
26212 whose constraint might depend on discriminants, and that may be
26213 misaligned because of packing or representation clauses.
26214 (Is_Legal_Copy): New predicate to determine whether a possibly
26215 misaligned in-out actual can actually be passed by copy/return. This
26216 is an error in case the type is by_reference, and a warning if this is
26217 the consequence of a DEC import pragma on the subprogram.
26218 (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
26219 interface types
26220 (Expand_Inlined_Call): Mark temporary generated for the return value as
26221 internal, so that no useless scalar normalization is generated for it.
26222 (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
26223 null procedure can always be inlined.
26224 (Expand_N_Subprogram_Declaration): If this is the declaration of a null
26225 procedure, generate an explicit empty body for it.
26226
26227 * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
26228 Given a type implementing an interface, returns the corresponding
26229 access_disp_table value.
26230 (Find_Interface_Tag): New subprogram. Given a type implementing an
26231 interface, returns the record component containing the tag of the
26232 interface.
26233 (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
26234 previous ones that return the corresponding tag and access_disp_table
26235 entities.
26236 (Is_Predefined_Dispatching_Operation): Determines if a subprogram
26237 is a predefined primitive operation.
26238 (Expand_Subtype_From_Expr): If the expression is a selected component
26239 within an initialization procedure, compute its actual subtype, because
26240 the component may depend on the discriminants of the enclosing record.
26241
da8f5fd9 26242 * i-cpp.ads, i-cpp.adb:
0adcdb66
AC
26243 This package has been left available for compatibility with previous
26244 versions of the frontend. As part of the new layout this is now a
26245 dummy package that uses declarations available at a-tags.ads
26246
26247 * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
26248 "constant access" and "aliased [constant] access" when not compiling
26249 with -gnat05.
26250 Suppress Ada 2005 keyword warning if -gnatwY used
26251 (P_Identifier_Declarations): Add support for object declarations with
26252 access definitions.
26253 (Private_Extension_Declaration): Complete the documentation
26254 (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
26255 attribute in case of private extension declaration
26256 (P_Type_Declaration): Mark as "abstract" the type declarations
26257 corresponding with protected, synchronized and task interfaces
26258 (P_Declarative_Items): "not" and "overriding" are overriding indicators
26259 for a subprogram or instance declaration.
26260
26261 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
26262 instantiation that is a dispatching operation has controlling access
26263 parameters that are null excluding.
26264 Save and restore Ada_Version_Explicit, for implementation of AI-362
26265 (Validate_Derived_Type_Instance): Add check for abstract interface
26266 types.
26267 (Analyze_Formal_Package): Establish Instantiation source for the copy of
26268 the generic that is created to represent the formal package.
26269 (Analyze_Package_Instantiation): Instantiate body immediately if the
26270 package is a predefined unit that contains inlined subprograms, and
26271 we are compiling for a Configurable_Run_Time.
26272 (Instantiate_Formal_Subprogram): Indicate that null default subprogram
26273 If the program has a null default, generate an empty body for it.
26274
26275 * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
26276 error message condition, null procedures are correctly detected now.
26277 (New_Overloaded_Entity): Bypass trivial overriding indicator check
26278 for subprograms in the context of protected types. Instead, the
26279 indicator is examined in Sem_Ch9 while analysing the subprogram
26280 declaration.
26281 (Check_Overriding_Indicator): Check consistency of overriding indicator
26282 on subprogram stubs as well.
26283 (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
26284 the library level.
26285 (Analize_Subprogram_Specification): When analyzing a subprogram in which
26286 the type of the first formal is a concurrent type, replace this type
26287 by the corresponding record type.
26288 (Analyze_Subprogram_Body): Undo the previous work.
26289 (Analyze_Procedure_Call): If the call has the form Object.Op, the
26290 analysis of the prefix ends up analyzing the call itself, after which
26291 we are done.
26292 (Has_Interface_Formals): New subprogram subsidiary to analyze
26293 subprogram_specification that returns true if some non
26294 class-wide interface subprogram is found
26295 (New_Overloaded_Entity): Modified to give support to abstract
26296 interface types
26297 (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
26298 access to subprograms must be recursive.
26299 (Is_Unchecked_Conversion): Improve the test that recognizes
26300 instantiations of Unchecked_Conversion, and allows them in bodies that
26301 are to be inlined by the front-end. When the body comes from an
26302 instantiation, a reference to Unchecked_Conversion will be an
26303 Expanded_Name, even though the body has not been analyzed yet.
26304 Replace Is_Overriding and Not_Overriding in subprogram_indication with
26305 Must_Override and Must_Not_Override, to better express intent of AI.
26306 (Analyze_Subprogram_Body): If an overriding indicator is given, check
26307 that it is consistent with the overrinding status of the subprogram
26308 at this point.
26309 (Analyze_Subprogram_Declaration): Indicate that a null procedure is
26310 always inlined.
26311 If the subprogram is a null procedure, indicate that it does not need
26312 a completion.
26313
26314 * sem_disp.adb (Check_Controlling_Type): Give support to entities
26315 available through limited-with clauses.
26316 (Check_Dispatching_Operation): A stub acts like a body, and therefore is
26317 allowed as the last primitive of a tagged type if it has no previous
26318 spec.
26319 (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
26320 to give support to abstract interface types
26321
26322 * sem_res.adb (Valid_Conversion): Perform an accessibility level check
26323 in the case where the target type is an anonymous access type of an
26324 object or component (that is, when Is_Local_Anonymous_Access is true).
26325 Prevent the special checks for conversions of access discriminants in
26326 the case where the discriminant belongs to a nonlimited type, since
26327 such discriminants have their accessibility level defined in the same
26328 way as a normal component of an anonymous access type.
26329 (Resolve_Allocator): When an allocator's designated type is a class-wide
26330 type, check that the accessibility level of type given in the
26331 allocator's expression or subtype indication is not statically deeper
26332 than the level of the allocator's access type.
26333 (Check_Discriminant_Use): Diagnose discriminant given by an expanded
26334 name in a discriminant constraint of a record component.
26335 (Resolve_Explicit_Dereference): Do not check whether the type is
26336 incomplete when the dereference is a use of an access discriminant in
26337 an initialization procedure.
26338 (Resolve_Type_Conversion): Handle conversions to abstract interface
26339 types.
26340 (Valid_Tagged_Conversion): The conversion of a tagged type to an
26341 abstract interface type is always valid.
26342 (Valid_Conversion): Modified to give support to abstract interface types
26343 (Resolve_Actuals): Enable full error reporting on view conversions
26344 between unrelated by_reference array types.
26345 The rule for view conversions of arrays with aliased components is
26346 weakened in Ada 2005.
26347 Call to obsolescent subprogram is now considered to be a violation of
26348 pragma Restrictions (No_Obsolescent_Features).
26349 (Check_Direct_Boolean_Operator): If the boolean operation has been
26350 constant-folded, there is nothing to check.
26351 (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
26352 check on possible violation of restriction No_Direct_Boolean_Operators
26353 until after expansion of operands, to prevent spurious errors when
26354 operation is constant-folded.
26355
26356 * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
26357 Has_Compatible_Type): Modified to give support to abstract interface
26358 types.
26359 (Interface_Present_In_Ancestor): New function to theck if some ancestor
26360 of a given type implements a given interface
26361
26362 * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
26363 prefix is a parameterless function that returns an access_to_procedure.
26364 (Transform_Object_Operation): Handle properly function calls of the
26365 form Obj.Op (X), which prior to analysis appear as indexed components.
26366 (Analyze_One_Call): Complete the error notification to help new Ada
26367 2005 users.
26368 (Analyze_Allocator): For an allocator without an initial value, where
26369 the designated type has a constrained partial view, a discriminant
26370 constraint is illegal.
26371
263722005-06-14 Robert Dewar <dewar@adacore.com>
26373
26374 * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
26375 do with treatment of Set_Col when positioned at end of line character.
26376
263772005-06-14 Robert Dewar <dewar@adacore.com>
26378
26379 * atree.adb: (Elist*): Protect against uninitialized field
26380
263812005-06-14 Ed Schonberg <schonberg@adacore.com>
26382
26383 * checks.adb (Install_Null_Excluding_Check): Do not generate checks
26384 for an attribute reference that returns an access type.
26385 (Apply_Discriminant_Check): No need for check if (designated) type has
26386 constrained partial view.
26387
26388 (Apply_Float_Conversion_Check): Generate a short-circuit expression for
26389 both bound checks, rather than a conjunction.
26390 (Insert_Valid_Check): If the expression is an actual that is an indexed
26391 component of a bit-packed array, force expansion of the packed element
26392 reference, because it is specifically inhibited elsewhere.
26393
263942005-06-14 Vincent Celier <celier@adacore.com>
26395
26396 * clean.adb (Clean_Project): Correctly delete executable specified as
26397 absolute path names.
26398
26399 * make.adb (Gnatmake): Allow relative executable path names with
26400 directory information even when project files are used.
26401 (Change_To_Object_Directory): Fail gracefully when unable to change
26402 current working directory to object directory of a project.
26403 (Gnatmake): Remove exception handler that could no longer be exercized
26404 (Compile_Sources.Compile): Use deep copies of arguments, as some of them
26405 may be deallocated by Normalize_Arguments.
26406 (Collect_Arguments): Eliminate empty arguments
26407
26408 * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
26409 and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
26410 (Check_Project): Return False when Project is No_Project. Return True
26411 when All_Projects is True.
26412 (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
26413 All_Projects to True.
26414 Minor reformatting
26415
264162005-06-14 Ed Schonberg <schonberg@adacore.com>
26417 Javier Miranda <miranda@adacore.com>
26418 Thomas Quinot <quinot@adacore.com>
26419 Robert Dewar <dewar@adacore.com>
26420 Hristian Kirtchev <kirtchev@adacore.com>
26421 Gary Dismukes <dismukes@adacore.com>
26422
26423 * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
26424 anonymous access types, to indicate that the accessibility level of
26425 the type is determined by that of the enclosing declaration.
26426 (Has_Persistent_BSS): New flag
26427 (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
26428 of this attribute with functions.
26429 (Is_Primitive_Wrapper): Remove the barrier.
26430 (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
26431 Has_Specified_Stream_Read, Has_Specified_Stream_Write):
26432 New subprograms.
26433 (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
26434 Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
26435 New subprograms.
26436 (Is_Pure_Unit_Access_Type): New flag
26437 (Abstract_Interfaces): Complete the assertion to cover all usages.
26438 (Set_Is_Interface): Complete the assertion to cover all usages.
26439 (Is_Primitive_Wrapper): New attribute.
26440 (Is_Obsolescent): Now applies to all entities (though it is only set
26441 for subprograms currently)
26442 New flag: Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
26443 which solves various problems concerning access subtypes.
26444 (Has_Persistent_BSS): New flag
26445 (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
26446 Remove these subprograms because this attribute is currently
26447 not used.
26448 New entity flags:
26449 Has_Specified_Stream_Input (Flag190)
26450 Has_Specified_Stream_Output (Flag191)
26451 Has_Specified_Stream_Read (Flag192)
26452 Has_Specified_Stream_Write (Flag193)
26453 Present in all type and subtype entities. Set for a given view if the
26454 corresponding stream-oriented attribute has been defined by an
26455 attribute definition clause. When such a clause occurs, a TSS is set
26456 on the underlying full view; the flags are used to track visibility of
26457 the attribute definition clause for partial or incomplete views.
26458 (Is_Pure_Unit_Access_Type): New flag
26459 Clarify use of Is_Internal.
26460 (Is_Primitive_Wrapper): New attribute present in primitive subprograms
26461 internally generated to wrap the invocation of tasks and protected
26462 types that implement interfaces.
26463 (Implementation_Base_Type): Documentation correction
26464 (Is_Obsolescent): Now applies to all entities (though it is only set
26465 for subprograms currently)
26466 New flag: Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
26467 which solves various problems concerning access subtypes.
26468
26469 * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
26470 for examined parameters. Identify unequal parameter list lengths as
26471 non-conformant parameters.
26472 (Overriding_Possible): Do not check for "All" qualifier in declaration
26473 of controlling access parameter, following prescription of AI-404.
26474 (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
26475 that build the procedure body that wraps an entry invocation
26476 (Build_Corresponding_Record, Build_Protected_Sub_Specification,
26477 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
26478 Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
26479 give support to abstract interface types
26480
26481 * freeze.adb (Freeze_Entity): Issue error message if
26482 Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
26483 type has no storage pool (Ada 2005) AI-366.
26484 Also modified to give support to abstract interface types
26485 (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
26486 Inline_Always pragma.
26487
26488 * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
26489 now begin an entry declaration.
26490 (P_Entry_Or_Subprogram_With_Indicator): New procedure in
26491 P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
26492 a subprogram declaration preceded by an overriding indicator.
26493 (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
26494 declarations or subprogram declarations preceded by reserved words
26495 "not" or "overriding".
26496 (P_Entry_Declaration): Update comment. Parse and check overriding
26497 indicator, set semantic flags of entry declarations.
26498 (P_Task): New error message in case of private applied
26499 to a task type declaration.
26500 (P_Protected): New error message in case of private applied
26501 to a task type declaration.
26502
26503 * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
26504 in which the full view of a type implementing an interface is a
26505 concurrent type.
26506 (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
26507 Declare_Inherited_Private_Subprograms): If an explicit operation
26508 overrides an operation that is inherited in the private part, mark the
26509 explicit one as overriding, to enable overriding indicator checks.
26510 (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
26511 full view to partial view, to simplify handling in back-end.
26512
26513 * sprint.adb: Print interface lists where needed: derived types,
26514 protected types, task types.
26515 output "is null" for null procedures. Part of implementation of
26516
26517 * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
26518 relaxation of rules for access types in pure, shared passive partitions.
26519
26520 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
26521 first read discriminants into temporary objects, performing checks on
26522 the read values, then possibly performing discriminant checks on the
26523 actual (if it is constrained), and only finally reading the components
26524 into a constrained temporary object.
26525 (Build_Elementary_Input_Call): Adjust the specific circuitry for the
26526 case of reading discriminants of a mutable record type to recognize
26527 the new form of the code generated by
26528 Build_Mutable_Record_Read_Procedure.
26529
26530 * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
26531 of a simple call to Make_TSS_Name.
26532 (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
26533 buffer, in order for Is_TSS to work correctly on local TSS names.
26534
26535 * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
26536 Is_Local_Anonymous_Access to check legaliy of attributes in the
26537 context of access components and stand-alone access objects.
26538 (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
26539 treated as available for a limited private type if there is an
26540 attribute_definition_clause that applies to its full view, but not in
26541 other cases where the attribute is available for the full view
26542 (specifically, the sole fact that the full view is non-limited does not
26543 make the attribute available for the partial view).
26544 (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
26545 non-overloaded intrinsic subprogram.
26546 (Check_Stream_Attribute): Reject an attribute reference for an
26547 unavailable stream attribute even if the prefix is not a limited type
26548 (case of a 'Input attribute reference for an abstract, non-classwide
26549 type)
26550 (Stream_Attribute_Available): New function to determine whether a stream
26551 attribute is available at a place.
26552 (Check_Attribute): Use Stream_Attribute_Available instead of just
26553 testing for TSS presence on the implementation base type.
26554 (Analyze_Attribute): Modified to give support to task interfaces.
26555 (Analyze_Access_Attribute): Add error check for use of an Access (or
26556 Unrestricted_Access) attribute with a subprogram marked as
26557 Inline_Always.
26558 (Analyze_Attribute, case Attribute_Address): Add error check for use of
26559 an Address attribute with a subprogram marked as Inline_Always.
26560 Update Eval_Attribute to handle new value of Width from AI-395
26561
26562 * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
26563 (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
26564 Factor common code across the stream-oriented attribute circcuits into
26565 a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
26566 processing is functionally identical to the previous duplicated one,
26567 except that an expression that denotes an abstract subprogram will now
26568 be rejected, as mandated by AI-195 item 5.
26569
26570 * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
26571 Is_Local_Anonymous_Access to apply accessibility checks to access
26572 components and stand-alone access objects.
26573 (Has_Discriminant_Dependent_Constraint): Moved to spec for use
26574 elsewhere.
26575 (Is_Potentially_Persistent_Type): New function
26576 (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
26577 a heap-object whose type has a constrained partial view, the object is
26578 unconstrained and the component may depend on a discriminant, making its
26579 renaming illegal.
26580
26581 * sinfo.ads, sinfo.adb
26582 (Must_Not_Override): Flag applicable to N_Entry_Declaration.
26583 (Must_Override): Flag applicable to N_Entry_Declaration.
26584 Indicate that interface_list can appear in single task and single
26585 protected declarations.
26586 Replace Is_Overriding and Not_Overriding with Must_Override and
26587 Must_Not_Override, to better express intent of AI.
26588 Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
26589 of an overriding indicator in a subprogram or instance.
26590 Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
26591 Add the overriding indicator [[not] overriding] construct to the
26592 following grammar productions:
26593 ENTRY_DECLARATION
26594 GENERIC_INSTANTIATION
26595 SUBPROGRAM_SPECIFICATION
26596
26597 * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
26598 can start with an overriding indicator.
26599
26600 * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
26601 flags accordingly on subrogram specifications or instances.
26602
da8f5fd9 26603 * sem_ch8.adb:
0adcdb66
AC
26604 (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
26605 overriding_indicator, if present, is consistent with status of spec.
26606 Improve error message for null-excluding checks on controlling access
26607 parameters.
26608 (Check_In_Previous_With_Clause): Protect the frontend against
26609 previously reported critical errors in the context clauses.
26610 Save and restore Ada_Version_Explicit, for implementation of AI-362
26611 (Analyze_Subprogram_Renaming): If the new entity is a dispatching
26612 operation verify that controlling formals of the renamed entity that
26613 are access parameters are explicitly non-null.
26614 (Find_Expanded_Name): Improve error message when prefix is an illegal
26615 reference to a private child unit.
26616
26617 * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
da8f5fd9 26618 s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
0adcdb66
AC
26619 Rewrite to correspond to new wide character names in AI-395
26620
6f7f72f9
EB
26621 * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
26622 default procedures.
0adcdb66
AC
26623
266242005-06-14 Ed Schonberg <schonberg@adacore.com>
26625 Robert Dewar <dewar@adacore.com>
26626
26627 * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
26628 code, not on the bodies of predefined operations, to cut down on
26629 spurious noise.
26630
266312005-06-14 Ed Schonberg <schonberg@adacore.com>
26632
26633 * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
26634 be expanded in place. The size computation does not require a
26635 subtraction, which would raise an exception on a compiler built with
26636 assertions when the upper bound is Integer'first.
26637 (Flatten): For an array of composite components, take into account the
26638 size of the components to determine whether it is safe to expand the
26639 array into a purely positional representation.
26640
266412005-06-14 Thomas Quinot <quinot@adacore.com>
26642
26643 * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
26644 denoting a formal parameter into account.
26645
266462005-06-14 Ed Schonberg <schonberg@adacore.com>
26647
26648 * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
26649 the entry_call alternative of a conditional entry call, wrap the
26650 conditional entry call itself.
26651
266522005-06-14 Nicolas Setton <setton@adacore.com>
26653 Ed Schonberg <schonberg@adacore.com>
26654
26655 * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
26656 the "simple_choice" member in a variant record, in accordance with the
26657 description in the package spec: the information output for a constant
26658 should be "S number", not "SS number".
26659 (Get_Encoded_Name): Return at once if not generating code. Avoids name
26660 overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
26661
266622005-06-14 Thomas Quinot <quinot@adacore.com>
26663
26664 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
26665 RACW without any primitives, do not generate the if statement for
26666 dispatching by name in the PolyORB/DSA case, as it would be malformed
26667 (it would have an Elsif_Parts list that is not No_List, but with a
26668 length of 0).
26669
266702005-06-14 Robert Dewar <dewar@adacore.com>
26671
26672 * exp_intr.adb, par-ch5.adb: Minor fix to error message text
26673
266742005-06-14 Jose Ruiz <ruiz@adacore.com>
26675
26676 * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
26677 can determine whether pragma Suppress_Exception_Locations is in effect.
26678
26679 * utils2.c (build_call_raise): Do not pass the file name to the
26680 exception handler if pragma Suppress_Exception_Locations is in effect.
26681 (build_allocator): Add and process arg IGNORE_INIT_TYPE.
26682
266832005-06-14 Emmanuel Briot <briot@adacore.com>
26684
26685 * g-debpoo.adb (Deallocate, Dereference): Improve output.
26686
266872005-06-14 Nicolas Roche <roche@adacore.com>
26688
26689 * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
26690 to ""
26691 (Next_Level): Fix minor bug in handling of ../dir case
26692 (Read): Add dir separator to Directory name so that "" is understood as
26693 "/"
26694
266952005-06-14 Pascal Obry <obry@adacore.com>
26696
26697 * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
26698 releasing the items.
26699
267002005-06-14 Vincent Celier <celier@adacore.com>
26701 Cyrille Comar <comar@adacore.com>
26702
26703 * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
26704 with output file descriptor and with output file name.
26705 (Dup, Dup2): Now global procedures as they are used by two subprograms
26706 (Copy): Allocate the 200K buffer on the heap rather than on the stack.
26707
267082005-06-14 Thomas Quinot <quinot@adacore.com>
26709
26710 PR ada/6717
0adcdb66
AC
26711 * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
26712 broadcast address.
26713 (Create_Selector): Bind listening socket used to create the signalling
26714 socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
26715 Set listen backlog to 1 to ensure that we detect socket theft by a
26716 failure of our own connect(2) call.
26717 (Check_Selector): Improve documentation of the selector mechanism.
26718 (Broadcast_Inet_Addr): New constant.
26719
267202005-06-14 Gary Dismukes <dismukes@adacore.com>
26721
26722 * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
26723 type which turns out to be an incomplete and incorrect fix.
26724 (Layout_Array_Type): Use Underlying_Type when checking whether the scope
26725 of the type is declared in a record (for determination of insertion
26726 type).
26727 (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
26728 a private type and ensure that the primary entity is used for the type
26729 of the newly created function's V formal by taking the Etype of the
26730 view.
26731
267322005-06-14 Javier Miranda <miranda@adacore.com>
26733 Jose Ruiz <ruiz@adacore.com>
26734 Robert Dewar <dewar@adacore.com>
26735 Ed Schonberg <schonberg@adacore.com>
26736
26737 * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
26738 that indicates if we are parsing a compilation unit found in a
26739 limited-with clause.
26740 It is use to avoid the circularity check.
26741
26742 * par.ads, par.adb (Par): Addition of a new parameter to indicate if
26743 we are parsing a compilation unit found in a limited-with clause. This
26744 is use to avoid the circularity check.
26745
26746 * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
26747 unit as a consequence of parsing a limited-with clause. This is used
26748 to avoid the circularity check.
26749
26750 * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
26751 (Analyze_Context): Limited-with clauses are now allowed
26752 in more compilation units.
26753 (Analyze_Subunit_Context, Check_Parent): Protect the frontend
26754 againts previously reported critical errors in context clauses
26755 (Install_Limited_Withed_Unit): Code cleanup plus static detection
26756 of two further errors: renamed subprograms and renamed packages
26757 are not allowed in limited with clauses.
26758 (Install_Siblings): Do not install private_with_clauses on the package
26759 declaration for a non-private child unit.
26760 (Re_Install_Parents): When a parent of the subunit is reinstalled,
26761 reset visibility of child units properly.
26762 (Install_Withed_Unit): When a child unit appears in a with_clause of its
26763 parent, it is immediately visible.
26764
267652005-06-14 Ed Schonberg <schonberg@adacore.com>
26766 Emmanuel Briot <briot@adacore.com>
26767
26768 * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
26769 declared within an inlined body as referenced, to prevent spurious
26770 warnings.
26771 (Output_One_Ref): If an entity renames an array component, indicate in
26772 the ALI file that this aliases (renames) the array. Capture as well
26773 function renamings that rename predefined operations.
26774 Add information about generic parent for package and subprogram
26775 instances.
26776 (Get_Type_Reference): For a subtype that is the renaming of an actual in
26777 an instantiation, use the first_subtype to ensure that we don't generate
26778 cross-reference information for internal types.
26779 For objects and parameters of a generic private type, retain the '*'
26780 indicator to distinguish such an entity from its type.
26781
6f7f72f9
EB
26782 * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
26783 to store information about instantiated entities.
0adcdb66 26784
6f7f72f9
EB
26785 * ali.adb (Scan_ALI): Add support for parsing the reference to the
26786 generic parent
0adcdb66 26787
6f7f72f9
EB
26788 * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
26789 (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
26790 information.
0adcdb66
AC
26791
267922005-06-10 Doug Rupp <rupp@adacore.com>
26793 Arnaud Charlet <charlet@adacore.com>
26794 Olivier Hainque <hainque@adacore.com>
26795 Jose Ruiz <ruiz@adacore.com>
26796
26797 * Make-lang.in: Add initialize.o when needed.
26798 Remove obsolete references to RT_FLAGS.
26799 Add missing dependencies for sdefault.o
26800
26801 * initialize.c: New file.
26802
26803 * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
26804 [VMS] cond_signal_table: Fix problem in declaration.
26805 [VMS] __gnat_error_handler: rewrite.
26806 Move all __gnat_initialize() routines to initialize.c
26807 Specialize the former "hpux" section to "hppa hpux", as this is what the
26808 section really is here for and we now have other hpux ports that need
26809 different contents.
26810 (__gnat_adjust_context_for_raise) i386-linux: First version of this
26811 function for this target. Adjust PC by one in the machine context. This
26812 adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
26813 it is more reliable to do that in the signal handler itself.
26814 (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
26815 flags, so that the handler is passed the context structure to adjust
26816 prior to the raise.
26817 (__gnat_error_handler) i386-linux: Adjust the signature to match what a
26818 SA_SIGINFO sigaction should look like. Call
26819 __gnat_adjust_context_for_raise before actually raising. Cleanup unused
26820 Machine_State_Operations stuff.
26821 Add conditional code so that the x86_64 is also supported.
26822
268232005-06-14 Pascal Obry <obry@adacore.com>
26824
26825 * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
26826 the library name.
26827
268282005-06-14 Robert Dewar <dewar@adacore.com>
26829
26830 * opt.ads, opt.adb: New flags for persistent_bss mode
26831 Add Ada_Version_Explicit, for implementation of AI-362
26832 Add Assertions_Enabled_Config and associated handling
26833 Needed since setting can be changed with Assertion_Policy pragma
26834 Add new flag Warn_On_Ada_2005_Compatibility
26835
26836 * switch-c.adb: Recognize -gnatwy/Y
26837 Set Ada_Version_Explicit, for implementation of AI-362
26838 The -gnatg switch now includes -gnatyu
26839
26840 * usage.adb: Add -gnatwy/Y
26841 Remove wrong asterisk on -gnatwX line
26842 Add line for -gnatyu switch
26843
268442005-06-14 Vincent Celier <celier@adacore.com>
26845
26846 * osint.adb (Add_Default_Search_Dirs): Put source and object
26847 directories of project files before directories coming from
26848 ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
26849
268502005-06-14 Robert Dewar <dewar@adacore.com>
26851
26852 PR ada/15613
0adcdb66
AC
26853 * par-ch2.adb (Scan_Pragma_Argument): New procedure
26854 (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
26855
268562005-06-14 Vincent Celier <celier@adacore.com>
26857
26858 * prep.adb (Preprocess): Ignore error when scanning the first token of
26859 a line.
26860
268612005-06-14 Vincent Celier <celier@adacore.com>
26862
26863 * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
26864 (Check_Stand_Alone_Library): If the specified reference symbol file does
26865 not exist, only issue a warning when the symbol policy is not
26866 Controlled. And, when symbol policy is Compliant, set the symbol
26867 policy to Autonomous.
26868
268692005-06-14 Vincent Celier <celier@adacore.com>
26870
26871 * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
26872 when the project file in a with clause is not the last one, that is the
26873 project file name is followed by a comma.
26874 * prj-pp.adb: (First_With_In_List): New Boolean global variable
26875 (Print): Issue list of project files separated by commas in with clauses
26876 according to the values returned by Is_Not_Last_In_List.
26877 * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
26878 (Set_Is_Not_Last_In_List): New procedure
26879
268802005-06-14 Eric Botcazou <ebotcazou@adacore.com>
26881
26882 * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
26883
268842005-06-14 Robert Dewar <dewar@adacore.com>
26885
26886 * scng.adb: Add call to new Check_EOF routine
26887 (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
26888 Add some comments regarding wide character handling
26889
26890 * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
26891
26892 * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
26893
26894 * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
26895 characters are now considered graphic characters and hence yield false
26896 in this call.
26897
6f7f72f9
EB
26898 * nmake.adt: Modify header so that xnmake does not generate output
26899 files with multiple blank lines.
0adcdb66 26900
6f7f72f9
EB
26901 * treeprs.adt: Remove a blank line so that output from xtreeprs does
26902 not have an extra blank line
0adcdb66
AC
26903
269042005-06-14 Gary Dismukes <dismukes@adacore.com>
26905
26906 * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
26907 expression when the component type is an anonymous access type to
26908 ensure that appropriate accessibility checks are done.
26909
26910 * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
26911 expression of an assignment when the target object is of an anonymous
26912 access type. This ensures that required accessibility checks are done.
26913 (One_Bound): Move the check for type Universal_Integer to
26914 Process_Bounds.
26915 (Process_Bounds): Check whether the type of the preanalyzed range is
26916 Universal_Integer, and in that case set Typ to Integer_Type prior
26917 to setting the type of the original range and the calls to One_Bound.
26918
269192005-06-14 Ed Schonberg <schonberg@adacore.com>
26920
26921 * sem_case.adb (Expand_Others_Choice): Improve warning.
26922
269232005-06-14 Ed Schonberg <schonberg@adacore.com>
26924
26925 * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
26926 constraint of full view if present, when other type is discriminated.
26927 (Eval_Relational_Op): Recognize tests of pointer values against Null,
26928 when the pointer is known to be non-null, and emit appropriate warning.
26929
269302005-06-14 Robert Dewar <dewar@adacore.com>
26931 Ed Schonberg <schonberg@adacore.com>
26932
26933 PR ada/10671
0adcdb66
AC
26934 * sem_prag.adb: Implement pragma Persistent_BSS
26935 Remove obsolete pragma Persistent_Data, Persistent_Object
26936 Set Ada_Version_Explicit, for implementation of AI-362
26937 Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
26938 Add processing for pragma Pure_05 and Preelaborate_05
26939 Add processing for Assertion_Policy pragma
26940 Add pragma identifiers for Assert
26941 (Analyze_Pragma, case Assert): Check number of arguments
26942 (Process_Inline): Additional guard against an illegal program, where the
26943 argument of the pragma is undefined, and warnings on redundant
26944 constructs are enabled.
26945 (Analyze_Pragma, case Obsolescent): Allow an optional second argument
26946 Ada_05 to this pragma, specifying that the pragma is only active in
26947 Ada_05 mode.
26948 (Check_Arg_Order): New procedure
26949 Add appropriate calls to this procedure throughout
26950 Also throughout, check entity name before doing any other checks
26951
26952 * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
26953 Remove obsolete pragma Persistent_Data, Persistent_Object
26954 Add entries for pragma Pure_05 and Preelaborate_05
26955 Add entries for Assertion_Policy pragma and associated names
26956 Add some names for pragma argument processing
26957
26958 * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
26959
269602005-06-14 Ed Schonberg <schonberg@adacore.com>
26961
26962 * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
26963 appears within a negation (either from source or as a rewriting of
26964 inequality) adjust text of warning accordingly.
26965
269662005-06-14 Thomas Quinot <quinot@adacore.com>
26967
26968 * s-strxdr.adb: Follow AI95-00132
26969
269702005-06-14 Arnaud Charlet <charlet@adacore.com>
26971
26972 * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
26973
269742005-06-14 Arnaud Charlet <charlet@adacore.com>
26975 Jose Ruiz <ruiz@adacore.com>
26976
26977 * s-tposen.adb, s-tpobop.adb
26978 (Exceptional_Complete_Rendezvous): Save the occurrence and not only
26979 the exception id.
26980 (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
26981 there is no violation of the Max_Entry_Queue_Length restriction (if it
26982 has been set); Program_Error is raised otherwise.
26983 (Requeue_Call): Before requeuing the task on the target entry queue we
26984 check that there is no violation of the Max_Entry_Queue_Length
26985 restriction (if it has been set); Program_Error is raised otherwise.
26986
269872005-06-14 Robert Dewar <dewar@adacore.com>
26988
26989 * styleg.adb: Fix several remaining problems in -gnatyu switch
26990 Blank line count not reset at start
26991 Scanning outside source buffer in some cases
26992 Confusing message for blanks at end of file
26993 Non-empty blank lines not recognized
26994
26995 * nmake.adt: Modify header so that xnmake does not generate output
26996 files with multiple blank lines.
26997
6f7f72f9
EB
26998 * treeprs.adt: Remove a blank line so that output from xtreeprs does
26999 not have an extra blank line
0adcdb66
AC
27000
270012005-06-14 Sergey Rybin <rybin@adacore.com>
27002
27003 * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
27004
270052005-06-14 Doug Rupp <rupp@adacore.com>
27006 Vincent Celier <celier@adacore.com>
27007
27008 * vms_conv.ads, vms_conv.adb: Remove "Library" command.
27009 Update copyright.
27010
27011 * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
27012 Remove "Library" command.
27013 Change keyword for style check -gnatyd from NOCRLF to
27014 DOS_LINE_ENDINGS.
27015 Remove useless second style check keyword NONE
27016 Remove help documentation for inexistent style check keyword
27017 RM_COLUMN_LAYOUT.
27018 Add help documentation for style check keywords DOS_LINE_ENDINGS,
27019 UNNECESSARY_BLANK_LINES and XTRA_PARENS
27020 Add UNNECESSARY_BLANK_LINES for -gnatyu
27021 Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
27022
6f7f72f9 27023 * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
0adcdb66
AC
27024
270252005-06-14 Vincent Celier <celier@adacore.com>
27026
27027 * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
27028 gprmake was invoked with -d.
27029 (Compile_Sources): If -d was used, output the "completed ..." message
27030 for each compilation.
27031 (Scan_Arg): Recognize new switch -d
27032 When -c and at least one main is specified, set
27033 Unique_Compile to True to guarantee that no other sources will be
27034 compiled.
27035
270362005-06-14 Matthew Heaney <heaney@adacore.com>
27037
27038 * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
27039 * a-swuwha.ads, a-swuwha.adb: New files
27040
27041 * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
27042 * a-szuzha.ads, a-szuzha.adb: New files.
27043
27044 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
da8f5fd9
AJ
27045 a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
27046 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
27047 a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
27048 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
0adcdb66 27049 a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
da8f5fd9 27050 a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
0adcdb66
AC
27051 a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
27052 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
27053 a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
27054 Ada 2005 RM.
27055
270562005-06-10 Eric Botcazou <ebotcazou@adacore.com>
27057 Olivier Hainque <hainque@adacore.com>
27058 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27059 Pascal Obry <obry@adacore.com>
27060
27061 * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
27062
27063 * trans.c (call_to_gnu): Issue a warning for users of Starlet when
27064 making a temporary around a procedure call because of non-addressable
27065 actual parameter.
27066 (process_freeze_entity): If entity is a private type, capture size
27067 information that may have been computed for the full view.
27068 (tree_transform, case N_Allocator): If have initializing expression,
27069 check type for Has_Constrained_Partial_View and pass that to
27070 build_allocator.
27071 (tree_transform, case N_Return_Statement): Pass extra arg to
27072 build_allocator.
27073
27074 * decl.c (annotate_value): Remove early return if -gnatR is not
27075 specified.
27076 (gnat_to_gnu_field): Don't make a packable type for a component clause
27077 if the position is byte aligned, the field is aliased, and the clause
27078 size isn't a multiple of the packable alignment. It serves no useful
27079 purpose packing-wise and would be rejected later on.
27080 (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
27081
27082 PR ada/20515
27083 (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
27084 context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
27085 instead.
27086 (create_concat_name): Idem.
27087
270882005-06-10 Robert Dewar <dewar@adacore.com>
27089 Eric Botcazou <ebotcazou@adacore.com>
27090 Ben Brosgol <brosgol@adacore.com>
27091 Cyrille Comar <comar@adacore.com>
27092 Sergey Rybin <rybin@adacore.com>
27093 Pascal Obry <obry@adacore.com>
27094
27095 * gnat_rm.texi: Add documentation for pragma Persistent_BSS
27096 Document second argument (Ada_05) of pragma Obsolescent
27097 Add note that call to subprogram marked with pragma Obsolescent
27098 is now considered to be a violation of program Restrictions
27099 (No_Obsolescent_Features).
27100 (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
27101 that only machine-dependent attributes are supported.
27102
da8f5fd9 27103 * gnat_ugn.texi:
0adcdb66
AC
27104 Commented out menu lines and empty section for gnatclean examples
27105 Document -gnatwy/Y
27106 Fix some over long lines
27107 Clarify and enhance documentation of ADA_PROJECT_PATH.
27108 Rework section 2.11.2(3) about linking with a non-GNU compiler.
27109 Mention new switch -fcallgraph-info.
27110 Mention new switch -fstack-usage.
27111 For gnatpp, replace '-notab' with '-N' and add this option to Index
27112 Corrected VMS example.
27113 VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
27114 Minor reformatting
27115 Add documentation for -gnatyu switch (unnecessary blank lines)
27116 Document new switch -U for GNAT PRETTY and GNAT METRIC
27117 Add note about Stdcall being handled as C convention on non Windows OS.
27118 Remove some junk typo in description of gnatbind -S switch
27119 Remove reference to Extensions_Allowed pragma
27120 Document the new order of the directories to be searched (source and
27121 object directories of project files before directories in ADA_*_PATH
27122 environment variables.
27123
6f7f72f9 27124 * g-trasym.ads: Document that IRIX is supported
0adcdb66
AC
27125
271262005-06-10 Arnaud Charlet <charlet@adacore.com>
27127
27128 * Makefile.in: Add initialize.o when needed.
27129 Adapt to new VMS package body Symbols and subunits
27130 No specialized version of a-sytaco is needed for VxWorks.
27131
27132 * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
27133 * a-zchara.ads, a-widcha.ads: New files.
27134
27135 * system-hpux-ia64.ads: New file.
27136
27137 * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
27138 is imported from the VxWorks kernel.
27139
271402005-06-14 Robert Dewar <dewar@adacore.com>
27141
27142 * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
27143 fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
27144 a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
27145 s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
27146 a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
27147 g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
27148 i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
27149 namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
27150 sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
27151 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
27152 s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
27153 xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
27154
271552005-06-14 Thomas Quinot <quinot@adacore.com>
27156
27157 * xeinfo.adb: Fix typo in comment
27158
271592005-06-14 Javier Miranda <miranda@adacore.com>
27160
27161 * repinfo.ads: Fix typo in comment
27162
271632005-06-14 Gary Dismukes <dismukes@adacore.com>
27164
27165 * s-finimp.adb (Parent_Tag): Delete this imported function (function
27166 Parent_Tag is now in the visible part of Ada.Tags).
27167 (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
27168 using imported function.
27169
271702005-06-14 Bernard Banner <banner@adacore.com>
27171
27172 * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
27173 also apply for handling support for VxSim 653.
27174
271752005-06-14 Eric Botcazou <ebotcazou@adacore.com>
27176
27177 * xsnames.adb: Add automatic generation of snames.h.
27178
271792005-06-14 Thomas Quinot <quinot@adacore.com>
27180
27181 * gen-soccon.c: Add IP_MULTICAST_IF constant
27182 Minor reformatting and adjustments to prevent warnings.
27183
271842005-06-14 Pascal Obry <obry@adacore.com>
27185
27186 * seh_init.c: Do not include <sys/stat.h>. This is not needed.
27187
e0d161cf
AP
271882005-06-03 Andrew Pinski <pinskia@physics.uc.edu>
27189
27190 * trans.c (gnat_gimplify_expr): Call
27191 recompute_tree_invarant_for_addr_expr when we change
27192 the operand of the ADDR_EXPR.
27193
4c714dd4
KG
271942005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
27195
27196 * misc.c: Don't include errors.h.
27197
7b9997f3
KG
271982005-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
27199
27200 * raise.c (db): Add ATTRIBUTE_PRINTF_2.
27201
5ff62c2e
KH
272022005-05-29 Kazu Hirata <kazu@cs.umass.edu>
27203
27204 * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
27205 comment typos.
27206 * gnat_rm.texi, gnat_ugn.texi: Fix typos.
27207
9e94c78f 272082005-05-16 Nathanael Nerode <neroden@gcc.gnu.org>
8b37cc64
NN
27209
27210 PR ada/20270
27211 * Makefile.in: Make TGT_LIB behave correctly.
27212
d4ee4d25
DD
272132005-04-23 DJ Delorie <dj@redhat.com>
27214
27215 * misc.c: Adjust warning() callers.
27216
9e94c78f 272172005-04-16 Laurent Guerby <laurent@guerby.net>
159921c0 27218
6f7f72f9
EB
27219 PR ada/18847
27220 * a-nudira.adb (Value): Check for valid string.
27221 * a-nuflra.adb (Value): Likewise.
159921c0 27222
0b026622
RS
272232005-04-11 Richard Sandiford <rsandifo@redhat.com>
27224
27225 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
27226
bde83138
KH
272272005-04-10 Kazu Hirata <kazu@cs.umass.edu>
27228
27229 * adaint.c, init.c, tracebak.c: Fix comment typos.
27230 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
27231
9e94c78f 272322005-04-07 Laurent Guerby <laurent@guerby.net>
ad9945b5
LG
27233 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27234
27235 * Makefile.in: Add make ifeq define for hppa linux tasking support.
27236 * system-hpux.ads: Define Signed_Zeros to be True.
27237 * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
27238
45f7cb60
KH
272392005-04-01 Kazu Hirata <kazu@cs.umass.edu>
27240
27241 * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
27242 raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
27243 typos.
27244
5662a50d
TT
272452005-03-30 Tom Tromey <tromey@redhat.com>
27246
27247 * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
27248
e6e375cc
AL
272492005-03-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
27250
27251 * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
27252
5db8bc34
AC
272532005-03-29 Robert Dewar <dewar@adacore.com>
27254
27255 * sem_res.adb (Resolve_Real_Literal): Generate warning if static
27256 fixed-point expression has value that is not a multiple of the Small
27257 value.
27258
27259 * opt.ads (Warn_On_Bad_Fixed_Value): New flag
27260
27261 * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
27262 nanoseconds.
27263
27264 * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
27265
272662005-03-29 Vincent Celier <celier@adacore.com>
27267
27268 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
27269 (Build_Dynamic_Library.Version_String): Return the empty string when
27270 Lib_Version is empty or when the symbol policy is not Autonomous.
27271
27272 * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
27273 a symbol is not in the reference symbol file, increase the Major ID
27274 and set the Minor ID to 0.
27275 Use gsmatch=lequal instead of gsmatch=equal
27276
272772005-03-29 Doug Rupp <rupp@adacore.com>
27278
27279 * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
27280 name and translate.
27281
272822005-03-29 Javier Miranda <miranda@adacore.com>
27283
27284 * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
27285 (Inherit_DT): The first formal has been redefined as a Tag.
27286 This allows us the removal of the subprogram Get_TSD.
27287 (TSD): Replace the call to Get_TSD by the actual code.
27288
27289 * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
27290 (Make_DT): Upgrade the call to Inherit_TSD according to the
27291 new interface: the first formal is now a Tag.
27292
27293 * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
27294 redefined as a Tag.
27295 This change allows us to remove the subprogram Get_TSD.
27296 (CPP_Get_TSD): Subprogram removed.
27297 (TSD): Replace the call to CPP_Get_TSD by the actual code.
27298
27299 * rtsfind.ads: Remove support to call the run-time
27300 subprogram Get_TSD
27301
273022005-03-29 Robert Dewar <dewar@adacore.com>
27303
da8f5fd9 27304 * errutil.adb, errout.adb:
5db8bc34
AC
27305 Minor comment updates on Line_Terminator references
27306
27307 * par-ch10.adb: Add ??? comment about line terminator
27308
27309 * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
27310 (check dos line terminator).
27311 (Check_Line_Max_Length): New procedure, split off from the existing
27312 Check_Line_Terminator routine. Separating this out allows -gnatyf to
27313 be properly recognized.
27314
27315 * styleg.adb: Add ??? comment for line terminator reference
27316
27317 * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
27318 (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
27319
27320 * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
27321 (check dos line terminator).
27322 (Check_Line_Max_Length): New procedure, split off from the existing
27323 Check_Line_Terminator routine. Separating this out allows -gnatyf to
27324 be properly recognized.
27325
da8f5fd9 27326 * stylesw.ads, stylesw.adb:
5db8bc34
AC
27327 Add handling for new -gnatyd switch (check dos line terminator)
27328
27329 * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
27330 Recognize -gnatwb/-gnatwB switches
27331 Include Warn_On_Bad_Fixed_Value for -gnatg
27332
da8f5fd9 27333 * usage.adb:
5db8bc34
AC
27334 Add line for new -gnatyd switch (check dos line terminator)
27335
27336 * usage.adb: Add lines for -gnatwb/-gnatwB
27337
27338 * vms_data.ads: Add entry for NOCRLF (-gnatyd)
27339
27340 * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
27341
27342 * gnat_ugn.texi: Fix overlong lines
27343 Document new -gnatyd switch
27344 Document new -gnatwb/-gnatwB switches
27345
273462005-03-29 Ed Schonberg <schonberg@adacore.com>
27347
27348 * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
27349 order to retrieve the component list of the type, before examining
27350 individual components.
27351
27352 * sem_type.adb (Covers): Types are compatible if one is the base type
27353 of the other, even though their base types might differ when private
27354 views are involved.
27355
273562005-03-29 Thomas Quinot <quinot@adacore.com>
27357
27358 * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
27359 To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
27360 of using Set_Renaming_TSS. This ensures that the TSS bodies are not
27361 analyzed if expansion is disabled (which could otherwise cause spurious
27362 error messages if expansion has been disabled due to previous
27363 (unrelated) errors).
27364
27365 * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
27366 is disabled, the entity denoted by the argument is the access type
27367 itself, not an underlying record type, so there is no need to go back
27368 to the Corresponding_Remote_Type.
27369
273702005-03-29 Gary Dismukes <dismukes@adacore.com>
27371 Robert Dewar <dewar@adacore.com>
27372
27373 * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
27374 expand a call to an instance of
27375 Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
27376 Constructor actual of the instance. A class-wide membership
27377 check is also generated, to ensure that the tag passed to the instance
27378 denotes a type in the class.
27379 (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
27380 of Name_Generic_Dispatching_Constructor.
27381
27382 * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
27383 05 unit for AI-260-02).
27384
27385 * a-tgdico.ads: New file.
27386
27387 * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
27388 predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
27389
27390 * snames.ads, snames.adb (Preset_Names): Add entry for
27391 Generic_Dispatching_Constructor.
27392
27393 PR ada/20300
5db8bc34
AC
27394 * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
27395 character type cases.
27396 (Analyze_Subprogram_Renaming): Add special handling for
27397 the case of renaming of stream attributes when the renaming denotes a
27398 generic formal subprogram association for an abstract formal subprogram.
27399 Check that the attribute is a primitive stream attribute (and not
27400 a class-wide stream attribute) and then rewrite the attribute name
27401 as the name of the appropriate compiler-generated stream primitive.
27402
274032005-03-29 Robert Dewar <dewar@adacore.com>
27404
27405 * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
27406 recursive calls.
27407 (Is_Possibly_Unaligned_Object): Correct typo that
27408 resulted in inaccurate result for unaligned scalars within records.
27409
274102005-03-29 Ed Schonberg <schonberg@adacore.com>
27411
27412 * freeze.adb (Freeze_Record_Type): If the type of the component is an
27413 itype whose parent is controlled and not yet frozen, do not create a
27414 freeze node for the itype if expansion is disabled.
27415
274162005-03-29 Vincent Celier <celier@adacore.com>
27417
27418 * make.adb (Gnatmake): Don't fail if the main project file is declared
27419 as having no Ada sources. Do not display message "no sources to
27420 compile" in quiet output.
27421
274222005-03-29 Doug Rupp <rupp@adacore.com>
27423
27424 * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
27425 extra tools.
27426
274272005-03-29 Robert Dewar <dewar@adacore.com>
27428
27429 * par-ch12.adb (P_Generic): Give better msg for illegal private generic
27430 child.
27431
274322005-03-29 Robert Dewar <dewar@adacore.com>
27433
27434 * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
27435 missing TYPE Improve the error message generated when compiling a
27436 limited interface in Ada83 or Ada95 mode.
27437
274382005-03-29 Robert Dewar <dewar@adacore.com>
27439
27440 * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
27441 rather than proceed ahead using a junk attribute name.
27442
274432005-03-29 Vincent Celier <celier@adacore.com>
27444
27445 * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
27446
27447 * prj-part.adb (Parse_Single_Project): Set the location of a project
27448 on its defining identifier, rather than on the reserved word "project".
27449
27450 * prj-proc.adb (Expression): Adapt to the fact that default of external
27451 references may be string expressions, not always literal strings.
27452 (Recursive_Process): Set Display_Name equal to Name
27453 when Location is No_Location, that is when there is no actual file.
27454 Get the Display_Name of the project from the source, when it is not a
27455 virtual project.
27456 (Process): Use the Display_Name in error messages
27457
27458 * prj-strt.adb (External_Reference): Allow default to be string
27459 expressions, not only literal strings.
27460
274612005-03-29 Vincent Celier <celier@adacore.com>
27462
27463 * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
27464 file and the reference symbol file to be the same file.
27465
274662005-03-29 Thomas Quinot <quinot@adacore.com>
27467
27468 * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
27469 forbid conversion of a local access-to-subprogram type to a remote one.
27470
27471 * sem_util.adb (Wrong_Type): For a record type that is the expanded
27472 equivalent type for a remote access-to-subprogram type, go back to the
27473 original RAS entity when displaying an error message, so the casing is
27474 the original source casing.
27475
274762005-03-29 Robert Dewar <dewar@adacore.com>
27477
27478 * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
27479 on param update.
27480
274812005-03-29 Ed Schonberg <schonberg@adacore.com>
27482
27483 * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
27484 subtype if code is being pre-analyzed, to prevent un-expanded
27485 references to protected formals, among others.
27486 (Analyze_Explicit_Dereference): If the overloaded prefix includes some
27487 interpretation that can be a call, include the result of the call as a
27488 possible interpretation of the dereference.
27489
27490 * sem_ch5.adb (Process_Bounds): Determine type of range by
27491 pre-analyzing a copy of the original range, and then analyze the range
27492 with the expected type.
27493
27494 * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
27495 with an overloaded prefix where not all interpretations yield an
27496 access to subprogram, do not rewrite node as a call.
27497 (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
27498 the node as a call once the context identifies the interpretation of
27499 the prefix whose call yields the context type.
27500 (Valid_Conversion): For the case of a conversion between
27501 local access-to-subprogram types, check subtype conformance using
27502 Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
27503 detailed error message.
27504
275052005-03-29 Ed Schonberg <schonberg@adacore.com>
27506
27507 * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
27508 indicator, indicate that the formal can never be null.
27509 (Process_Formals): If a formal has a non_null indicator, insert the
27510 resulting subtype immediately before the enclosing subprogram decl,
27511 and not at the beginning of the corresponding declarative part, to
27512 prevent access before elaboration (Ada2005).
27513
275142005-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27515
27516 PR ada/19956
27517 * utils.c (finish_record_type): Use variable_size when setting sizes.
27518
275192005-03-29 Robert Dewar <dewar@adacore.com>
27520
27521 * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
27522 guarantee Unix style line terminators for the output files, even when
27523 running on windows.
27524
275252005-03-29 Robert Dewar <dewar@adacore.com>
27526
27527 * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
27528 buffer if an exception is raised.
27529
275302005-03-29 Ed Falis <falis@adacore.com>
27531
27532 * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
27533 VxWorks 653 1.4
27534
275352005-03-29 Robert Dewar <dewar@adacore.com>
27536
27537 * sem_util.ads: Minor reformatting
27538 * gnat_rm.texi: Minor editing.
27539
275402005-03-29 Eric Botcazou <ebotcazou@adacore.com>
27541
27542 * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
27543 * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
27544
aad9ff31
AL
275452005-03-24 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
27546
27547 * adaint.c (__gnat_portable_spawn): Adjust cast.
27548
d101034c
JM
275492005-03-23 Joseph S. Myers <joseph@codesourcery.com>
27550
27551 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
27552
3a0c4f5a
AC
275532005-03-17 Pascal Obry <obry@adacore.com>
27554
27555 * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
27556 used.
27557
27558 * expect.c (__gnat_waitpid): Moved here from adaint.c.
27559 Reimplement under Win32 using Win32 API.
27560
27561 (__gnat_kill) [Win32]: Properly close the process handle before leaving
27562 this routine.
27563
275642005-03-17 Eric Botcazou <ebotcazou@adacore.com>
27565
27566 * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
27567 (DECL_RENAMED_OBJECT): New accessor macro.
27568 (SET_DECL_RENAMED_OBJECT): New setter macro.
27569
27570 * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
27571 object in all cases. Attach the renamed object to the VAR_DECL.
27572 (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
27573 field is not prescribed.
27574
27575 * misc.c (gnat_handle_option): Handle -gnatO separately.
27576 (gnat_print_decl) <VAR_DECL>: New case.
27577 Print the DECL_RENAMED_OBJECT node.
27578
27579 * lang.opt: Declare separate -gnatO option.
27580
27581 * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
27582 pointer, replace it with the renamed object.
27583 <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
27584 pointer type if the source is not a fat pointer type whose underlying
27585 array has the same non-zero alias set as that of the destination array.
27586
275872005-03-17 Javier Miranda <miranda@adacore.com>
27588
27589 * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
27590 (Get_Inheritance_Depth): Removed.
27591 (Set_Inheritance_Depth): Removed.
27592
27593 * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
27594 subprogram Get_Expanded_Name because it is not referenced by the
27595 frontend.
27596
27597 * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
27598 (CPP_Get_Inheritance_Depth): Removed.
27599 (CPP_Set_Inheritance_Depth): Removed.
27600
27601 * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
27602
276032005-03-17 Robert Dewar <dewar@adacore.com>
27604
27605 * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
27606 3, since we now expect GCC 3 to do all the work.
27607
276082005-03-17 Javier Miranda <miranda@adacore.com>
27609
27610 * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
27611 of one barrier to avoid wrong usage of this attribute.
27612
27613 * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
27614 First_Private_Entity.
27615
27616 * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
27617 the subprogram against wrong usage.
27618 Adapt the code to traverse the entities in the
27619 scope of a record_type because in addition to its usage regarding
27620 packages, this subprogram is also called by Expand_N_Freeze_Entity
27621 to install the visible declarations of the enclosing scope of a
27622 record_type_with_private to establish the proper visibility before
27623 freezing the entity and related subprograms.
27624
276252005-03-17 Ed Schonberg <schonberg@adacore.com>
27626
27627 * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
27628 entry formals.
27629
276302005-03-17 Thomas Quinot <quinot@adacore.com>
27631
27632 * exp_ch3.adb (Check_Attr): New subprogram.
27633 (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
27634 into a new Check_Attr subprogram, in order to provide a more
27635 explanatory error message (including the name of the missing attribute).
27636 (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
27637 subprogram determines whether a default implementation exists for a
27638 given stream attribute.
27639 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
27640 Determine whether to generate a default implementation for each stream
27641 attribute separately, as this depends on the specific attribute.
27642
27643 * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
27644 limited extension where a stream attribute is missing for a limited
27645 component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
27646 generate a bogus reference to the missing attribute to prevent
27647 cascaded errors. Instead, generate a null statement.
27648
27649 * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
27650 available for a limited type if it has been specified for an ancestor
27651 of the type.
27652
276532005-03-17 Ed Schonberg <schonberg@adacore.com>
27654
27655 * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
27656 entity is an operator.
27657
276582005-03-17 Thomas Quinot <quinot@adacore.com>
27659
27660 * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27661 spec, to make this predicate available to other units.
27662
27663 * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
27664 reimplementing it.
27665
27666 * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
27667 when no distribution runtime library is available.
27668
27669 * sem_res.adb, sem_dist.adb: Disable expansion of remote
27670 access-to-subprogram types when no distribution runtime library is
27671 available.
27672 (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
27673 predicate available to other units.
27674
27675 * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27676 spec, to make this predicate available to other units.
27677
276782005-03-17 Vincent Celier <celier@adacore.com>
27679
27680 * make.adb (Insert_Project_Sources): Make sure the Q is always
27681 initialized.
27682
27683 * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
27684 the default for the tree, not the global default naming.
27685
27686 * prj-proc.adb (Recursive_Process): No need to put the default naming
27687 in the project data, it's already there.
27688
276892005-03-17 Doug Rupp <rupp@adacore.com>
27690
27691 * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
27692
6f7f72f9
EB
27693 * 5xcrtl.ads: Renamed to...
27694 * s-crtl-vms64.ads: ...this new file
3a0c4f5a
AC
27695
276962005-03-17 Robert Dewar <dewar@adacore.com>
27697
27698 PR ada/19519
3a0c4f5a
AC
27699 * namet.adb (Copy_One_Character): Set proper wide character encoding
27700 for upper half character if we have upper half encoding.
27701
277022005-03-17 Robert Dewar <dewar@adacore.com>
27703
27704 * par.adb (Par): Improved msg for attempt to recompile predefined unit
27705
277062005-03-17 Thomas Quinot <quinot@adacore.com>
27707
27708 * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
27709 tagged limited type, the TSS is a newly built renaming declaration:
27710 insert it using Set_TSS, not Copy_TSS.
27711
277122005-03-17 Javier Miranda <miranda@adacore.com>
27713
27714 * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
27715 Try_Object_Operation): Analyze the object that is accessible
27716 through the prefix of the subprogram call before we apply
27717 the transformation of the object-operation notation.
27718
277192005-03-17 Jose Ruiz <ruiz@adacore.com>
27720
27721 * s-taprob.adb (Initialize_Protection): Initialize the protected
27722 object's owner to Null_Task.
27723 (Lock): If pragma Detect_Blocking is in effect and the caller of this
27724 procedure is already the protected object's owner then Program_Error
27725 is raised. In addition the protected object's owner is updated.
27726 (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
27727 of this procedure is already the protected object's owner then
27728 Program_Error is raised.
27729 In addition the protected object's owner is updated.
27730 (Unlock): Remove the ownership of the protected object.
27731
27732 * s-taprob.ads (Protection): Add the field Owner, used to store the
27733 protected object's owner.
27734 This component is needed for detecting one type of potentially blocking
27735 operations (external calls on a protected subprogram with the same
27736 target object as that of the protected action). Document the rest of
27737 the components.
27738
27739 * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
27740 Initialize the protected object's owner to Null_Task.
27741 (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
27742 caller of this procedure is already the protected object's owner then
27743 Program_Error is raised.
27744 Do not raise Program_Error when this procedure is called from a
27745 protected action.
27746 (Unlock_Entries): Remove the ownership of the protected object.
27747 (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
27748 of this procedure is already the protected object's owner then
27749 Program_Error is raised.
27750 Do not raise Program_Error when this procedure is called from
27751 a protected action.
27752
27753 * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
27754 used to store the protected object's owner.
27755
27756 * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
27757 effect and this procedure (a potentially blocking operation) is called
27758 from whithin a protected action, Program_Error is raised.
27759 (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
27760 and this procedure (a potentially blocking operation) is called from
27761 whithin a protected action, Program_Error is raised.
27762
277632005-03-17 Vincent Celier <celier@adacore.com>
27764 Nicolas Setton <setton@adacore.com>
27765
27766 * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
27767 switch, not supported by the linker on Darwin. Add '_' before
27768 <library>init, as this character is added unconditionally by the
27769 compiler.
27770 (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
27771 correct one ".dylib". This fixes detection of the archive files when
27772 building library projects.
27773
277742005-03-17 Vincent Celier <celier@adacore.com>
27775
27776 * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
27777 -gnat83, -gnat95 and -gnat05.
27778
277792005-03-17 Vasiliy Fofanov <fofanov@adacore.com>
27780
27781 * gnat_ugn.texi: Document gnatmem restriction
27782
277832005-03-17 Thomas Quinot <quinot@adacore.com>
27784
27785 * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
27786 cleanup
27787
277882005-03-17 Robert Dewar <dewar@adacore.com>
27789
27790 * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
27791 a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
27792 s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
27793
27794 * casing.adb: Comment improvements
27795
277962005-03-17 Pascal Obry <obry@adacore.com>
27797
27798 * g-expect.adb: Minor reformatting.
27799
a1286ef5
ZW
278002005-03-15 Zack Weinberg <zack@codesourcery.com>
27801
27802 * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
27803 (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
27804 to dependencies.
27805
2532808d
VC
278062005-03-15 Vincent Celier <celier@adacore.com>
27807
a1286ef5
ZW
27808 * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
27809 Add new parameter In_Tree to specify the project tree: needed
27810 by the project manager. Adapt to changes in project manager
27811 using new parameter In_Tree.
2532808d 27812
e2d6b9b9
JJ
278132005-03-15 Jakub Jelinek <jakub@redhat.com>
27814
27815 * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
27816 ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
27817 ada/bldtools to avoid make -jN failures.
27818
813edff1
EB
278192005-03-15 Eric Botcazou <ebotcazou@adacore.com>
27820
27821 * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
27822 to NULL_TREE on entry.
27823
4f51c6e7
AC
278242005-03-15 Robert Dewar <dewar@adacore.com>
27825
27826 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
27827 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
27828 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
27829 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
27830 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
27831 system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
27832 system-interix.ads, system-solaris-sparc.ads,
27833 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
27834 system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
27835 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
27836 system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
27837 system-linux-s390.ads, system-linux-s390x.ads: Add line defining
27838 Compiler_System_Version to be False.
27839
27840 * opt.ads: Add new flag Opt.Address_Is_Private
27841
27842 * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
27843 Add new parameter Compiler_System_Version to avoid checking for
27844 completeness of parameters when compiler is compiling itself.
27845 Allows old versions of GNAT to be compiled with new compiler.
27846
278472005-03-15 Eric Botcazou <ebotcazou@adacore.com>
27848
27849 * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
27850 (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
27851 calling thread.
27852 (Stack_Base_Available): New flag.
27853 (Get_Page_Size): New overloaded functions imported from C.
27854 (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
27855 PROT_ON, PROT_OFF): New constants.
27856 (mprotect): New function imported from C.
27857 (pthread_teb_t): New record type.
27858
27859 * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
27860 (Create_Task): Account for the Yellow Zone and the guard page.
27861
278622005-03-15 Vincent Celier <celier@adacore.com>
27863
27864 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
27865 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
27866 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
27867 mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
27868 Library_File_Name_For): Add new parameter In_Tree
27869 to specify the project tree: needed by the project manager.
27870 Adapt to changes in project manager using new parameter In_Tree.
27871 Remove local imports, use functions in System.CRTL.
27872
27873 * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
27874 to use the project manager.
27875
27876 * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
27877 In_Tree to designate the project tree. Adapt to changes in the project
27878 manager, using In_Tree.
27879
27880 * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
27881 Copy_Interface_Sources): Add new parameter In_Tree to specify the
27882 project tree: needed by the project manager.
27883 (Build_Library): Check that Arg'Length >= 6 before checking if it
27884 contains "--RTS=...".
27885
27886 * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
27887 Library_File_Name_For): Add new parameter In_Tree to specify the
27888 project tree: needed by the project manager.
27889
27890 * prj.ads, prj.adb: Major modifications to allow several project trees
27891 in memory at the same time.
27892 Change tables to dynamic tables and hash tables to dynamic hash
27893 tables. Move tables and hash tables from Prj.Com (in the visible part)
27894 and Prj.Env (in the private part). Move some constants from the visible
27895 part to the private part. Make other constants deferred.
27896 (Project_Empty): Make it a variable, not a function
27897 (Empty_Project): Add parameter Tree. Returns the data with the default
27898 naming data of the project tree Tree.
27899 (Initialize): After updating Std_Naming_Data, copy its value to the
27900 component Naming of Project Empty.
27901 (Register_Default_Naming_Scheme): Use and update the default naming
27902 component of the project tree, instead of the global variable
27903 Std_Naming_Data.
27904 (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
27905 Tree is not defaulted, return the default naming data of the Tree.
27906 (Initial_Buffer_Size): Constant moved from private part
27907 (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
27908 variables initialized in procedure Initialize.
27909 (Add_To_Buffer): Add two in out parameters to replace global variables
27910 Buffer and Buffer_Last.
27911 (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
27912 functions.
27913 Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
27914 hash tables.
27915 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
27916 for the project tree.
27917 (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
27918 constant at the beginning of the package spec, so that they cane be used
27919 in subprograms before their full declarations.
27920 (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
27921 (Empty_Project): Add parameter of type Project_Node_Ref
27922 (Private_Project_Tree_Data): Add component Default_Naming of type
27923 Naming_Data.
27924 (Buffer, Buffer_Last): remove global variables
27925 (Add_To_Buffer): Add two in out parameters to replace global variables
27926 Buffer and Buffer_Last.
27927 (Current_Packages_To_Check): Remove global variable
27928 (Empty_Name): Move to private part
27929 (No-Symbols): Make it a constant
27930 (Private_Project_Tree_Data): New type for the private part of the
27931 project tree data.
27932 (Project_Tree_Data): New type for the data of a project tree
27933 (Project_Tree_Ref): New type to designate a project tree
27934 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
27935 for the project tree.
27936
27937 * prj-attr.ads: Add with Table; needed, as package Prj no longer
27938 imports package Table.
27939
27940 * prj-com.adb: Remove empty, no longer needed body
27941
27942 * prj-com.ads: Move most of the content of this package to package Prj.
27943
27944 * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
27945 designate the project node tree and Packages_To_Check to replace
27946 global variable Current_Packages_To_Check.
27947 Add new parameters In_Tree and Packages_To_Check to local subprograms,
27948 when needed. Adapt to changes in project manager with project node tree
27949 In_Tree.
27950
27951 * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
27952 project tree to most subprograms. Move tables and hash tables to
27953 private part of package Prj.
27954 Adapt to changes in project manager using project tree In_Tree.
27955
27956 * prj-makr.adb (Tree): New constant to designate the project node tree
27957 Adapt to change in project manager using project node tree Tree
27958
27959 * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
27960 display the Library_Src_Dir and the Library_Dir.
27961 Add new parameter In_Tree to designate the project node tree to most
27962 subprograms. Adapt to changes in the project manager, using project tree
27963 In_Tree.
27964 (Check_Naming_Scheme): Do not alter the casing on platforms where
27965 the casing of file names is not significant.
27966 (Check): Add new parameter In_Tree to designate the
27967
27968 * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
27969 designate the project tree.
27970 Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
27971
27972 * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
27973 to replace those that were in the private part of package Prj.
27974 Add new parameter In__Tree to designate the project node tree to most
27975 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
27976 (Post_Parse_Context_Clause): When specifying the project node of a with
27977 clause, indicate that it is a limited with only if there is "limited"
27978 in the with clause, not necessarily when In_Limited is True.
27979 (Parse): Add new parameter In_Tree to designate the project node tree
27980
27981 * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
27982 designate the project node tree. Adapt to change in Prj.Tree with
27983 project node tree In_Tree.
27984
27985 * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
27986 tree In_Tree in the call to function Empty_Process to give its initial
27987 value to the project data Processed_Data.
27988 Add new parameters In_Tree to designate the project tree and
27989 From_Project_Node_Tree to designate the project node tree to several
27990 subprograms. Adapt to change in project manager with project tree
27991 In_Tree and project node tree From_Project_Node_Tree.
27992
27993 * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
27994 to replace those that were in the private part of package Prj.
27995 Add new parameter In_Tree to designate the project node tree to most
27996 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
27997
27998 * prj-tree.ads, prj-tree.adb: Add new parameter of type
27999 Project_Node_Tree_Ref to most subprograms.
28000 Use this new parameter to store project nodes in the designated project
28001 node tree.
28002 (Project_Node_Tree_Ref): New type to designate a project node tree
28003 (Tree_Private_Part): Change table to dynamic table and hash tables to
28004 dynamic hash tables.
28005
28006 * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
28007 the project tree to most subprograms. Adapt to changes in project
28008 manager using project tree In_Tree.
28009
28010 * makegpr.adb (Project_Tree): New constant needed to use project
28011 manager.
28012
280132005-03-15 Olivier Hainque <hainque@adacore.com>
28014
28015 * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
28016 for sigactions with SA_SIGINFO set. Call
28017 __gnat_adjust_context_for_raise before raising, to perform the
28018 potentially required adjustments to the machine context for the GCC
28019 unwinder.
28020
28021 * raise.h (__gnat_adjust_context_for_raise): New prototype.
28022
28023 * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
28024 Adjust PC by one in the provided machine context.
28025 (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
28026 so that the handler is passed the context structure to adjust prior to
28027 the raise.
28028 (__gnat_error_handler) HPUX: Adjust the signature to match what an
28029 SA_SIGINFO sigaction should look like. Call
28030 __gnat_adjust_context_for_raise before actually raising.
28031 (__gnat_adjust_context_for_raise): Default noop to help PC
28032 adjustments before raise from signal handlers.
28033 (__gnat_error_handler): Indirectly call a predicate function to
28034 determine if a condition should be resignaled or not.
28035 (__gnat_set_resignal_predicate): User interface to modify the predicate.
28036 (__gnat_default_resignal_p): Default GNAT predicate.
28037
280382005-03-15 Doug Rupp <rupp@adacore.com>
28039
28040 * adaint.c: Prefix #include of VMS system header files with vms/
28041 [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
28042 Do not define a dummy function "convert_addresses" under Darwin,
28043 not needed.
28044
28045 * tb-alvms.c, expect.c: Prefix #include of VMS system header files
28046 with vms/
28047
280482005-03-15 Nicolas Setton <setton@adacore.com>
28049
28050 * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
28051 PPC/AIX.
28052
280532005-03-15 Robert Dewar <dewar@adacore.com>
28054
28055 * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
28056 AI-386.
28057
28058 * a-retide.ads: Minor comment changes
28059
280602005-03-15 Robert Dewar <dewar@adacore.com>
28061
28062 * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
28063 a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
28064 Realloc_For_Chunk to private part of package.
28065 New subprograms for AI-301
28066
28067 * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
28068 Get_Line procedure.
28069 Avoid unnecessary use of Get/Set_Wide_String
28070
280712005-03-15 Robert Dewar <dewar@adacore.com>
28072
28073 PR ada/13470
a1286ef5 28074 * a-stunau.ads, a-stunau.adb:
4f51c6e7
AC
28075 Change interface to allow efficient (and correct) implementation
28076 The previous changes to allow extra space in unbounded strings had
28077 left this interface a bit broken.
28078
28079 * a-suteio.adb: Avoid unnecessary use of Get/Set_String
28080
28081 * g-spipat.ads, g-spipat.adb: New interface for Get_String
28082 Minor reformatting (function specs)
28083
28084 * g-spitbo.adb: New interface for Get_String
28085
28086 * g-spitbo.ads: Minor reformatting
28087
28088 * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
28089
28090 * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
28091
280922005-03-15 Javier Miranda <miranda@adacore.com>
28093 Robert Dewar <dewar@adacore.com>
28094 Thomas Quinot <quinot@adacore.com>
28095 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28096
28097 * atree.ads, atree.adb: Add support for Elist24 field
28098
28099 * atree.h: Fix wrong definition of Field27
28100 Add support for Elist16 field
28101 Add support for Elist24 field
28102
28103 * einfo.ads, einfo.adb (Abstract_Interfaces,
28104 Set_Abstract_Interfaces): New subprograms.
28105 (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
28106 subprograms.
28107 (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
28108 entities rather than a single node.
28109 (Is_Interface, Set_Is_Interface): New subprogram
28110 (First_Tag_Component): New syntesized attribute
28111 (Next_Tag_Component): New synthesized attribute
28112 (Write_Entity_Flags): Upgraded to write Is_Interface
28113 (Write_Field24_Name): Upgraded to write Abstract_Interfaces
28114 (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
28115 (Task_Body_Procedure): New subprogram to read this attribute.
28116 (Set_Task_Body_Procedure): New subprogram to set this attribute.
28117 (Has_Controlled_Component): Now applies to all entities.
28118 This is only a documentation change, since it always worked to apply
28119 this to other than composite types (yielding false), but now this is
28120 official.
28121 Update documentation on Must_Be_Byte_Aligned for new spec
28122
28123 * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
28124 exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
28125 uses of the Access_Disp_Table attribute to reference the first dispatch
28126 table associated with a tagged type. As
28127 part of the implementation of abstract interface types,
28128 Access_Disp_Table has been redefined to contain a list of dispatch
28129 tables (rather than a single dispatch table).
28130 Similarly, upgrade all the references to Tag_Component by the
28131 new attribute First_Tag_Component.
28132 (Find_Inherited_TSS): Moved to exp_tss.
28133 Clean up test in Expand_N_Object_Declaration for cases
28134 where we need to do a separate assignment of the initial value.
28135 (Expand_N_Object_Declaration): If the expression in the
28136 declaration of a tagged type is an aggregate, no need to generate an
28137 additional tag assignment.
28138 (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
28139 is to be deleted.
28140 Bit packed array ops are only called if operands are known to be
28141 aligned.
28142 (Component_Equality): When returning an N_Raise_Program_Error statement,
28143 ensure that its Etype is set to Empty to avoid confusing GIGI (which
28144 expects that only expressions have a bona fide type).
28145 (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
28146 determine the amount of data to be copied.
28147
28148 * par.adb (P_Interface_Type_Definition): New subprogram that parses the
28149 new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
28150 INTERFACE_TYPE_DEFINITION ::=
28151 [limited | task | protected | synchronized] interface
a1286ef5 28152 [AND interface_list]
4f51c6e7
AC
28153
28154 * par-ch3.adb (P_Type_Declaration): Modified to give support to
28155 interfaces.
28156 (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
28157 interfaces.
28158 (P_Interface_Type_Definition): New subprogram that parses the new
28159 syntax rule of Ada 2005 interfaces
28160 (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
28161 messages by the correct RENAMES (quotes removed).
28162
28163 * sem_prag.adb: Upgrade all the references to Tag_Component by the new
28164 attribute First_Tag_Component.
28165
28166 * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
28167 (Interface_List, Set_Interface_List): New subprograms.
28168 (Interface_Present, Set_Interface_Present): New subprograms.
28169 (Limited_Present, Set_Limited_Present): Available also in derived
28170 type definition nodes.
28171 (Protected_Present, Set_Protected_Present): Available also in
28172 record type definition and
28173 derived type definition nodes.
28174 (Synchronized_Present, Set_Synchronized_Present): New subprograms.
28175 (Task_Present, Set_Task_Present): New subprogram.
28176 (Task_Body_Procedure): Removed.
28177 (Set_Task_Body_Procedure): Removed.
28178 These subprogram have been removed because the attribute
28179 Task_Body_Procedure has been moved to the corresponding task type
28180 or task subtype entity to leave a field free to store the list
28181 of interfaces implemented by a task (for AI-345)
28182 Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
28183 (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
28184 expression flag Do_Range_Check
28185 (Exception_Junk): Change to Flag7 to accomodate above change
28186 (Box_Present, Default_Name, Specification, Set_Box_Present,
28187 Set_Default_Name, Set_Specification): Expand the expression
28188 "X in N_Formal_Subprogram_Declaration" into the corresponding
28189 two comparisons. Required to use the csinfo tool.
28190
28191 * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
28192 "with string" given.
28193
a1286ef5
ZW
28194 * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
28195 expression given.
4f51c6e7
AC
28196
28197 * par-ch11.adb (P_Raise_Statement): Recognize with string expression
28198 in 2005 mode
28199
28200 * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
28201 attribute Task_Body_Procedure rather than the old semantic field that
28202 was available in the task_type_declaration node.
28203
28204 * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
28205 interface type definitions.
28206 (P_Formal_Derived_Type_Definition): Modified to handle the list of
28207 interfaces.
28208
28209 * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
28210 task type declaration.
28211 (P_Protected): Modified to handle the list of interfaces in a
28212 protected type declaration.
28213
282142005-03-15 Doug Rupp <rupp@adacore.com>
28215 Vincent Celier <celier@adacore.com>
28216
28217 * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
28218 (Gen_Output_File_C): Likewise.
28219 (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
28220
282212005-03-15 Thomas Quinot <quinot@adacore.com>
28222
28223 * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
28224 is an N_Raise_Constraint_Error node, create a new copy of it without
28225 going through a call to Duplicate_Subexpr.
28226
282272005-03-15 Eric Botcazou <ebotcazou@adacore.com>
28228 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28229 Nicolas Setton <setton@adacore.com>
28230 Ed Schonberg <schonberg@adacore.com>
28231
28232 PR ada/19900
28233 PR ada/19408
28234 PR ada/19140
28235 PR ada/20255
4f51c6e7
AC
28236 * decl.c (gnat_to_gnu_field): Reject aliased components with a
28237 representation clause that prescribes a size not equal to the rounded
28238 size of their types.
28239 (gnat_to_gnu_entity, case E_Component): Always look at
28240 Original_Record_Component if Present and not the entity.
28241 (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
28242 of tagged extension types by not making field for components that are
28243 inside the parent.
28244 (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
28245 (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
28246 expression to the type of the object when the object is constant.
28247 Reverse defer_debug_incomplete_list before traversing it, so that trees
28248 are processed in the order at which they were added to the list. This
28249 order is important when using the stabs debug format.
28250 If we are deferring the output of debug information, also defer this
28251 output for a function return type.
28252 When adding fields to a record, prevent emitting debug information
28253 for incomplete records, emit the information only when the record is
28254 complete.
28255 (components_to_record): New parameter defer_debug.
28256 (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
28257 (gnat_to_gnu_field_decl): New function.
28258 (substitution_list, annotate_rep): Call it.
28259 (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
28260 (gnat_to_gnu_entity, case E_Record_Type): Likewise.
28261 No longer update discriminants to not be a COMPONENT_REF.
28262 (copy_alias_set): Strip padding from input type; also handle
28263 unconstrained arrays properly.
28264
28265 * gigi.h (write_record_type_debug_info): New function.
28266 Convert to use ANSI-style prototypes. Remove unused
28267 declarations for emit_stack_check, elab_all_gnat and
28268 set_second_error_entity.
28269 (gnat_to_gnu_field_decl): New decl.
28270
28271 * utils.c (write_record_type_debug_info): New function.
28272 (finish_record_type): Delegate generation of debug information to
28273 write_record_type_debug_info.
28274 (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
28275 (update_pointer_to): Fix pasto.
28276 (convert) <UNION_TYPE>: Accept slight type variations when
28277 converting to an unchecked union type.
28278
28279 * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
28280 replace the N_Freeze_Entity with a null statement.
28281
28282 * freeze.adb (Freeze_Expression): If the freeze nodes are generated
28283 within a constrained subcomponent of an enclosing record, place the
28284 freeze nodes in the scope stack entry for the enclosing record.
28285 (Undelay_Type): New Subprogram.
28286 (Set_Small_Size): Pass T, the type to modify; all callers changed.
28287 (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
28288 within records; allow them to have freeze nodes if their base types
28289 aren't frozen yet.
28290
017205f5
EB
28291 * exp_util.adb (Remove_Side_Effects): Properly test for
28292 Expansion_Delayed and handle case when it's inside an
28293 N_Qualified_Expression.
28294
4f51c6e7
AC
28295 * sem_ch3.adb (Derived_Type_Declaration): New predicate
28296 Comes_From_Generic, to recognize accurately that the parent type in a
28297 derived type declaration can be traced back to a formal type, because
28298 it is one or is derived from one, or because its completion is derived
28299 from one.
28300 (Constrain_Component_Type): If component comes from source and has no
28301 explicit constraint, no need to constrain in in a subtype of the
28302 enclosing record.
28303 (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
28304 Minor change to propagate Is_Ada_2005 flag
28305
28306 * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
28307 Expansion_Delayed is False.
28308 (assoc_to_constructor): Ignore fields that have a
28309 Corresponding_Discriminant.
28310 (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
28311 function returns "by target", dereference the target pointer using the
28312 type of the actual return value.
28313 <all>: Be prepared for a null gnu_result.
28314 (processed_inline_subprograms): Check flag_really_no_inline
28315 instead of flag_no_inline.
28316 (set_second_error_entity): Remove unused function.
28317 (gnat_to_gnu, case N_Selected_Component): Call
28318 gnat_to_gnu_field_decl.
28319 (assoc_to_constructor): Likewise.
28320
283212005-03-15 Robert Dewar <dewar@adacore.com>
28322 Ed Schonberg <schonberg@adacore.com>
28323 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28324
4f51c6e7
AC
28325 * exp_pakd.adb (Create_Packed_Array_Type): Do not set
28326 Must_Be_Byte_Aligned for cases where we do not need to use a
28327 System.Pack_nn unit.
28328
28329 * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
28330 as procedures.
28331 Needed now that we do some processing for IN parameters as well. This
28332 may well fix some unrelated errors.
28333 (Expand_Call): Handle case of unaligned objects (in particular those
28334 that come from packed arrays).
28335 (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
28336 renamed entity is an inherited operation, re-expand the call using the
28337 original operation, which is the one to call.
28338 Detect attempt to inline parameterless recursive subprogram.
28339 (Represented_As_Scalar): Fix to work properly with private types
28340 (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
28341 accurate estimate. Yields True in far fewer cases than before,
28342 improving the quality of code that depends on this test.
4f51c6e7
AC
28343
28344 * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
28345 over both visible and private declarations to remove them from tree,
28346 and mark subprograms declared in package as eliminated, to prevent
28347 spurious use in subsequent compilation of generic units in the context.
28348
28349 * exp_util.ads: Minor cleanup in variable names
28350
28351 * sem_eval.ads, sem_eval.adb: Minor reformatting
28352 (Compile_Time_Known_Bounds): New function
28353
283542005-03-15 Ed Schonberg <schonberg@adacore.com>
28355
28356 * exp_ch7.adb (Convert_View): Use base types of underlying types when
28357 determining whether an unchecked conversion is needed for the argument
28358 of an initialization call.
28359
283602005-03-15 Ed Schonberg <schonberg@adacore.com>
28361
28362 * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
28363 that appears in the instantiation rather than the internal subtype
28364 generated in the wrapper package, to avoid anomalies in gigi when the
28365 target is derived from a private type whose full view is an access type.
28366
283672005-03-15 Robert Dewar <dewar@adacore.com>
28368
28369 * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
28370 not needed.
28371 Add documentation to replace the use of this flag
28372 Fix kludge for Maximum_Alignment on x86 so that it does not apply to
28373 the x86_64.
28374
283752005-03-15 Thomas Quinot <quinot@adacore.com>
28376
28377 * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
28378 here from exp_attr so it can be shared between exp_attr and exp_dist.
28379 (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
28380 all TSS names, not a subset thereof, and the previous name introduced
28381 an unnecessarily confusion that a distinction might exist between
28382 "OK" TSS names and some "not OK" TSS names.
28383
283842005-03-15 Doug Rupp <rupp@adacore.com>
28385
28386 * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
28387 Command_Name.
28388
283892005-03-15 Pascal Obry <obry@adacore.com>
28390 Eric Botcazou <ebotcazou@adacore.com>
28391
28392 PR ada/20226
28393 PR ada/20344
4f51c6e7
AC
28394 * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
28395 when IN_RTS. This is to work around a bootstrap path problem.
28396
28397 * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
28398 table and pass it to __gnat_install_SEH_handler().
28399 (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
28400
28401 * lang.opt: Fix specification of -fRTS=.
28402
284032005-03-15 Doug Rupp <rupp@adacore.com>
28404 Bernard Banner <banner@adacore.com>
28405 Vincent Celier <celier@adacore.com>
28406 Arnaud Charlet <charlet@adacore.com>
28407
28408 PR ada/6852
28409 This change works fine when gnatlib is built from the gcc directory,
28410 but does not work when using the libada Makefile, since GCC_FOR_TARGET
28411 is not passed to ada/Makefile.in, so more work is needed by a
28412 Makefile/configure expert.
28413
28414 * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
28415 set GMEM_LIB on ia64 linux to add optional support for gnatmem.
28416 Setup gnatlink switch -M for x86_64 linux, as it is already setup
28417 for Linux x86.
28418 (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
28419 Run ranlib on libgccprefix.a
28420 Define PREFIX_OBJS for Darwin, to build libgccprefix.
28421 (ADA_INCLUDE_SRCS): Split Ada packages.
28422
284232005-03-15 Robert Dewar <dewar@adacore.com>
28424
28425 * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
28426
28427 * impunit.adb: Add GNAT.UTF_32
28428
28429 * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
28430
28431 * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
28432 now uses GNAT.UTF_32).
28433
28434 * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
28435 capabilities for categorizing characters using Unicode categories
28436
284372005-03-15 Ed Schonberg <schonberg@adacore.com>
28438
28439 * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
28440 instantiation that has been rewritten as a package body, retrieve spec
28441 to generate proper name for implicit_with_clause.
28442 (Install_Parents): Recognize a parent that is an instantiation but has
28443 been rewritten as a package declaration during analysis.
28444
284452005-03-15 Javier Miranda <miranda@adacore.com>
28446 Ed Schonberg <schonberg@adacore.com>
28447
28448 * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
28449 parameter reported some error we immediately return. This improves the
28450 behaviour of the frontend in case of errors.
28451 (Install_Parent, Remove_Parent): Introduce new flag
28452 Parent_Unit_Visible, to preserve the proper visibility of the ultimate
28453 ancestor of a generic child unit, when the child is being instantiated.
28454 (Inline_Instance_Body): If we are compiling the private
28455 part or the body of a child unit, restore the proper visibility of the
28456 parents after compiling the instance body.
28457
284582005-03-15 Ed Schonberg <schonberg@adacore.com>
28459 Javier Miranda <miranda@adacore.com>
28460
28461 PR ada/15608
28462 * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
28463 of a private type, in which case it is underlying_type that denotes
28464 the proper task. Also modified to use the new entity attribute
28465 that is directly available in the task type and task subtype entities
28466 (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
28467 arrays when other dimensions than the first are constrained by
28468 discriminants of an enclosing record.
28469 (Insert_Explicit_Dereference): If the prefix is an indexed component or
28470 a combination of indexed and selected components, find ultimate entity
28471 and generate the appropriate reference for it, to suppress spurious
28472 warnings.
28473 (Note_Possible_Modification): If an entity name has no entity, return.
28474 (Is_Variable): A function call never denotes a variable.
28475 (Requires_Transient_Scope): For record types, recurse only on
28476 components, not on internal subtypes that may have been generated for
28477 constrained components.
28478
284792005-03-15 Ed Schonberg <schonberg@adacore.com>
28480
28481 * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
28482 Eliminated as candidates for resolution. Both efficient, and avoids
28483 anomalies with operators declared in deleted code.
28484 (Process_Implicit_Dereference_Prefix): Use this procedure whenever
28485 expansion is disabled (as when compiling a generic) to prevent spurious
28486 warnings on prefixes of selected components.
28487
284882005-03-15 Ed Schonberg <schonberg@adacore.com>
28489
28490 * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
28491 attached to a list before checking whether it appears in the private
28492 declarations of the current package.
28493 (Make_Inequality_Operator): Insert declaration in proper declarative
28494 list rather than just setting the Parent field, so that
28495 Is_Private_Declaration can handle it properly.
28496
284972005-03-15 Ed Schonberg <schonberg@adacore.com>
28498
28499 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
28500 a renaming a body, check that the renamed subprogram in not intrinsic.
28501 (Find_Direct_Name): If several use_visible entities hide
28502 each other, and the context is a predefined file compiled through
28503 rtsfind, keep only the entity that comes from a predefined file.
28504
285052005-03-15 Geert Bosch <bosch@adacore.com>
28506
28507 * s-fatgen.adb (Valid): Extend special exceptions to account for long
28508 long float padding to also cover AMD64 and IA64.
28509
285102005-03-15 Gary Dismukes <dismukes@adacore.com>
28511
28512 * s-imgwch.adb: Add with and use of Interfaces.
28513 (Img_Wide_Character): Change type of Val to Unsigned_16.
28514 (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
28515
285162005-03-15 Matthew Gingell <gingell@adacore.com>
28517
28518 * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
28519
285202005-03-15 Robert Dewar <dewar@adacore.com>
28521
28522 * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
28523
28524 * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
28525
28526 * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
28527
285282005-03-15 Robert Dewar <dewar@adacore.com>
28529
28530 * s-bitops.adb, s-bitops.ads,
28531 s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
28532 s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
28533 tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
28534 s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
28535 s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
28536 s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
28537 s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
28538 s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
28539 reformatting.
28540
285412005-03-15 Eric Botcazou <ebotcazou@adacore.com>
28542
28543 * utils2.c (build_binary_op): Fix typo.
28544
285452005-03-15 Doug Rupp <rupp@adacore.com>
28546
28547 * s-crtl.ads (popen,pclose): New imports.
28548
285492005-03-15 Cyrille Comar <comar@adacore.com>
28550
28551 * comperr.adb (Compiler_Abort): remove references to obsolete
28552 procedures in the bug boxes for various GNAT builds.
28553
285542005-03-15 Vincent Celier <celier@adacore.com>
28555
28556 * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
28557
285582005-03-15 Geert Bosch <bosch@adacore.com>
28559 Arnaud Charlet <charlet@adacore.com>
28560 Robert Dewar <dewar@adacore.com>
28561 Cyrille Comar <comar@adacore.com>
28562 Sergey Rybin <rybin@adacore.com>
28563
28564 * gnat_ugn.texi: Remove extended inline assembly example, as it was far
28565 too specific and long-winded to be appropriate for the GNAT User's
28566 Guide.
28567 Warn about use of GCC switches not documented in the GNAT User's Guide,
28568 as these may cause generated code to not conform to Ada semantics.
28569 Remove mention of -gdwarf-2 for sparc64, since this is now the default.
28570 Add documentation for -gnat95 and -gnat05 switches
28571 Remove paragraph documenting obsolete way to refer to third party
28572 libraries.
28573 Add a few references to Ada_05 that were missing.
28574 Update documentation on -gnatZ/-gnatL.
28575 Document limitation when using -m64 under Solaris.
28576 Change the "Name Casing" subsection of the pretty-printer section
28577 according to the changes in the dictionary processing.
28578
28579 * gnat_rm.texi: Document the Ada_05 pragma.
28580 Section on record representation clauses describes the new more
28581 relaxed rules about placement of large packed bit array components.
28582 Add documentation of GNAT.UTF_32
28583
9e94c78f 285842005-03-12 Daniel Berlin <dberlin@dberlin.org>
c75ab022
DB
28585
28586 * misc.c (gnat_post_options): Turn off structural
28587 aliasing for now.
4f51c6e7 28588
9e94c78f 285892005-03-08 Laurent Guerby <laurent@guerby.net>
391bdf45
LG
28590
28591 * system-linux-sparc.ads: Fix typo in previous commit.
28592
9e94c78f
EB
285932005-03-07 James A. Morrison <phython@gcc.gnu.org>
28594 Laurent Guerby <laurent@guerby.net>
fe8a06f2 28595
a1286ef5
ZW
28596 PR ada/20035
28597 * system-linux-sparc.ads: New.
28598 * Makefile.in: Add sparc linux entry.
fe8a06f2 28599
a1286ef5 286002005-02-27 Danny Smith <dannysmith@users.sourceforge.net>
9811fd17 28601
a1286ef5 28602 * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
9811fd17
DS
28603 parameters as unused.
28604
5395b47b
NN
286052005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
28606 Partial merge from libada-gnattools-branch:
28607
28608 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
a1286ef5
ZW
28609 * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
28610 into code in gnattools/Makefile.in. Remove direct dependencies on
28611 stamp-tools by tools clauses.
5395b47b 28612 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
a1286ef5 28613 * config-lang.in: Add gnattools to $lang_dirs.
5395b47b 28614
4fa0972f
AP
286152005-02-13 Andrew Pinski <pinskia@physics.uc.edu>
28616
28617 PR ada/19942
2532808d 28618 * utils.c (gnat_type_for_mode): Return null instead of ICE because
a1286ef5 28619 we asked for an unknown mode.
4fa0972f 28620
bd0b34a8
RH
286212005-02-12 Richard Henderson <rth@redhat.com>
28622
28623 * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
28624 validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
28625
0ebbef54
AJ
286262005-02-10 Andreas Jaeger <aj@suse.de>
28627
28628 * init.c (__gnat_initialize): Mark parameter as unused.
28629
fc5a191d
AC
286302005-02-09 Doug Rupp <rupp@adacore.com>
28631
28632 * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
28633 * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
28634
286352005-02-09 Doug Rupp <rupp@adacore.com>
28636
28637 * gnatchop.adb (dup, dup2),
28638 g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
28639
28640 * gnatlbr.adb (mkdir),
28641 mlib-tgt-vms-ia64.adb (popen, plose): Import with decc$ prefix.
28642
28643 * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
28644
286452005-02-09 Doug Rupp <rupp@adacore.com>
28646
28647 * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
28648
286492005-02-09 Robert Dewar <dewar@adacore.com>
28650 Thomas Quinot <quinot@adacore.com>
28651 Javier Miranda <miranda@adacore.com>
28652 Pascal Obry <obry@adacore.com>
28653 Ed Schonberg <schonberg@adacore.com>
28654 Doug Rupp <rupp@adacore.com>
28655 Gary Dismukes <dismukes@adacore.com>
28656 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28657
28658 * g-zstspl.ads: New file.
28659
28660 * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
28661
28662 * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
28663 Ada 95 mode
28664 Add definition of Wide_Wide_Space for AI-285
28665
28666 * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
28667 interface (to support Ada 95 and Ada 2005 units).
28668 Add Unbounded_IO files
28669 Add entries for Wide_Wide packages for AI-285
28670 Add list of containers packages to Ada 2005 unit list
28671
28672 * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
28673 support new Unbounded_IO package cleanly.
28674
28675 * g-utf_32.ads, g-utf_32.adb: New files.
28676
28677 * Makefile.rtl: Add entry for g-utf_32
28678 Add new files for Unbounded_IO
28679 Adjust make file for new AI-285 wide wide packages
28680 Add AI-302 containers to the run time.
28681
28682 * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
28683 a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
28684 subprograms for AI-301.
28685
28686 * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
28687
28688 * a-stunau.ads: Minor comment correction
28689
28690 * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
28691 etc.
28692 Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
28693 (Check_RPC): Update to match changes in expanded code.
28694 Clean up unused entity.
28695
28696 * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
28697 was not taken into account.
28698 This includes proper initialization with Normalize_Scalars.
28699 (Get_Simple_Init_Val): Major rewrite for initialize scalars and
28700 normalize scalars cases (particularly the latter) to do a better job
28701 of finding invalid representations.
28702
28703 * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
28704
28705 * s-strops.ads, s-strops.adb: Remove string normalize routines, never
28706 used
28707
28708 * exp_dist.adb: Add support for wide wide character type
28709 (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
28710 private part, generate stub bodies at the end of the private part,
28711 not the visible part.
28712 (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
28713 PolyORB support.
28714 (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
28715 generic wrapper to execute final processing after completing the
28716 expansion of the RPC receiver for an RACW.
28717
28718 * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
28719 packages and attributes.
28720 (Preset_Names): Addition of the new reserved words of Ada 2005,
28721 that is interface, overriding and synchronized.
28722 (Get_Pragma_Id): Give support to the use of the new reserved word
28723 "interface" as a pragma name.
28724 (Is_Pragma_Name): Give support to the use of the new reserved word
28725 "interface" as a pragma name.
28726 (Preset_Names): Add stream_size string for the Stream_Size Ada2005
28727 attribute implementation.
28728
28729 * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
28730 checks to entities that are output parameters of Asm operations.
28731 Handle the Stream_Size attribute.
28732 Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
28733
28734 * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
28735
28736 * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
28737 for second parameter being 0.0.
28738 Add support for wide wide character type.
28739 (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
28740
28741 * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
28742 s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
28743 s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
28744 s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
28745 for wide wide character cases.
28746
28747 * cstand.adb: Create entities for Wide_Wide_Character and
28748 Wide_Wide_String.
28749
28750 * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
28751 accordance with AI-258.
28752 Add new declarations for 16/32 bit C character types (Part of AI285)
28753
28754 * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
28755 (Obsolescent_Warning): New field
28756 (Rep_Clause): New local subprogram used to share code. Returns the rep
28757 clause for which the name is given in parameter.
28758 (Has_Stream_Size_Clause): New routine.
28759 (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
28760 (Address_Clause): Implementation is now using Rep_Clause.
28761 (Alignment_Clause): Idem.
28762 (Size_Clause): Idem.
28763
28764 * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
28765 entity in non-Ada 2005 mode and generate warning.
28766
28767 * par-prag.adb: Add handling of one argument form for pragma Ada_05.
28768 (Prag): Code cleanup. Remove old gnat pragma "overriding"
28769
28770 * sem_prag.adb: Add handling of one argument form for pragma Ada_05
28771 (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
28772 on the named unit if the pragma is not in the current compilation unit,
28773 so that elaboration calls in the current unit can set up an elaboration
28774 dependency on the named unit, as needed.
28775 (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
28776 subprogram as well as for subprograms declared within a package.
28777 (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
28778 pragma overriding.
28779
28780 * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
28781 to z) to avoid some instances of duplication for Wide_Wide packages.
28782
28783 * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
28784 characters.
28785
28786 * scn.adb: Char_Literal_Value field is now a Uint
28787
28788 * scng.adb: Significant rewrite to handle new Ada 2005 features
28789 allowing wide and wide wide characters in program text, e.g. for
28790 identifiers, as described in AI-285.
28791 (Set_Reserved): New procedure, makes setting up keywords cleaner.
28792 (Initialize_Scanner): Register the new reserved words of Ada 2005.
28793 (Scan): Give support to the new reserved words.
28794
28795 * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
28796 warning notifying that interface, overriding, and synchronized are
28797 new reserved words.
28798 (P_Pragma): Allow the use of the new reserved word "interface" as
28799 a pragma name.
28800
28801 * gnatls.adb, gnatbind.adb,
28802 ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
28803 identifiers named "interface" to "SAL_Interface".
28804
28805 * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
28806 (Structured Exception handling).
28807 (Gen_Main_C): Idem.
28808
a1286ef5 28809 * bindgen.adb:
fc5a191d
AC
28810 (Gen_Main_Ada): Set the default exit code if specified.
28811 (Gen_Main_C): Likewise.
28812 Part of *DC20-006.
28813 (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
28814 Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
28815
28816 * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
28817 new -Xnnn switch.
28818
28819 * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
28820 has a collision with the new Ada 2005 "interface" reserved word.
28821
28822 * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
28823 generate a warning notifying that interface, overriding, and
28824 synchronized are new reserved words.
28825
28826 * scans.ads (Token_Type): Addition of the tokens corresponding to the
28827 new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
28828 and Tok_Synchronized.
28829
28830 * sem_res.adb (Resolve_Actuals): Change error messages to refer to
28831 "dispatching" rather than "primitive" operations, since dispatching
28832 calls are now allowed to abstract formal subprograms (which are not
28833 primitive).
28834 Char_Literal_Value field is now a Uint
28835 (Resolve_Slice): If the prefix is an access to an unconstrained array,
28836 compute the actual subtype of the designated object to impose the proper
28837 index constraints.
28838 (Resolve_Selected_Component): Do not insert an access check if the
28839 prefix is an access type: such a node is expanded into an explicit
28840 dereference, on which the access check is performed anyway. Removes
28841 expensive duplicate checks.
28842 (Resolve_Call): Use new flag Is_Obsolescent and field
28843 Obsolescent_Warning so that pragma Obsolescent works on library
28844 subprograms.
28845 Add support for wide wide character type
28846 (Resolve_Allocator): Replace the error message on wrong null-exclusion
28847 value by a warning message.
28848 (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
28849 as fixed-point, and one of the operands is non-static and universal, it
28850 can only be an illegal exponentiation operation, in which case there is
28851 no real value to retrieve.
28852
28853 * exp_strm.adb: Add support for wide wide character type
28854 (Build_Elementary_Input_Call): Compute the size of the stream element by
28855 querying the rep chain to find the Stream_Attribute attribute value.
28856 (Build_Elementary_Write_Call): Ditto.
28857
28858 * sem_aggr.adb: Char_Literal_Value field is now a Uint
28859 Add support for wide wide character type
28860 Replace the error messages on wrong null-exclusion value by warnings
28861 as described in Ada 2005.
28862 (Resolve_Extension_Aggregate): Document the fact that the error
28863 message on class-wide expressions in extensions aggregates.
28864
28865 * sem_case.adb: Add support for wide wide character type
28866
28867 * sem_ch13.adb: Add support for wide wide character type
28868 (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
28869
28870 * sem_ch3.adb: Add support for wide wide character type
28871 (Process_Subtype): If constraint is illegal for the type, set Ekind of
28872 now-useless Itype, to prevent cascaded errors on a compiler built
28873 without -gnatp.
28874
28875 * sem_ch8.adb: Add with and use of Sem_Disp.
28876 (Analyze_Subprogram_Renaming): Replace unclean uses of
28877 Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
28878 of Corresponding_Spec to Empty).
28879 (Attribute_Renaming): Replace use of Corresponding_Spec with
28880 Corresponding_ Formal_Spec and simplify condition.
28881 (Use_One_Package): Check that scope of homonym of identifier is defined,
28882 before checking whether it is a wrapper package.
28883 Add support for wide wide character type
28884
28885 * sem_eval.adb: Add support for wide wide character type.
28886 (Eval_Arithmetic_Op): Check for compile time known signed integer
28887 overflow in the non-static case.
28888 (Subtypes_Statically_Match): A formal scalar type and its base type do
28889 not statically match.
28890
28891 * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
28892 "not in" for test of N_Formal_Subprogram_Declaration (which is now a
28893 subtype).
28894 (Unit_Declaration_Node): Ditto.
28895 (Is_Variable_Prefix): For the case of an indexed component whose prefix
28896 has a packed array type, the prefix has been rewritten into a type
28897 conversion. Determine variable-ness from the converted expression.
28898 Handle wide wide character cases.
28899
28900 * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
28901
28902 * stringt.ads, stringt.adb: Handle full UTF-32 range.
28903 Remove ["0A"] from comment, since it can look like a line terminator.
28904 Currently we don't permit this, but this is under discussion by the
28905 ARG, and it is easy enough to use a different example.
28906
28907 * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
28908 handling UTF-32 encoding for wide wide character.
28909 Implement new brackets coding ["hhhhhhhh"]
28910 Add UTF-8 encodings for full UTF-32 range
28911
28912 * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
28913
28914 * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
28915 bit range Add full UTF-32 support.
28916 (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
28917 notify that constraint error will be raised at run-time
28918 because a null value is assigned to a null-excluding object.
28919 Remove some obsolete declarations and make Char_Code
28920 unsigned.
28921
28922 * a-except.adb (Rcheck_30): New subprogram. Addition of the message
28923 corresponding to CE_Null_Not_Allowed, and adjust the output of all the
28924 Rcheck subprograms.
28925
28926 * checks.adb (Check_Null_Not_Allowed): Replace the error message on
28927 wrong null-exclusion value by a warning message.
28928 (Enable_Range_Check): Do range check if the prefix is an
28929 explicit dereference whose designated object is an unconstrained array.
28930 Current algorithm for removing duplicate checks is over-eager in this
28931 case.
28932
28933 * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
28934 null-exclusion value by a warning message
28935
28936 * atree.h, atree.ads, atree.adb: Remove Char_Code field support
28937 completely. Add support for Uint2 field
28938
28939 sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
28940 exp_prag.adb: Char_Literal_Value field is now a Uint.
28941
28942 * exp_util.adb (Insert_Actions): Replace
28943 N_Formal_Subprogram_Declaration by
28944 N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
28945 Char_Literal_Value field is now a Uint.
28946
28947 * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
28948 defined for subprogram renaming declarations. When set, the field
28949 indicates the defining entity of a corresponding formal subprogram
28950 when the renaming corresponds to a formal subprogram association in an
28951 instantiation.
28952 (Set_Corresponding_Formal_Spec): New procedure to return
28953 Corresponding_Formal_Spec field.
28954 Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
28955 (which is now a subtype).
28956 Char_Literal_Value field is now a Uint
28957
28958 * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
28959 pointer to the base of the dispatch table.
28960 Minor changes to comments.
28961 (Controlling_Type): New function for determining the tagged type
28962 associated with a tagged primitive subprogram.
28963 (Expand_Dispatching_Call): Add support for a controlling actual that is
28964 directly a value of type Ada.Tag rather than a tagged object.
28965
28966 * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
28967 describing the new layout.
28968 (Dispatch_Table): The expander computes the actual array size, allocates
28969 the Dispatch_Table record accordingly, and generates code that displaces
28970 the base of the record after the Typeinfo_Ptr component. The access to
28971 these components is done by means of local functions.
28972 (Offset_To_Top): New function.
28973 (Typeinfo_Ptr): New function.
28974 (Get_TSD): Modified to access the new position of the TSD.
28975 (Set_TSD): Modified to save the TSD in its new position.
28976
28977 * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
28978 case of formal abstract subprograms. Add check and message for -gnat05.
28979 Update comments.
28980
28981 * sem_ch12.adb: Add with and use for Sem_Disp.
28982 (Analyze_Associations): Minor change from "=" to "in" for use of
28983 N_Formal_Subtype_Declaration (which is now a subtype).
28984 (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
28985 N_Formal_Subtype_Declaration (which is now a subtype).
28986 (Analyze_Formal_Subprogram): Add handling for
28987 N_Formal_Abstract_Subprogram, marking the formal as abstract and
28988 dispatching, setting the controlling status of the formal parameters
28989 and result, and issuing an error if there is no controlling type for
28990 the formal subprogram.
28991 (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
28992 which is an unclean use of that field, we set the new field
28993 Corresponding_Formal_Spec to make the formal subprogram available to
28994 processing in Analyze_Subprogram_Declaration.
28995 (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
28996 Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
28997 Constrained, so that it is is does not statically match its anonymous
28998 base type.
28999
29000 * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
29001 abstract formal subprograms in error check for functions returning
29002 abstract types. Set scope of new designator for
29003 a parameterless subprogram, so that it is available when checking the
29004 body for nested subprograms, before full analysis of said body.
29005 (Analyze_Subprogram_Body): Warn on inlining bodies with nested
29006 subprogram only if inner one comes from source.
29007 (Analyze_Function_Call): If the call is given in object notation, the
29008 analysis of the name rewrites the node and analyzes it with the proper
29009 argument list. After analyzing the name, if the call has been rewritten
29010 and the result type is set, no further analysis is needed.
29011 (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
29012 mark in function specification, in a context where the formals are
29013 visible and hide outer homographs.
29014
29015 * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
29016 as the tagged type for the cases of abstract formal subprograms and
29017 renamings of those. Clean up spec comments.
29018 (Check_Dispatching_Context): Add error message to indicate "abstract
29019 procedure", covering the case of a call to a formal abstract procedure
29020 that has statically tagged operands.
29021 (Check_Dispatching_Call): Check for the case of an actual given by
29022 a tag-indeterminate function call whose type is an ancestor of the
29023 containing call's associated tagged type. This situation can occur
29024 for inherited primitives with function defaults. In this case we
29025 use the tagged type's tag directly as the controlling argument for
29026 the calls.
29027 (Expand_Call): Name change on call to Expand_Dispatch_Call.
29028
29029 * sprint.adb (Sprint_Node_Actual): Split
29030 N_Formal_Subprogram_Declaration into two alternatives for the new
29031 cases N_Formal_Abstract_Subprogram_Declaration and
29032 N_Formal_Concrete_Subprogram_Declaration.
29033 Char_Literal_Value field is now a Uint.
29034
29035 * trans.c: Get rid of junk Uint2 reference.
29036 Char_Literal_Value field is now a Uint.
29037 (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
29038 (gigi): Correct third arg to gimplify_body.
29039
29040 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
29041 (TYPE_LANG_FLAG_0): Check for record or union.
29042
29043 * treepr.adb: Char_Literal_Value field is now a Uint
29044
29045 * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
29046 UI_From_CC.
29047
29048 * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
29049 Add full UTF-32 support
29050 Char_Code is now 32 bits
29051
29052 * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
29053 wide character UTF_32 line terminators.
29054 Initialize Main_Source_File to avoid error when no main
29055 source is loaded.
29056
29057 * errout.adb (Finalize): Do not check Num_SRef_Pragmas
29058 (Main_Source_File) when no main source has been loaded, to avoid
29059 potential crash.
29060
290612005-02-09 Robert Dewar <dewar@adacore.com>
29062
a1286ef5
ZW
29063 * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
29064 Fix name of Set routine
fc5a191d
AC
29065
29066 * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
29067 fixed packages.
29068
29069 * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
29070 a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
29071 fixed packages
29072
29073 * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
29074 forms of Get_Line subprograms for AI-301.
29075
29076 * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
29077 a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
29078 a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
29079 a-stwima.ads: Minor reformatting.
29080
290812005-02-09 Doug Rupp <rupp@adacore.com>
29082 Thomas Quinot <quinot@adacore.com>
29083
29084 * adaint.c, adaint.h
29085 [VMS] (to_ptr32): New function.
29086 (MAYBE_TO_PTR32): New macro.
29087 (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
29088 for pointer size.
29089 [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
29090 [VMS] (#define fork()): Remove since unneccessary.
29091 (__gnat_set_close_on_exec): New routine to support
29092 GNAT.OS_Lib.Set_Close_On_Exec.
29093
29094 * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
29095 the parent side as close-on-exec so that they are not inherited by the
29096 child.
29097
29098 * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
29099 set or clear the FD_CLOEXEC flag on a file descriptor.
29100
291012005-02-09 Eric Botcazou <ebotcazou@adacore.com>
29102 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29103
6f7f72f9 29104 PR ada/19386
a1286ef5 29105 * decl.c:
fc5a191d
AC
29106 (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
29107 on the field if Pragma Component_Alignment (Storage_Unit).
29108 (gnat_to_gnu_entity, case object): Do not treat a renaming that has
29109 side-effects as if it were a constant; also make SAVE_EXPR to protect
29110 side-effects.
29111 (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
29112 UNION_TYPE.
29113 (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
29114 (components_to_record): Test it.
29115 Fix improper usage of REFERENCE_CLASS_P.
29116
29117 * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
29118 RECORD_TYPE.
29119
29120 * utils2.c: Minor reformatting.
29121
29122 * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
29123 handle other cases like RECORD_TYPE.
29124
29125 * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
29126
291272005-02-09 Ed Schonberg <schonberg@adacore.com>
29128
29129 * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
29130 component of an array of arrays in an assignment context, and the
29131 aggregate has component associations that require sliding on
29132 assignment, force reanalysis of the aggregate to generate a temporary
29133 before the assignment.
29134 (Must_Slide): Make global to the package, for use in Gen_Assign.
29135
291362005-02-09 Ed Schonberg <schonberg@adacore.com>
29137
29138 * exp_ch4.adb (Expand_Composite_Equality): If a component is an
29139 unchecked union with no inferable discriminants, return a
29140 Raise_Program_Error node, rather than inserting it at the point the
29141 type is frozen.
29142 (Expand_Record_Equality, Component_Equality): Handle properly the case
29143 where some subcomponent is an unchecked union whose generated equality
29144 code raises program error.
29145
291462005-02-09 Doug Rupp <rupp@adacore.com>
29147
29148 * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
29149 [VMS] (#define exit hack): Remove.
29150
291512005-02-09 Pascal Obry <obry@adacore.com>
9e94c78f 29152 Arnaud Charlet <charlet@adacore.com>
fc5a191d
AC
29153
29154 * init.c (__gnat_initialize): Add a new parameter eh which contains the
29155 address of the exception registration. The Win32 version of this
29156 routine calls __gnat_install_SEH_handler() to initialize the SEH
29157 (Structured Exception Handling) handler.
29158 (__gnat_error_handler) [Win32]: Removed. Not needed as we use
29159 SEH (Structured Exception Handling) now.
29160 (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
29161 (__gnat_initialize for ppc-vxworks): Adjust comments and the
29162 preprocessor condition protecting the call to the extra eh setup
29163 subprogram, which is only available for the ppc target.
29164 (__gnat_clear_exception_count): replaced reference to
29165 variable taskIdCurrent by call to taskIdSelf(), cleaner.
29166
29167 * seh_init.c: New file.
29168
29169 * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
29170 (GNATBIND_OBJS): Idem.
29171
29172 * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
29173 routine takes a new parameter (a pointer to the exception registration
29174 for the SEH (Structured Exception Handling) support.
29175
29176 * raise.h: (__gnat_install_SEH_handler): New prototype.
29177 Update copyright notice.
29178
29179 * s-tassta.adb (Task_Wrapper): Declare the exception registration
29180 record and initialize it by calling __gnat_install_SEH_handler.
29181
291822005-02-09 Vincent Celier <celier@adacore.com>
29183
29184 * make.adb (Gnatmake): Do not fail when the main project has no object
29185 directory.
29186
291872005-02-09 Doug Rupp <rupp@adacore.com>
29188
29189 * Makefile.in [VMS] (LN,LN_S): Define as cp -p
29190 Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
29191 [VMS]: Add translations for g-enblsp.adb.
29192
29193 * s-asthan-vms.adb: Removed.
29194 * s-asthan-vms-alpha.adb: Added.
29195
291962005-02-09 Pascal Obry <obry@adacore.com>
29197
29198 * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
29199 (LIBGNAT_OBJS): Add seh_init.o.
29200
292012005-02-09 Arnaud Charlet <charlet@adacore.com>
29202
29203 PR ada/16592
fc5a191d
AC
29204 * Makefile.in: Link all gnat tools with -static-libgcc, since
29205 -shared-libgcc is now used by default on some systems (e.g. linux with
29206 recent binutils).
29207 Remove references to Makefile.prolog/generic, no longer used.
29208
292092005-02-09 Vincent Celier <celier@adacore.com>
29210
29211 * prj-makr.adb (Process_Directory): Put file name in canonical case
29212 before matching against the patterns.
29213 If gnatname has been invoked as <prefix>-gnatname
29214 then invoke the compiler as <prefix>-gcc, not just "gcc".
29215
292162005-02-09 Ed Schonberg <schonberg@adacore.com>
29217
29218 * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
29219 with expansion disabled. The actual subtype is needed among other
29220 places when the selected component appears in the context of a loop
29221 bound, and denotes a packed array.
29222 (Operator_Check): Always use the first subtype in the
29223 error message, to avoid the appearance of internal base types.
29224 (Transform_Object_Operation): Copy each actual in full
29225 to the parameter associations of the constructed call, rather than
29226 using the shallow copy mechanism of New_Copy_List. This ensures that
29227 the chaining of named associations is done properly.
29228 (Complete_Object_Operation): Rewrite node, rather than
29229 replacing it, so that we can trace back to the original selected
29230 component.
29231
29232 * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
29233 and calls that use object notation, if the called function is not
29234 declared in a withed unit, place the elaboration constraint on the
29235 unit in the context that makes the function accessible.
29236 (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
29237 imposes an elaboration constraint between two packages.
29238
292392005-02-09 Ed Schonberg <schonberg@adacore.com>
29240
29241 * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
29242 views of a private type after handling its private dependents, to
29243 maintain proper stack discipline between entry and exit from the
29244 package.
29245
292462005-02-09 Cyrille Comar <comar@adacore.com>
29247
29248 * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
29249 Minor reformatting.
29250
292512005-02-09 Arnaud Charlet <charlet@adacore.com>
29252
29253 * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
29254 fields for foreign threads.
29255
292562005-02-09 Doug Rupp <rupp@adacore.com>
29257
29258 * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
29259 recursion warnings when compiled with -gnatdm.
29260
292612005-02-09 Robert Dewar <dewar@adacore.com>
29262
29263 * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
29264 Slight fix to documentation of -gnaty with no parameters
29265
29266 * xr_tabls.ads: Add ??? comment for missing overall comment
29267
29268 * xsinfo.adb: Make default file name be sinfo.h, since this is what
29269 we now use by default.
29270
29271 * xsnames.adb: Adjust end of file test to look for five space followed
29272 by '#' instead of six spaces. The format of xsnames.adb was modified
29273 in the last update.
29274
29275 * a-numeri.ads: Add reference to AI-388 for greek letter pi
29276 identifier.
29277
29278 * clean.adb: Minor reformatting.
29279
29280 * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
29281 gnatname.adb: Minor reformatting
29282 Add 2005 to copyright output when utility is run
29283
29284 * csets.adb: Eliminate obsolete comment
29285
29286 * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
29287 Update comments.
29288
29289 * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
29290
292912005-02-09 Sergey Rybin <rybin@adacore.com>
29292
29293 * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
29294 the difference between compact and incompact layout and add the record
29295 representation clause to the example illustrating different layouts.
29296 Add the description of '-A5' gnatpp option ("align 'AT' keywords in
29297 component clauses").
29298
292992005-02-09 Florian Villoing <villoing@adacore.com>
29300
29301 * gnat_ugn.texi: Fix typos.
29302 Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
29303 @file.
29304 Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
29305 in the generated documentation.
29306
293072005-02-09 Arnaud Charlet <charlet@adacore.com>
29308
29309 * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
29310 longer supported.
29311 Update linker wrapper when linking with non GNU C++.
29312
293132005-02-09 Pascal Obry <obry@adacore.com>
29314
a1286ef5 29315 * gnat_ugn.texi:
fc5a191d
AC
29316 Document the procedure to debug the DllMain routine on Windows.
29317 Add note about -funwind-tables and mixed Ada and C/C++ programming in
29318 ZCX mode.
29319 Document new BIND qualifer /RETURN_CODES=VMS.
29320
293212005-02-09 Ben Brosgol <brosgol@adacore.com>
29322
29323 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
29324 Edited gnatmetric chapter
29325
293262005-02-09 Robert Dewar <dewar@adacore.com>
29327
a1286ef5 29328 * gnat_rm.texi:
fc5a191d
AC
29329 Changes to document new wide wide character support
29330 For AI-285
29331 Update documentation on Normalize_Scalars and Initialize_Scalars
29332
293332005-02-09 Pascal Obry <obry@adacore.com>
29334
29335 * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
29336
293372005-02-09 Jose Ruiz <ruiz@adacore.com>
29338
29339 * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
29340 from the VxWorks kernel) that is needed for getting the active
29341 priority of the different tasks.
29342
29343 * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
29344 Use a pragma Elaborate_Body in the spec file instead.
29345 Noticed by code reading.
29346
293472005-02-09 Thomas Quinot <quinot@adacore.com>
29348
29349 * exp_util.ads: Minor correction in comment.
29350
293512005-02-09 Arnaud Charlet <charlet@adacore.com>
29352
29353 * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
29354 since this procedure is now too complex to be worth inlining.
29355
c6a912da
RH
293562005-02-09 Richard Henderson <rth@redhat.com>
29357
29358 * utils.c (gnat_define_builtin): Remove.
29359 (gnat_install_builtins): Use build_common_builtin_nodes.
29360
4c2d6a70
AC
293612005-02-09 Arnaud Charlet <charlet@adacore.com>
29362
29363 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
29364 a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
29365 a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
29366 a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
29367 a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
29368 a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
29369 a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
29370 a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
29371 a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
29372 a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
29373 a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
29374 a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
29375 a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
29376 a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
29377 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
29378 a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
29379 a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
29380 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
29381 a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
29382 a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
29383 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
29384 a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
29385 a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
29386 a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
29387 a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
29388 a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
29389 a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
29390 a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
29391 a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
29392 a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
29393 a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
29394 a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
29395 a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
29396 a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
29397 library.
29398
9e94c78f 293992005-01-27 Laurent Guerby <laurent@guerby.net>
74a22497
LG
29400
29401 * Makefile.in: Fix a-intnam.ads from previous commit,
29402 add 2005 to copyright.
29403 * a-intman-rtems.ads: Renamed to...
29404 * a-intnam-rtems.ads:
29405
9e94c78f 294062005-01-27 Laurent Guerby <laurent@guerby.net>
7d921ba4
LG
29407
29408 * Makefile.in: Rename GNAT RTEMS specific files.
a1286ef5 29409 * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
da8f5fd9 29410 5rosinte.ads, 5rparame.adb: Replaced by files below.
7d921ba4
LG
29411 * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
29412 s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
29413
9e94c78f
EB
294142005-01-27 Joel Sherrill <joel.sherrill@oarcorp.com>
29415 Laurent Guerby <laurent@guerby.net>
9011d4bb
JS
29416
29417 PR ada/19488
29418 * 5rosinte.ads: Add No_Key constant.
a1286ef5
ZW
29419 * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
29420 * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
9011d4bb 29421
9e94c78f 294222005-01-26 Laurent Guerby <laurent@guerby.net>
d487e3c1
LG
29423
29424 PR ada/19414
29425 * i-cobol.adb (Valid_Numeric): Handle zero length case.
a1286ef5 29426
3f38e738
RH
294272005-01-20 Richard Henderson <rth@redhat.com>
29428
29429 * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
29430 a-intnam-linux.ads and system-linux-alpha.ads.
29431 * a-intnam-linux-alpha.ads: Remove file.
29432 * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
29433 * system-linux-alpha.ads: New file.
29434
4d960a7e
JJ
294352005-01-18 Jakub Jelinek <jakub@redhat.com>
29436
29437 PR ada/13470
29438 * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
29439 set to the new string.
29440
b4c6a3a2
TM
294412005-01-18 Toon Moene <toon@moene.indiv.nluug.nl>
29442
29443 * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
29444 to True.
29445
8d5e1df2
RH
294462005-01-18 Richard Henderson <rth@redhat.com>
29447
29448 * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
29449 THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
29450 for alpha-linux.
29451 * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
29452
03eef11c
AP
294532005-01-14 Andrew Pinski <pinskia@physics.uc.edu>
29454
29455 * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
29456 (GCC_ZCX_Support): Likewise.
29457
bc7566ca
BB
294582005-01-11 Bastian Blank <waldi@debian.org>
29459
29460 * system-linux-s390.ads: Define Preallocated_Stacks.
29461 * system-linux-s390x.ads: Likewise.
29462
e550819c
AC
294632005-01-04 Arnaud Charlet <charlet@adacore.com>
29464
29465 * gnat_ugn.texi: Fix texi errors with null variables.
29466
376a74d4
AC
294672005-01-03 Thomas Quinot <quinot@adacore.com>
29468
29469 * gen-soccon.c: New utility program to generate g-soccon.ads
29470 automatically.
29471
29472 * socket.c, gsocket.h: Split inclusion of system header files into a
29473 gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
29474
29475 * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
29476 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
29477 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
29478 g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
29479 should not be edited by hand anymore, but should be regenerated using
29480 gen-soccon.
29481
294822005-01-03 Robert Dewar <dewar@adacore.com>
29483 Ed Schonberg <schonberg@adacore.com>
29484 Vincent Celier <celier@adacore.com>
29485
29486 * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
29487 on/off, since this is an obsolescent feature, for which we now generate
29488 a warning.
29489
29490 * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
29491 warning mode is set and obsolescent usage of this attribute occurs.
29492 (Resolve_Access, case 'Access): Note that GNAT uses the context type to
29493 disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
29494 predates, and partly motivates, the adoption of the AI.
29495 Implement new Ada 2005 attribute Mod
29496
29497 * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
29498 attribute Mod.
29499
29500 * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
29501
29502 * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
29503 pragma restrictions.
29504 New entry for Ada 2005 attribute Mod.
29505
a1286ef5 29506 * par-prag.adb:
376a74d4
AC
29507 Add recognition of new pragma Restrictions No_Dependence
29508 Recognize restriction No_Obsolescent_Features at parse time
29509
29510 * bcheck.adb: Add circuitry for checking for consistency of
29511 No_Dependence restrictions.
29512
29513 * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
29514 restrictions.
29515
29516 * restrict.ads, restrict.adb: Add subprograms to deal with
29517 No_Dependence restrictions.
29518
29519 * rtsfind.adb: Check that implicit with's do not violate No_Dependence
29520 restrictions.
29521
29522 * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
29523 sem_attr.adb: Add check for new restriction No_Obsolescent_Features
29524
29525 * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
29526 dummy parameter to scng instantiation.
29527 Needed for new restriction No_Obsolescent_Features
29528
29529 * scn.adb: (Obsolescent_Check): New procedure
29530 Needed for new restriction No_Obsolescent_Features
29531
29532 * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
29533 specified by AI-285, needed for implementation of AI-388 (adding greek
29534 pi to Ada.Numerics).
29535 Add new generic formal to scng, needed for new restriction
29536 No_Obsolescent_Features.
29537
29538 * s-rident.ads: Add new restriction No_Obsolescent_Features.
29539
29540 * ali.ads, ali.adb: Adjustments for reading new No_Dependence
29541 restrictions lines.
29542 (Scan_ALI): When finding an unexpected character on an R line, raise
29543 exception Bad_R_Line, instead of calling Fatal_Error, so that, when
29544 Ignore_Errors is True, default restrictions are set and scanning of the
29545 ALI file continues with the next line. Also, when Bad_R_Line is raised
29546 and Ignore_Errors is True, skip to the end of le line.
29547
29548 * sem_ch10.adb: Check that explicit with's do not violate
29549 No_Dependence restrictions.
29550 (Install_Withed_Unit): Add code to implement AI-377 and diagnose
29551 illegal context clauses containing child units of instance.
29552
29553 * sem_prag.adb: Processing and checking for new No_Dependence
29554 restrictions.
29555 (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
29556 analyze and check the External argument.
29557
29558 * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
29559
295602005-01-03 Robert Dewar <dewar@adacore.com>
29561
29562 * atree.adb: Add a fifth component to entities
29563 This allows us to add 32 flags and four new fields
29564
29565 * atree.ads: Add a fifth component to entities
29566 This allows us to add 32 flags and four new fields
29567
29568 * einfo.ads, einfo.adb: Document new fields and new flags now available
29569 Add routines for printing new fields
29570
29571 * treepr.adb: Call routines to print out additional fields if present
29572
295732005-01-03 Arnaud Charlet <charlet@adacore.com>
29574
29575 * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
29576 gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
29577
29578 * Makefile.in: Add support to build shared Ada libraries on solaris x86
29579 Remove gpr2make, replaced by gprmake.
29580 Remove references to gnatmem and libaddr2line.
29581 Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
29582 (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
29583 Add support for specialized version of Ada.Numerics.Aux for Darwin: use
29584 a-numaux-darwin.ads and a-numaux-darwin.adb
29585 Enable mlib-tgt-lynxos.adb on lynxos.
29586
29587 * Make-lang.in: Remove rules for gpr2make.
29588 When generating sdefault.adb, do not call Relocate_Path
29589 on S3 for function Target_Name, as it is not a path.
29590 Remove references to gnatmem and libaddr2line.
29591
29592 * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
29593 files.
29594
295952005-01-03 Samuel Tardieu <tardieu@adacore.com>
29596
29597 * checks.adb (Apply_Alignment_Check): Generate a warning if an object
29598 address is incompatible with its base type alignment constraints when
29599 this can be decided statically.
29600
296012005-01-03 Olivier Hainque <hainque@adacore.com>
29602
29603 * decl.c (compatible_signatures_p): New function. The intended purpose
29604 is to check if two function signatures for a call-site and a callee are
29605 compatible enough for the call to be valid. The underlying purpose is
29606 to check if a call to a mapped builtin is using the right interface.
29607 The current code actually does not check antyhing - this a placeholder
29608 for future refinements.
29609 (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
29610 builtin calls for convention Intrinsic.
29611
29612 * gigi.h (builtin_decl_for): Declare (new function).
29613
29614 * utils.c (gnat_install_builtins): Install the target specific builtins.
29615 (builtin_decl_for): New function, provide a dummy body for now.
29616
296172005-01-03 Geert Bosch <bosch@adacore.com>
29618
29619 * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
29620 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
29621 (Pred): Implement in terms of Succ.
a1286ef5 29622
376a74d4
AC
29623 * trans.c (convert_with_check): Reimplement conversion of float to
29624 integer.
29625
296262005-01-03 Ed Schonberg <schonberg@adacore.com>
29627 Vincent Celier <celier@adacore.com>
29628
29629 * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
29630 bounds can be negative, and must be declared Int, not Nat.
29631
29632 * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
29633 array is checked after using the index in the array.
29634
29635 * makegpr.adb (Add_Switches): Check if there is a package for the
29636 processor. If there is no package, do not look for switches.
29637
296382005-01-03 Ed Schonberg <schonberg@adacore.com>
29639
29640 * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
29641 generation of predefined stream operations (specs and bodies) should
29642 proceed. Under various restrictions these subprograms must not be
29643 generated.
29644
296452005-01-03 Thomas Quinot <quinot@adacore.com>
29646
a1286ef5 29647 * exp_dist.adb:
376a74d4
AC
29648 Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
29649 amount of PCS-specific code in RACW stubs generation.
29650 (Copy_Specification): Set Etype on copied formal parameter entities, as
29651 this information is needed for PolyORB stubs generation.
29652 (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
29653 variable Dynamic_Async.
29654 (Build_Subprogram_Receiving_Stubs): Make PCS-specific
29655 (Build_RPC_Receiver_Specification): Make generic again, as recent
29656 changes have allowed RPC receivers to have the same profile for both
29657 variants of the PCS.
29658 Reorganise RPC receiver generation to reduce differences between the
29659 structure of GARLIC and PolyORB RPC receivers.
29660 (Add_Receiving_Stubs_To_Declarations): Make this subprogram
29661 PCS-specific.
29662 Simplify elaboration code for RCI packages.
29663
29664 * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
29665 generation to reduce differences between the structure of GARLIC and
29666 PolyORB RPC receivers.
29667
29668 * s-stratt.adb: Fix typo in comment.
29669
296702005-01-03 Thomas Quinot <quinot@adacore.com>
29671
29672 * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
29673 copied from Make_Init_Call).
29674
29675 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
29676 reads and assignments on a temporary variable declared with appropriate
29677 discriminants.
29678
296792005-01-03 Robert Dewar <dewar@adacore.com>
29680
29681 * i-c.adb (To_C): Raise CE if string is null and Append_Null
29682
296832005-01-03 Robert Dewar <dewar@adacore.com>
29684
29685 * i-cstrin.adb (Update): Do not append a null in form called with a
29686 String. This avoids unintended behavior.
29687
296882005-01-03 Arnaud Charlet <charlet@adacore.com>
29689
29690 PR ada/17527
29691 * init.c: Fix warnings on Free BSD section.
29692
296932005-01-03 Arnaud Charlet <charlet@adacore.com>
29694
29695 PR ada/16949
29696 * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
29697 xsinfo.adb).
29698
296992005-01-03 Vincent Celier <celier@adacore.com>
29700
29701 * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
29702 libraries when Unique_Compile is True (-u switch).
29703 (Gnatmake): ditto.
29704
297052005-01-03 Robert Dewar <dewar@adacore.com>
29706
29707 * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
29708 upper case letter or underscore after W, as allowed by spec.
29709
297102005-01-03 Arnaud Charlet <charlet@adacore.com>
29711
29712 * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
29713 darwin port by using proper type definitions from header files.
29714 Use SIGTERM instead of SIGABRT for SIGADAABORT.
29715
297162005-01-03 Robert Dewar <dewar@adacore.com>
29717
29718 * par.adb: Enhance error message handling for configuration file
29719 pragmas.
29720
297212005-01-03 Robert Dewar <dewar@adacore.com>
29722
29723 * s-arit64.adb (Double_Divide): Put back changes that got accidentally
29724 removed during the previous update (test properly for case of dividing
29725 largest negative number by -1, which generates overflow).
29726
297272005-01-03 Ed Schonberg <schonberg@adacore.com>
29728 Sergey Rybin <rybin@adacore.com>
29729
29730 * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
29731 to use as the defining identifier for a formal package.
29732 (Remove_Parent): If the instance takes place within (an instance of)
29733 a sibling, preserve private declarations of common parent.
29734
297352005-01-03 Ed Schonberg <schonberg@adacore.com>
29736
29737 * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
29738 to determine whether one of the operands is a fixed-point type for
29739 which a user-defined multiplication or division operation might be
29740 defined.
29741
29742 * sem_res.adb (Valid_Conversion): The legality rules for conversions
29743 of access types are symmetric in Ada 2005: either designated type can
29744 be unconstrained.
29745
297462005-01-03 Vincent Celier <celier@adacore.com>
29747
29748 * s-fileio.adb (Temp_File_Record): Change length of string component
29749 Name from L_tmpnam + 1 to max_path_len + 1.
29750
297512005-01-03 Arnaud Charlet <charlet@adacore.com>
29752
29753 * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
29754 Self_Id.Deferral_Level = 0.
29755 (Do_Pending_Action): Move this function to the spec.
29756
29757 * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
29758 Do_Pending_Action explicitely when needed, in case we're using
29759 No_Abort restrictions.
29760
29761 * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
29762 deferral level since it will not get changed by the generated code.
29763 Keeping a default value of 1 would prevent some operations (e.g.
29764 select or delay) to proceed successfully.
29765
297662005-01-03 Ben Brosgol <brosgol@adacore.com>
29767 Robert Dewar <dewar@adacore.com>
29768 Cyrille Comar <comar@adacore.com>
29769
29770 * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
29771 porting guide chapter (vms version).
29772 Revised doc title (removed "for native platforms") and subtitle.
29773 Add discussion on warning flag for obsolescent features. First we
29774 note that it applies to obsolete GNAT features, which was previously
29775 omitted. Second we contrast the behavior with that of the new
29776 Ada 2005 AI-368 restriction No_Obsolescent_Features.
29777 Preliminary rewriting of GNAT & libraries chapter in order to take
29778 into account default project locations & new project manager
29779 capabilities.
29780
297812005-01-03 Robert Dewar <dewar@adacore.com>
29782
29783 * cstand.adb (Create_Operators): Clean up format and documentation of
29784 unary and binary operator result tables. No change in code, just
29785 reformatting and addition of comments.
29786
29787 * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
29788 sem_ch2.adb: Minor reformatting
29789
29790 * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
29791 sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
29792 comments for Tree_Read and Tree_Write.
29793
297942005-01-03 Pascal Obry <obry@adacore.com>
29795
29796 * exp_attr.ads: Minor reformatting.
29797
297982005-01-03 Romain Berrendonner <berrendo@adacore.com>
29799
29800 * comperr.adb (Compiler_Abort): Add specialized message for GAP
29801 versions.
29802
298032005-01-03 Ed Schonberg <schonberg@adacore.com>
29804
29805 * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
29806 whether the ancestor type is private, as may be the case with nested
29807 instantiations.
29808
9e94c78f 298092004-12-30 Sohail Somani <sohail@sohailsomani.com>
15cd18b9
SS
29810
29811 PR ada/19128
29812 * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
29813
2614034e 298142004-12-23 Eric Botcazou <ebotcazou@libertysurf.fr>
15cd18b9 29815
2614034e
EB
29816 * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
29817 * utils2.c (build_unary_op): Likewise.
29818
ad50bc8d
RH
298192004-12-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29820
29821 * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
29822
ed9c846c
RH
298232004-12-19 Richard Henderson <rth@redhat.com>
29824
29825 * trans.c (gigi): Update gimplify_body call.
29826
08f2586c
NS
298272004-12-09 Nathan Sidwell <nathan@codesourcery.com>
29828
29829 * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
29830
180684eb
AC
298312004-12-07 Ed Falis <falis@adacore.com>
29832
29833 * s-intman-vxworks.adb (Notify_Exception): removed useless check for
29834 current task being suspended.
29835
29836 * init.c (__gnat_clear_exception): added to reset VxWorks exception
29837 count.
29838 (__gnat_map_signal): removed test for current task being suspended.
29839
298402004-12-07 Gary Dismukes <dismukes@adacore.com>
29841
29842 * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
29843 from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
29844 targets (such as AAMP).
29845
298462004-12-07 Ed Schonberg <schonberg@adacore.com>
29847
29848 * atree.adb (Visit_Itype): Create a new name for the generated itype,
29849 because the back-end may otherwise treat it as a redefinition of the
29850 old symbol.
29851
298522004-12-07 Eric Botcazou <ebotcazou@adacore.com>
29853
29854 * back_end.adb (Scan_Back_End_Switches): Accept --param.
29855
29856 * lang-specs.h: Accept --param.
29857
298582004-12-07 Vincent Celier <celier@adacore.com>
29859
29860 * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
29861 package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
29862 Current_Body_Suffix => Ada_Body_Suffix).
29863 Take into account Externally_Built attribute.
29864
29865 * clean.adb (In_Extension_Chain): Always return False when one of the
29866 parameter is No_Project.
29867 (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
29868 Ada_Language_Index).
29869 (Gnatclean): Adapt to change in package Prj.Pars (no parameter
29870 Process_Languages for procedure Parse).
29871
29872 * gnatcmd.adb (Carg_Switches): New table.
29873 (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
29874 Adapt to name changes in package Prj (Current_Spec_Suffix =>
29875 Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
29876
29877 * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
29878 Header_Num and function Hash are now declared in package Prj,
29879 not Prj.Com.
29880
29881 * prj.adb (Suffix_Of): New function.
29882 (Set (Suffix)): New procedure.
29883 (Hash): One function moved from Prj.Com
29884 (Is_Present, Language_Processing_Data_Of): New functions
29885 (Set): Two new procedures
29886 (Add_Language_Name, Display_Language_Name): New procedures
29887
29888 * prj.ads: (Suffix_Of): New function
29889 (Set (Suffix)): New procedure
29890 Add several types and tables for multi-language support.
29891 (Header_Num): Type moved from Prj.Com
29892 (Hash): Two functions moved from Prj.Com
29893 (Is_Present, Language_Processing_Data_Of): New functions
29894 (Set): Two new procedures
29895 (Add_Language_Name, Display_Language_Name): New procedures
29896 (Naming): Component name changes:
29897 Current_Spec_Suffix => Ada_Spec_Suffix,
29898 Current_Body_Suffix => Ada_Body_Suffix. Add new components:
29899 Impl_Suffixes, Supp_Suffixes.
29900 (Project_Data): New components: Externally_Built, Supp_Languages,
29901 First_Language_Processing, Supp_Language_Processing, Default_Linker,
29902 Default_Linker_Path.
29903
29904 * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
29905 new package Language_Processing with its attributes (Compiler_Driver,
29906 Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
29907 Binder_Driver, Default_Linker).
29908
29909 * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
29910 (Header_Num): Type moved to package Prj
29911
29912 * prj-env.adb: Adapt to name changes in package Prj
29913 (Current_Spec_Suffix => Ada_Spec_Suffix,
29914 Current_Body_Suffix => Ada_Body_Suffix).
29915
29916 * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
29917 default to the project path, except the "-" is one of the directories
29918 in env var ADA_PROJECT_PATH.
29919 (Current_Project_Path): Global variable, replacing Project_Path
29920 that was in the body of Prj.Part.
29921 (Project_Path): New function
29922 (Set_Project_Path): New procedure
29923 Initialize Current_Project_Path during elaboration of the package
29924 Remove dependency on Prj.Com, no longer needed
29925
29926 * prj-ext.ads (Project_Path): New function
29927 (Set_Project_Path): New procedure
29928
29929 * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
29930 suffix is defined for language <lang>.
29931 (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
29932 accessing directly the components of Naming.
29933 (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
29934 Reorganise of this package.
29935 Break procedure Check in several procedures.
29936
29937 * prj-nmsc.ads: Replace all procedures (Ada_Check,
29938 Other_Languages_Check and Language_Independent_Check) with a single
29939 procedure Check.
29940
29941 * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
29942 Process_Languages, no longer needed.
29943
29944 * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
29945 Current_Project_Path.
29946 Remove elaboration code, moved to the body of Prj.Ext
29947 Use new function Prj.Ext.Project_Path instead of old variable
29948 Project_Path.
29949 (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
29950 When comparing with project paths on the stack, first put the resolved
29951 path in canonical case.
29952 (Parse_Single_Project): Set the path name of the project file in the
29953 tree to the normalized path.
29954
29955 * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
29956 parameter Process_Languages, no longer needed.
29957 (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
29958 Other_Languages_Check.
29959
29960 * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
29961 to store the resolved canonical path of the project file.
29962 Remove dependency to Prj.Com, no longer needed
29963
29964 * prj-util.adb: Adapt to name changes in package Prj
29965 (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
29966 Ada_Body_Suffix).
29967
29968 * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
29969 Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
29970 Externally_Built, Include_Option, Language_Processing.
29971
29972 * makegpr.adb: Numerous changes due to changes in packages
29973 Prj and Prj.Nmsc.
29974
29975 * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
29976 default to the project path, except whe "-" is one of the directories
29977 in env var ADA_PROJECT_PATH.
29978 (Gnatls): In verbose mode, add the new section "Project Search Path:"
29979
299802004-12-07 Robert Dewar <dewar@adacore.com>
29981
29982 * debug.adb: Document that -gnatdA automatically sets -gnatR3m
29983
29984 * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
29985 set -gnatR3m mode.
29986
29987 * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
29988 flag. No longer needed now that we handle this in gnat1drv.adb.
29989
29990 * repinfo.ads: Minor reformatting
29991
299922004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29993 Olivier Hainque <hainque@adacore.com>
29994 Eric Botcazou <ebotcazou@adacore.com>
29995
29996 * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
29997 TYPE_SIZE_UNIT of result type if SIZE is not specified.
29998 (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
29999 of a bitfield, which we know is useless and causes trouble because of
30000 alignment implications.
30001
30002 * utils.c (create_var_decl): Set DECL_COMMON again on targets without
30003 BSS sections.
30004 (process_attributes): Clear DECL_COMMON again when a section attribute
30005 is present.
30006 (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
30007 SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
30008 (create_field_decl): Special case ADDRESSABLE negative to mean
30009 "no bitfield creation", to be used by make_aligning_type. Don't
30010 restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
30011 fields claimed addressable still have to be bitfields. Use
30012 value_factor_p instead of a raw binop construction to check for the
30013 position's alignment.
30014
300152004-12-07 Geert Bosch <bosch@adacore.com>
30016
30017 * eval_fat.adb: Revert previous change.
30018
300192004-12-07 Thomas Quinot <quinot@adacore.com>
30020 Ed Schonberg <schonberg@adacore.com>
30021
30022 * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
30023 with an implicit dereference as its prefix, use
30024 Insert_Explicit_Dereference instead of merely rewriting the prefix into
30025 an explicit dereference. This ensures that a reference to the original
30026 prefix is generated, if appropriate.
30027
30028 * sem_util.adb (Insert_Explicit_Dereference): When an implicit
30029 dereference is rewritten to an explicit one, generate a reference to
30030 the entity denoted by its prefix using the original prefix node, so
30031 the dereference can be properly recorded as a read of the denoted
30032 access value, if appropriate.
30033
30034 * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
30035 emitting 'assigned but never read' warning on a variable on the basis
30036 that it has an access type.
30037 (Check_References): Emit unreferenced warning when the scope is a
30038 subprogram body.
30039
300402004-12-07 Robert Dewar <dewar@adacore.com>
30041 Ed Schonberg <schonberg@adacore.com>
30042
30043 * exp_ch6.adb (Expand_Call): Add comment on handling of back end
30044 intrinsic
30045
30046 * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
30047 leaving call unchanged.
30048 This deals with the case where the pragma Import specified
30049 an external name, to be handled by the back end.
30050
30051 * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
30052 subprogram which is Imported with convention Intrinsic if an
30053 External_Name argument is specified.
30054 (Process_Import_Or_Interface): Properly diagnose link name argument.
30055 (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
30056 with Sem_Ch6.Cannot_Inline.
30057 (Process_Inline): Provide separate warning for inapplicable inline
30058 pragma.
30059 (Cannot_Inline): Reject subprograms that have an at_end handler, so that
30060 treatment is uniform on different targets.
30061
300622004-12-07 Ed Schonberg <schonberg@adacore.com>
30063
30064 * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
30065 construct is rewritten, preserve end label to permit source navigation.
30066
300672004-12-07 Thomas Quinot <quinot@adacore.com>
30068
30069 * exp_dist.adb (Specific_Build_General_Calling_Stubs,
30070 Specific_Build_Stub_Target): New subprograms.
30071 (Build_Subprogram_Calling_Stubs): Make this procedure independent from
30072 the PCS implementation used, using the above PCS-customized subprograms.
30073 Minor reformatting.
30074 (PolyORB_Support.Helpers): New subunit containing supporting subprograms
30075 for generation of DSA code targeted to the PolyORB PCS.
30076 (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
30077 implementation of the partition communication subsystem in ancillary
30078 subprograms.
30079 (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
30080 PolyORB_Support.Build_Stub_Type): New subrograms containing the
30081 PCS-specific part of Add_Stub_Type.
30082 (Insert_Partition_Check): Use runtime library function to perform
30083 E.4(19) check.
30084
a1286ef5
ZW
30085 * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
30086 (RE_Same_Partition): New entity, from s-parint.
180684eb 30087
a1286ef5 30088 * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
180684eb
AC
30089
300902004-12-07 Gary Dismukes <dismukes@adacore.com>
30091
30092 * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
30093 Output the copyright message on a separate line from the version
30094 message.
30095
300962004-12-07 Joel Brobecker <brobecker@adacore.com>
30097
30098 * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
30099 compile-time warning.
30100
301012004-12-07 Robert Dewar <dewar@adacore.com>
30102
30103 * g-regpat.adb: (Match): Change a misuse of or to or else
30104
301052004-12-07 Ed Schonberg <schonberg@adacore.com>
30106
15cd18b9 30107 * lib-xref.adb:
180684eb
AC
30108 (Generate_Reference): Handle properly a reference to an entry formal,
30109 when an accept statement has a pragma Unreferenced for it.
30110
30111 * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
30112 and the Has_Pragma_Unreferenced flag for each formal before analyzing
30113 the body, to ensure that warnings are properly emitted for each accept
30114 statement of a given task entry.
30115
301162004-12-07 Vasiliy Fofanov <fofanov@adacore.com>
30117
30118 * Makefile.in: Add support for foreign threads on VMS.
30119
301202004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30121
30122 * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
30123 Remove.
30124 (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
30125
30126 * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
30127
30128 * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
30129 exception.
30130 (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
30131
301322004-12-07 Robert Dewar <dewar@adacore.com>
30133
30134 * nlists.adb (Prepend_Debug): Remove parameters and nest within
30135 Prepend.
30136 (Remove_Next_Debug): Same fix
30137
30138 * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
30139 maintain back pointers now, though we did not used to, and comments
30140 were out of date).
30141 (Prepend): Remove pragma Inline.
30142 (Remove_Next): Same cleanup
30143
301442004-12-07 Thomas Quinot <quinot@adacore.com>
30145
30146 * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
30147 used to record an implicit dereference as a read operation on its
30148 prefix when operating under -gnatc. Necessary to avoid spurious
30149 'variable assigned but never read' warnings in that mode.
30150 (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
30151 is a non-overloaded implicit dereference, call the above subprogram to
30152 ensure proper recording of references.
30153
301542004-12-07 Gary Dismukes <dismukes@adacore.com>
30155
30156 * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
30157 to be resolved later as part of Analyze_Iteration_Scheme's call to
30158 Make_Index.
30159
301602004-12-07 Ed Schonberg <schonberg@adacore.com>
30161
30162 * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
30163 prefix is not a scalar type, place error message on prefix, not on
30164 type entity.
30165
301662004-12-07 Bernard Banner <banner@adacore.com>
30167
30168 * vxaddr2line.adb: Add support for x86 vxworks
30169
301702004-12-07 Thomas Quinot <quinot@adacore.com>
30171
30172 * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
30173 documentation of the behaviour of these functions when passed an IP
30174 address that has no record in the system hosts database and no reverse
30175 record in the DNS.
30176
30177 * cstand.adb, a-tags.ads: Fix typos in comment.
30178
301792004-12-07 Robert Dewar <dewar@adacore.com>
30180
30181 * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
30182 exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
30183 sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
30184 s-poosiz.ads: Minor reformatting
30185
30186 * make.adb: Minor reformatting
30187 Add some ??? comments asking for more comments
30188
30189 * s-poosiz.adb: Minor reformatting
30190 Add comments on alignment requirement
30191
30192 * sinfo.ads: Remove obsolete comment and fix typo.
30193
301942004-12-07 Vincent Celier <celier@adacore.com>
30195 Sergey Rybin <rybin@adacore.com>
30196
30197 * gnat_ugn.texi: Update the section "The GNAT Driver and Project
30198 Files" with the new tool and package names.
30199 Reformatting to suppress most of the warnings for line too long
30200 Document the new section "Project Search Path:" in the output of
30201 gnatls -v.
30202 Add gnatmetric section
30203
302042004-12-07 Vincent Celier <celier@adacore.com>
30205
30206 * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
30207 -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
30208 and -eit to -ept. Added qualifier
30209 /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
30210
ed986c8e
AS
302112004-11-27 Andreas Schwab <schwab@suse.de>
30212
30213 * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
30214
3c13948a
AC
302152004-11-25 Arnaud Charlet <charlet@adacore.com>
30216
30217 * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
30218 internal implementation unit GNAT.Sockets.Thin,
30219 as their usage for sockets is non-portable (using the read and write
30220 functions from the system runtime library is fine on UNIX but won't
30221 work under Windows).
30222
30223 * mingw32.h: Update copyright notice.
30224
061fd2bf
AC
302252004-11-25 Arnaud Charlet <charlet@adacore.com>
30226
30227 * ada-tree.h: Minor reformatting of previous change to avoid lines
30228 longer than 79 characters.
30229
e850e1f4
OH
302302004-11-25 Olivier Hainque <hainque@adacore.com>
30231
30232 * tb-gcc.c: GCC infrastructure based implementation of
30233 __gnat_backtrace.
30234
39afeb1a
SB
302352004-11-24 Steven Bosscher <stevenb@suse.de>
30236
30237 * misc.c (gnat_post_options): Don't clear
30238 flag_inline_functions.
30239
9633a6ac
AP
302402004-11-22 Andrew Pinski <pinskia@physics.uc.edu>
30241
30242 PR ada/17986
30243 * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
30244 tree.
30245
7fe16580
AJ
302462004-11-21 Andreas Jaeger <aj@suse.de>
30247
30248 * stylesw.adb: Change Style_Check_Subprogram_Order to
30249 Style_Check_Order_Subprograms.
30250
9716416b
AC
302512004-11-18 Arnaud Charlet <charlet@adacore.com>
30252
30253 * adaint.h, adaint.c
30254 (__gnat_portable_spawn): Fix cast of spawnvp third parameter
30255 to avoid warnings.
30256 Add also a cast to kill another warning.
30257 (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
30258 parameter with the priority class of the parent process instead of
30259 always using the NORMAL_PRIORITY_CLASS.
30260 (__gnat_dup): New function.
30261 (__gnat_dup2): New function.
30262 (__gnat_is_symbolic_link): Enable the effective body of this
30263 function when __APPLE__ is defined.
30264
30265 * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
30266 Update comments.
30267
302682004-11-18 Olivier Hainque <hainque@adacore.com>
30269
30270 * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
30271 address of which may be used to represent "others" and "all others"
30272 choices in exception tables, instead of the current harcoded
30273 (void *)0 and (void *)1.
30274 (Setup_Exception): Do nothing in the GNAT SJLJ case.
30275
30276 * gigi.h (others_decl, all_others_decl): New decls representing the
30277 new Others_Value and All_Others_Value objects.
30278 (struct attrib): Rename "arg" component as "args", since GCC expects a
30279 list of arguments in there.
30280
30281 * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
30282 corresponding objects exported by a-exexpr, instead of hardcoded dummy
30283 addresses.
30284
30285 * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
30286 others_decl and all_others_decl instead of hardcoded dummy addresses
30287 to represent "others" and "all others" choices, which is cleaner and
30288 more flexible with respect to the possible eh pointer encoding policies.
30289
30290 * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
30291 (process_attributes): Account for the naming change of the "args"
30292 attribute list entry component.
30293
30294 * decl.c (build_attr_list): Rename into prepend_attributes to allow
30295 cumulating attributes for different entities into a single list.
30296 (gnat_to_gnu_entity): Use prepend_attributes to build the list of
30297 attributes for the current entity and propagate first subtype
30298 attributes to other subtypes.
30299 <E_Procedure>: Attribute arguments are attr->args and not
30300 attr->arg any more.
30301 (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
30302 argument provided, as this is what GCC expects. Use NULL_TREE instead
30303 of 0 for trees.
30304
303052004-11-18 Robert Dewar <dewar@adacore.com>
30306
15cd18b9 30307 * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
9716416b
AC
30308 Minor reformatting througout (including new function specs)
30309 Add ??? comments asking for clarification.
30310
303112004-11-18 Thomas Quinot <quinot@adacore.com>
30312
30313 * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
30314 incomplete duplicate implementation of this subprogram from butil.
30315
303162004-11-18 Thomas Quinot <quinot@adacore.com>
30317
30318 * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
30319 procedures factors the common processing for building an RPC receiver
30320 for an RCI package or an RACW type.
30321 Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
30322 Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
30323 (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
30324 in use.
30325 (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
30326 Add_RACW_Features.
30327 (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
30328 Add_RAST_Features.
30329 (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
30330 distribution subprogram identifiers that are either subprogram numbers
30331 or strings.
30332 (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
30333 string distribution identifiers assigned to a given subprogram.
30334 (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
30335 (Add_RAS_Dereference_TSS): Add comments.
30336 (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
30337 is not referenced yet because it will be used by the PolyORB DSA
30338 implementation.
30339 (Insert_Partition_Check): Remove fossile code.
30340 (First_RCI_Subprogram_Id): Document this constant.
30341 (Add_RAS_Access_TSS): Correct the setting of the Etype of the
30342 RAS_Access TSS.
30343 (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
30344 replaced with calls to Get_Library_Unit_Name_String. Previously there
30345 were several instances of the same code in different locations in the
30346 compiler; this checkin completes the replacement of all of these
30347 instances with calls to a common subprogram.
30348 Minor reformatting.
30349
30350 * sem_dist.adb: Remove comment noting that RPC receiver generation
30351 should be disabled for RACWs that implement RASs.
30352 (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
30353
30354 * sem_util.ads, sem_util.adb (Has_Stream): New function
30355 (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
30356 qualified name of a library unit into the name buffer.
30357 (Note_Possible_Modification): Generate a reference only
30358 if the context comes from source.
30359
30360 * snames.ads (PCS_Names): New subtype corresponding to names of
30361 supported implementations of the Partition Communication Subsystem
30362 (PCS) (i.e. the runtime library support modules for the distributed
30363 systems annex).
30364
303652004-11-18 Robert Dewar <dewar@adacore.com>
30366 Ed Schonberg <schonberg@adacore.com>
30367
30368 * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
30369 (Has_Rep_Pragma): New function
30370 (Has_Attribute_Definition_Clause): New function
30371 (Record_Rep_Pragma): Moved here from sem_ch13.adb
30372 (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
30373
30374 * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
30375
30376 * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
30377 (Expand_Pragma_Psect_Object): New procedure
30378 These procedures contain the revised and cleaned up processing for
30379 these two pragmas. This processing was formerly in Sem_Prag, but
30380 is more appropriately moved here. The cleanup involves making sure
30381 that the pragmas are properly attached to the tree, and that no
30382 nodes are improperly shared.
30383
30384 * sem_prag.adb: Move expansion of Common_Object and Psect_Object
30385 pragmas to Exp_Prag, which is more appropriate.
30386 Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
30387 check for duplicates Remove use of Is_Psected flag, no longer needed.
30388 Use new Make_String_Literal function with string.
30389
30390 * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
30391 that are functions return universal values, that have to be converted
30392 to the context type.
30393 Use new Make_String_Literal function with string.
30394 (Get_Stream_Convert_Pragma): New function, replaces the use of
30395 Get_Rep_Pragma, which had to be kludged to work in this case.
30396
30397 * freeze.adb: Use new Has_Rep_Pragma function
30398
30399 * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
30400 function with string.
30401 Use new Has_Rep_Pragma function.
30402
30403 * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
30404 string argument.
30405
304062004-11-18 Robert Dewar <dewar@adacore.com>
30407
30408 * errout.ads, errout.adb: (First_Sloc): New function
30409
30410 * par-ch5.adb (P_Condition): Check for redundant parens is now a style
30411 check (-gnatyx) instead of being included as a redundant construct
30412 warning.
30413
30414 * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
30415 Style_Check_Order_Subprograms.
30416
30417 * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
30418 stylesw.adb: Add Style_Check_Xtra_Parens
30419
30420 * usage.adb: Add line for -gnatyx (check extra parens)
30421
30422 * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
30423
304242004-11-18 Ed Schonberg <schonberg@adacore.com>
30425 Robert Dewar <dewar@adacore.com>
30426
30427 * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
30428 discriminant of a constrained subtype, analyze the copy of the
30429 corresponding constraint, because in some cases it may be only
30430 partially analyzed.
30431 Removes long-lived ??? comments.
30432
30433 * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
30434 handled controlled or secondary-stack expressions within the
30435 iteration_scheme of a loop.
30436
30437 * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
30438 bounds that may contain functions calls, to prevent memory leaks when
30439 the bound contains a call to a function that uses the secondary stack.
30440 (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
30441 generate temporaries for loop bounds that might contain function calls
30442 that require secondary stack and/or finalization actions.
30443
30444 * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
30445 selected component and the selector is overloadable (not just a
30446 function) treat as function call, Analyze_Call will disambiguate if
30447 necessary.
30448 (Analyze_Selected_Component): Do not generate an actual subtype for the
30449 selected component if expansion is disabled. The actual subtype is only
30450 needed for constraint checks.
30451 (Analyze_Allocator): If restriction No_Streams is set, then do
30452 not permit objects to be declared of a stream type, or of a
30453 composite type containing a stream.
30454
30455 * restrict.ads: Remove the a-stream entry from Unit_Array, since
30456 No_Streams no longer prohibits with'ing this package.
30457
30458 * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
30459 discriminants, but the parent base has unknown discriminants, there is
30460 no discriminant constraint to inherit. Such a discrepancy can arise
30461 when the actual for a formal type with unknown discriminants is a
30462 similar private type whose full view has discriminants.
30463 (Analyze_Object_Declaration): If restriction No_Streams is set, then
30464 do not permit objects to be declared of a stream type, or of a
30465 composite type containing a stream.
30466
304672004-11-18 Ed Schonberg <schonberg@adacore.com>
30468
30469 * exp_dbug.ads: Update documentation to reflect simpler encoding for
30470 protected operations.
30471
30472 * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
30473 generated name, it complicates decoding in gdb and hinders debugging
30474 of protected operations.
30475 (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
30476 flag for the protected entry barrier function.
30477 (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
30478 flag for the protected entry function.
30479
304802004-11-18 Nicolas Setton <setton@adacore.com>
30481
30482 * expect.c: Define __unix__ when __APPLE__ is defined.
30483
30484 * Makefile.in: Inform the value of the variable GMEM_LIB in the
30485 Darwin-specific section.
30486
30487 * lang-specs.h: Change the placement of the %1 marker.
30488 Works around the fact that gcc adds -fPIC by default under Darwin.
30489
304902004-11-18 Ed Schonberg <schonberg@adacore.com>
30491
30492 * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
30493 type of the object with the packed array type, set the Analyzed flag
30494 on the object if it is an entity or simple indexed component, to avoid
30495 spurious type errors.
30496
304972004-11-18 Gary Dismukes <dismukes@adacore.com>
30498
30499 * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
30500 gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
30501 separate line from the version message.
30502
305032004-11-18 Ed Falis <falis@adacore.com>
30504
30505 * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
30506 vthreads.
30507 (init_float): Eliminate initialization of floating point status for
30508 AE653. The instructions have no effect for vThreads.
30509
305102004-11-18 Vincent Celier <celier@adacore.com>
30511
30512 * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
30513 gnatbind is invoked with -shared.
30514
305152004-11-18 Jose Ruiz <ruiz@adacore.com>
30516
30517 * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
30518 for Detect_Blocking which is redundant with the check done within the
30519 procedure Protected_Single_Entry_Call.
30520 (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
30521 Detect_Blocking which is redundant with the check done within the
30522 procedure Protected_Single_Entry_Call.
30523
305242004-11-18 Vincent Celier <celier@adacore.com>
30525
30526 * makegpr.adb (Compile): Put the compiling switches (in package
30527 Compiler and on the command line) immediately after "-c", instead of
30528 at the end of the command line invocation of the compiler, when
30529 compiling a non-Ada file.
30530 (Build_Global_Archive): When there is no need to rebuild the archive,
30531 set Global_Archive_Exists, so that the archive is passed to the linker
30532 if one is needed.
30533
305342004-11-18 Robert Dewar <dewar@adacore.com>
30535 Sergey Rybin <rybin@adacore.com>
30536
15cd18b9 30537 * gnat_ugn.texi:
9716416b
AC
30538 Remove extra paren check from list of checks for redundant constructs
30539 Add documentation of new -gnatyx style check (check extra parens)
30540 Remove paragraph about gnatelim debug options.
30541
30542 * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
30543 objects rather than forbidding dependencies on the package Ada.Streams.
30544
30545 * sinfo.ads: Add ??? note that we should document pragmas passed to
30546 back end.
30547
30548 * g-expect.ads: Fix a few typos in the comments.
30549
9e637a26
JM
305502004-11-09 Joseph S. Myers <joseph@codesourcery.com>
30551
30552 * misc.c (gnat_handle_option): Use %< and %> for quoting in
30553 warning message.
30554
0506cb1c
RO
305552004-11-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
30556
30557 * a-numaux-x86.adb (Tan): Fix fdivp syntax.
30558
426e7d28
AS
305592004-11-07 Andreas Schwab <schwab@suse.de>
30560
30561 * Makefile.in (install-gnatlib): Remove spurious hyphen.
30562
8785609e 305632004-11-02 Andrew Pinski <pinskia@physics.uc.edu>
bb342a77
AP
30564
30565 PR ada/18228
30566 * Makefile.in (darwin): Set soext to .dylib.
30567
0ca5fab2
AC
305682004-10-26 Vincent Celier <celier@gnat.com>
30569 Thomas Quinot <quinot@act-europe.fr>
30570
30571 * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
30572 (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
30573 there is no use of GNAT.Sockets.Constants.
30574 Remove remaining pragma Import for C_Write
30575 Remove C_Read and C_Write from internal implementation unit
30576 GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
30577 the read and write functions from the system runtime library is fine
30578 on UNIX but won't work under Windows).
30579
30580 * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
30581 (Check_Selector): Use C_Recv instead of C_Read.
30582 Selectors are the GNAT.Sockets abstraction to perform a select()
30583 call on a set of descriptors. To allow abortion of an ongoing
30584 select operation, some data is written to a dedicated socket that
30585 is always monitored.
30586 Under Windows, the write and read library functions cannot operate
30587 on sockets, so we need to use send and recv instead, which is portable
30588 across all supported platforms.
30589
30590 * g-socthi.ads: Remove C_Read and C_Write from internal implementation
30591 unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
30592 (using the read and write functions from the system runtime library is
30593 fine on UNIX but won't work under Windows).
30594
305952004-10-26 Nicolas Setton <setton@act-europe.fr>
30596
30597 * mlib-tgt-darwin.adb: New file.
30598
30599 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30600 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
30601 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
30602 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
30603 subprogram body.
30604
30605 * Makefile.in: Add support for building shared libraries under Darwin.
30606 (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
30607 the low level EH init subprogram to be called from __gnat_initialize.
30608
30609 * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
30610 indicates which options to pass to the archive indexer.
30611
30612 * mlib-utl.adb: Add support for calling ranlib with additional
30613 options. This is needed for instance under Mac OS X.
30614 (Ranlib_Options): New global variable, used to store the potential
30615 options to pass to ranlib.
30616 (Ar): Use Ranlib_Options when spawning ranlib.
30617 (Initialize): Set the value of ranlib option.
30618
306192004-10-26 Olivier Hainque <hainque@act-europe.fr>
30620
30621 * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
30622 instead of 8K, to reflect the real potential needs for stack-checking
30623 in the ZCX case.
30624
306252004-10-26 Pascal Obry <obry@gnat.com>
30626
30627 * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
30628
30629 * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
30630 Windows only the initial thread stack size can be set so it is good to
30631 start we a low stack size.
30632 The OS will adjust the size as needed.
30633
306342004-10-26 Olivier Hainque <hainque@act-europe.fr>
30635 Nicolas Setton <setton@act-europe.fr>
30636
30637 * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
30638 "__unix__" instead of "unix".
30639 The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
30640 sections were just mistakenly ignored. The former is
30641 implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
30642 Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
30643 of hpux. This prevents an unwanted definition of the symbol
30644 convert_addresses in adaint.o.
30645
306462004-10-26 Gary Dismukes <dismukes@gnat.com>
30647
30648 * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
30649 compatibility with type Unwind_Word on 16-bit targets such as AAMP.
30650
306512004-10-26 Cyrille Comar <comar@act-europe.fr>
30652
30653 * a-filico.ads, a-filico.adb: fix incorrect header.
30654
306552004-10-26 Javier Miranda <miranda@gnat.com>
30656
30657 * a-ststio.ads: Fix typo in identifier
30658
306592004-10-26 Thomas Quinot <quinot@act-europe.fr>
30660
30661 * sem_ch4.adb: Minor reformatting.
30662
306632004-10-26 Ed Schonberg <schonberg@gnat.com>
30664
30665 * checks.adb (Expr_Known_Valid): If floating-point validity checks are
30666 enabled, check the result of unary and binary operations when the
30667 expression is the right-hand side of an assignment.
30668
306692004-10-26 Vincent Celier <celier@gnat.com>
30670
30671 * clean.adb (Delete): Do not output warnings when in quiet output and
30672 not in verbose mode.
30673 (Force_Deletions): New Boolean flag, defaulted to False
30674 (Delete): Only delete a file if it is writable, and when
30675 Force_Deletions is True.
30676 (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
30677 (Usage): Line for new switch -f
30678 (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
30679 own.
30680
306812004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
30682
30683 * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
30684 JM type only if its size matches that of the wrapper. When a size is
30685 prescribed and the field is not aliased, remove the wrapper of a JM
30686 type only if the size is not greater than that of the packed array.
30687 (gnat_to_gnu_entity): Change the extension of packed array wrappers
30688 from LJM to JM.
30689
306902004-10-26 Geert Bosch <bosch@gnat.com>
30691
30692 * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
30693 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
30694 (Pred): Implement in terms of Succ.
30695
306962004-10-26 Ed Schonberg <schonberg@gnat.com>
30697
30698 * exp_aggr.adb (Safe_Component): An aggregate component that is an
30699 unchecked conversion is safe for in-place use if the expression of the
30700 conversion is safe.
30701 (Expand_Array_Aggregate): An aggregate that initializes an allocator may
30702 be expandable in place even if the aggregate does not come from source.
30703 (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
30704 designated object of an allocator in place, rather than building it
30705 first on the stack. The previous scheme forces a full copy of the array,
30706 and may be altogether unsusable if the size of the array is too large
30707 for stack allocation.
30708
307092004-10-26 Robert Dewar <dewar@gnat.com>
30710
30711 * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
30712 compares if the component is atomic.
30713
30714 * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
30715 array assignment if the component type is atomic.
30716
307172004-10-26 Ed Schonberg <schonberg@gnat.com>
30718 Eric Botcazou <ebotcazou@act-europe.fr>
30719
30720 * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
30721 is aliased and is a by_reference type, do not pass by copy.
30722 (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
30723 detect whether the call is in the right side of an assignment or
30724 the expression of an object declaration. Recurse on component
30725 association within aggregates.
30726 Call it in the condition that determines whether the temporary is
30727 necessary for correct stack-checking.
30728
307292004-10-26 Thomas Quinot <quinot@act-europe.fr>
30730
30731 * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
30732 RACW_Type, used in the PolyORB version.
30733 Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
30734 version and the GARLIC version.
30735
15cd18b9 30736 * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
0ca5fab2
AC
30737 Rename RCI_Info to RCI_Locator for better consistency between the
30738 GARLIC and PolyORB versions of the distributed systems annex.
30739 (DSA_Implementation_Name): This enumeration lists the possible
30740 implementations of the Partition Communication Subsystem for the
30741 Distributed Systems Annex (DSA). The three available implementations
30742 are the dummy stub implementation (No_DSA), and two versions based on
30743 two different distribution runtime libraries: GARLIC and PolyORB. Both
30744 the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
30745 technology.
30746 Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
30747 that organization.
30748
30749 * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
30750 between the GARLIC and PolyORB versions of the distributed systems
30751 annex.
30752 Remove RE_Unbounded_Reclaim_Pool since it is unused.
30753
307542004-10-26 Gary Dismukes <dismukes@gnat.com>
30755
30756 * gnat1drv.adb: Suppress calling the back end when
30757 Frontend_Layout_On_Target is true.
30758
307592004-10-26 Thomas Quinot <quinot@act-europe.fr>
30760
30761 * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
30762 Set_Read_Only): New subprograms.
30763 These new routines allow the user to set or unset the Owner execute
30764 and Owner write permission flags on a file.
30765
30766 * makegpr.adb, mlib.adb, mlib-prj.adb: Use
30767 GNAT.OS_Lib.Set_Executable instead of rolling our own.
30768
307692004-10-26 Matthew Gingell <gingell@gnat.com>
30770
30771 * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
30772
307732004-10-26 Pascal Obry <obry@gnat.com>
30774
30775 * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
30776 memory before the faulting page we properly test the process read
30777 access for this address using appropriate Win32 routine.
30778 (HPUX sections): guard with "__hpux__" instead of "hpux".
30779
307802004-10-26 Robert Dewar <dewar@gnat.com>
30781
30782 * lib-xref.adb (Generate_Reference): Don't complain about reference to
30783 entry parameter if pragma Unreferenced set, since we do not properly
30784 handle the case of multiple parameters.
30785
307862004-10-26 Vincent Celier <celier@gnat.com>
30787
30788 * prj-env.adb: (Contains_ALI_Files): New Boolean function
30789 (Ada_Objects_Path.Add): For a library project, add to the object path
30790 the library directory only if there is no object directory or if the
30791 library directory contains ALI files.
30792 (Set_Ada_Paths.Add.Recursive_Add): Ditto
30793
307942004-10-26 Vincent Celier <celier@gnat.com>
30795
30796 * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
30797 extension of library projects.
30798
30799 * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
30800 path defaults to ".:<prefix>/lib/gnat".
30801 (Parse): For an extending all project, allow direct import of a project
30802 that is virtually extended.
30803
30804 * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
30805 the specified name is directly imported, return its ID. Otherwise, if
30806 an extension of this project is imported, return the ID of the
30807 extension.
30808
308092004-10-26 Robert Dewar <dewar@gnat.com>
30810
30811 * s-arit64.adb: (Le3): New function, used by Scaled_Divide
30812 (Sub3): New procedure, used by Scaled_Divide
30813 (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
30814 correct more than one instance of failure to propagate carries
30815 correctly.
30816 (Double_Divide): Handle overflow case of largest negative number
30817 divided by minus one.
30818
30819 * s-arit64.ads (Double_Divide): Document that overflow can occur in
30820 the case of a quotient value out of range.
30821 Fix comments.
30822
308232004-10-26 Robert Dewar <dewar@gnat.com>
30824
30825 * s-bitops.adb (Bit_Eq): Remove redundant check.
30826
30827 * s-bitops.ads: Minor comment updates
30828 Change some occurrences of Address to System.Address
30829
30830 * s-carsi8.ads: Fix minor cut-and-paste error in comments
30831
308322004-10-26 Ed Schonberg <schonberg@gnat.com>
30833
30834 * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
30835 accessibility check to prefix that is a protected operation.
30836
308372004-10-26 Ed Schonberg <schonberg@gnat.com>
30838
30839 * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
30840 empty, post message on stub.
30841
308422004-10-26 Ed Schonberg <schonberg@gnat.com>
30843 Javier Miranda <miranda@gnat.com>
30844
30845 * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
30846 current instance appears within a unit that is directly in the context
30847 of the main unit.
30848 Used to determine whether the body of the instance should be analyzed
30849 immediately after its spec, to make its subprogram bodies available
30850 for front-end inlining.
30851 (Analyze_Formal_Array_Type): Cleanup condition that checks that range
30852 constraint is not allowed on the component type (AARM 12.5.3(3))
30853
308542004-10-26 Cyrille Comar <comar@act-europe.fr>
30855
30856 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
30857 'Storage_Pool): enhance, document & limit detection of non-sharable
30858 internal pools.
30859
30860 * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
30861
30862 * s-pooglo.ads: Add more documentation now that this pool is properly
30863 documented.
30864
308652004-10-26 Ed Schonberg <schonberg@gnat.com>
30866
30867 * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
30868 or protected type with discriminants, do not constrain the
30869 corresponding record type if the subtype declaration has no
30870 discriminant constraints. This can be the case in source code, or in
30871 the subtype declaration created to rename an actual type within an
30872 instantiation.
30873
308742004-10-26 Ed Schonberg <schonberg@gnat.com>
30875
30876 * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
30877 different kind of stub (possibly wrong name for file), do not check
30878 for conformance.
30879 (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
30880 includes call to some function that returns an unconstrained type, do
30881 not inline.
30882
308832004-10-26 Ed Schonberg <schonberg@gnat.com>
30884
30885 * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
30886 appear in the code for the main unit. Dependencies among units in the
30887 context of the main unit are established when those other units are
30888 compiled. Otherwise spurious elaboration constraints can generate
30889 incorrect elaboration circularities.
30890
308912004-10-26 Thomas Quinot <quinot@act-europe.fr>
30892 Ed Schonberg <schonberg@gnat.com>
30893
30894 * sem_util.adb (Is_Aliased_View): Defend against the case where this
30895 subprogram is called with a parameter that is not an object name. This
30896 situation arises for some cases of illegal code, which is diagnosed
30897 later, and in this case it is wrong to call Is_Aliased, as that might
30898 cause a compiler crash.
30899 (Explain_Limited_Type): Refine previous fix to include
30900 inherited components of derived types, to provide complete information.
30901
30902 * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
30903 is the prival for a protected object.
30904 It is necessary to mark this entity as a variable, in addition to
30905 flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
30906 modified to avoid checking the Aliased flag on entities that are not
30907 objects. (Checking that flag for non-objects is erroneous and could
30908 lead to a compiler crash).
30909
309102004-10-26 Robert Dewar <dewar@gnat.com>
30911
30912 * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
30913 X_Frac = 0.5, then we know that the number X must be positive.
30914 (Succ): Remove the same redundant test, and also fix the primary test
30915 to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
30916 Minor reformatting
30917 (Decompose): Add fuller comments to spec
30918
309192004-10-26 Pascal Obry <obry@gnat.com>
30920
30921 * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
30922 validity (process must have read access). Set to 0 in all other cases.
30923 (STOP_FRAME): Now check for ptr validity to avoid a segmentation
30924 violation on Win32.
30925 (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
30926 segmentation violation.
30927
309282004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
30929
30930 * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
30931 whose type is a constructed subtype of an aliased object with an
30932 unconstrained nominal subtype, convert the actual to the constructed
30933 subtype before taking its address.
30934
309352004-10-26 Vincent Celier <celier@gnat.com>
30936
30937 * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
30938 (Is_Path_Name_Case_Sensitive): New function
30939
30940 * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
30941 (Base_Name, Simple_Name, Current_Directory, Compose,
30942 Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
30943 the result.
30944
309452004-10-26 Cyrille Comar <comar@act-europe.fr>
30946 Vasiliy Fofanov <fofanov@act-europe.fr>
30947 Vincent Celier <celier@gnat.com>
30948
30949 * gnat_ugn.texi: Generalize "finding memory problems" section into a
30950 "memory management issues" section and document some of the useful
30951 memory pools provided as part of the GNAT library.
30952 Remove "virtual" from declaration of A::method2 in
30953 the simple example of Ada/C++ mixed system.
30954 Library Projects may be virtually extended: their virtual extensions
30955 are not Library Projects.
30956 Added section on extending project hierarchies.
30957
d65c6710 309582004-10-19 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
aa75e737
AL
30959
30960 * adaint.c (__gnat_get_libraries_from_registry): Cast value
30961 to LPBYTE.
30962 (__gnat_portable_spawn): Remove const.
30963
30964 * mingw32.h (MAXPATHLEN): Check for previous definition.
30965
95e19580
MK
309662004-10-17 Matthias Klose <doko@debian.org>
30967
30968 * gnatvsn.ads: Set gnat library version to 4.0.
30969
88a6ecb6
VC
309702004-10-05 Vincent Celier <celier@gnat.com>
30971
a1286ef5 30972 * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
88a6ecb6 30973
9e94c78f 309742004-10-04 Laurent Guerby <laurent@guerby.net>
110aba14
LG
30975
30976 PR ada/15156
30977 * Makefile.in: Define and use RANLIB_FLAGS.
88a6ecb6 30978
09552763
PO
309792004-10-04 Pascal Obry <obry@gnat.com>
30980
30981 * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
30982 other x86 platforms).
30983
a8e490b7
OH
309842004-10-04 Olivier Hainque <hainque@act-europe.fr>
30985
30986 * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
30987 in general and triggers stack alignment adjustment for thread entry
30988 points on targets where this is necessary.
30989
71c10a83
BB
309902004-10-04 Bernard Banner <banner@gnat.com>
30991
30992 PR ada/13897
71c10a83
BB
30993 * Makefile.in: Add section for powerpc linux
30994 Add variant i-vxwork-x86.ads
30995
30996 * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
30997
9a03df55
OH
309982004-10-04 Olivier Hainque <hainque@act-europe.fr>
30999
31000 * init.c (__gnat_initialize): Call an Ada subprogram to perform the
31001 table registration calls when need be. Ensures no reference to the crt
31002 ctors symbol are issued in the SJLJ case, which avoids possible
31003 undefined symbol errors in the case of modules to be statically linked
31004 with the kernel.
31005
28d6470f
JM
310062004-10-04 Javier Miranda <miranda@gnat.com>
31007
31008 * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
31009 in-line the code corresponding to subprogram Analyze_Actuals. In
31010 addition, analyze the actuals only in case of subprogram call.
31011
06237875
EF
310122004-10-04 Ed Falis <falis@gnat.com>
31013
31014 * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
31015
259d6c3a
SR
310162004-10-04 Sergey Rybin <rybin@act-europe.fr>
31017
31018 * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
31019 in the documentation.
31020
6f21ed26
RD
310212004-10-04 Robert Dewar <dewar@gnat.com>
31022
31023 * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
31024 IF and CASE.
31025 (Analyze_Block_Statement): Add circuitry to detect following dead code
31026 (Check_Unreachable_Code): Handle case of block exit
31027
4cded177
RD
310282004-10-04 Robert Dewar <dewar@gnat.com>
31029
31030 * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
31031 (XMatchD): Avoid warning for Logic_Error call
31032
c6a60aa1
RD
310332004-10-04 Robert Dewar <dewar@gnat.com>
31034
31035 * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
31036 consider expressions buried within a procedure actual to be an actual.
31037 This caused some blowups with uses of packed slices within a procedure
31038 actual.
31039
1fdebfe5
RD
310402004-10-04 Robert Dewar <dewar@gnat.com>
31041
31042 * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
31043 longer need to be initialized to zero.
31044 (Get_Simple_Init_Val): Modular packed arrays no longer need to be
31045 initialized to zero.
31046
31047 * checks.adb (Expr_Known_Valid): Packed arrays are now always
31048 considered valid, even if the representation is modular. That's correct
31049 now that we no longer initialize packed modular arrays to zero.
31050
31051 * exp_dbug.ads: Clarify documentation on handling of PAD and JM
31052 suffixes. These are now documented as the only cases in which the
31053 debugger ignores outer records.
31054 Previously, the spec allowed arbitrary suffixes for this purpose.
31055 Change name of LJM to JM for packed array pad records
31056 Create separate section on packed array handling, and add a whole new
31057 set of comments to this section describing the situation with packed
31058 modular types and justification requirements depending on endianness.
31059
cd91501c
RD
310602004-10-04 Robert Dewar <dewar@gnat.com>
31061
31062 * a-except.adb: Add a comment for last change
31063
31064 * einfo.ads: Minor spelling correction in comment
31065
31066 * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
31067
31068 * sem_ch11.adb: Fix a case of using | instead of \ for continuation
31069 messages.
31070
31071 * sem_util.ads: Minor comment update
31072
c71c53a8
ES
310732004-10-04 Ed Schonberg <schonberg@gnat.com>
31074
31075 * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
31076 Inline_Always when in Configurable_Run_Time mode.
31077
31078 * sem_prag.adb (Process_Convention): If entity is an inherited
31079 subprogram, apply convention to parent subprogram if in same scope.
31080 (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
31081 when in Configurable_Run_Time mode.
31082
71d9e9f2
ES
310832004-10-04 Ed Schonberg <schonberg@gnat.com>
31084
31085 * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
31086 class_wide type after component list has been inherited.
31087
0b525bee
ES
310882004-10-04 Ed Schonberg <schonberg@gnat.com>
31089
31090 * sem_ch12.adb (Check_Generic_Actuals): New predicate
31091 Denotes_Previous_Actual, to handle properly the case of a private
31092 actual that is also the component type of a subsequent array actual.
31093 The visibility status of the first actual is not affected when the
31094 second is installed.
31095 (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
31096 make fully recursive the treatment of formals of packages declared
31097 with a box.
31098 (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
31099 the above on exit from an instantiation.
31100 (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
31101 current instantiation which is now complete.
31102 (Analyze_Package_Instantiation): No instantiated body is needed if the
31103 main unit is generic. Efficient, and avoid anomalies when a instance
31104 appears in a package accessed through rtsfind.
31105
27ad9660
ES
311062004-10-04 Ed Schonberg <schonberg@gnat.com>
31107
31108 * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
31109 do not generate a declaration for a temporary if the call is part of a
31110 library-level instantiation.
31111
1c6c6771
ES
311122004-10-04 Ed Schonberg <schonberg@gnat.com>
31113
31114 * sem_util.adb (Explain_Limited_Type): Ignore internal components when
31115 searching for a limited component to flag.
31116
31117 * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
31118 expansion of Input, to account for the fact that the implicit call
31119 generated by the attribute reference must freeze the user-defined
31120 stream subprogram. This is only relevant to 'Input, because it can
31121 appear in an object declaration, prior to the body of the subprogram.
31122
31123 * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
31124 expansion can proceed and further errors uncovered.
31125 (Minor clean up): Fix cases of using | instead of \ for continuation
31126 messages.
31127
8005f3e5
RK
311282004-10-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31129
31130 * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
31131
31132 * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
31133 (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
31134 Use gcc_assert and gcc_unreachable.
31135
31136 * decl.c (gnat_to_gnu_entity, case object): Check and process a
31137 specified alignment before validating size.
31138 (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
31139 stripped-down declaration for the type of the inner field when making
31140 a JM type.
31141
31142 * utils.c (finish_record_type): Do not compute the size in units
31143 incrementally. Instead compute it once for the rep clause case.
31144 Use gcc_assert and gcc_unreachable.
31145
6a294a29
VC
311462004-10-04 Vincent Celier <celier@gnat.com>
31147
31148 * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
31149 in file name.
31150 (Is_Valid_Path_Name): Take '/' as a directory separator.
31151
9a080ea3
VC
311522004-10-04 Vincent Celier <celier@gnat.com>
31153
31154 * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
31155 (Extended_Project) only if Extended_Project is defined, to avoid
31156 assertion error.
31157 (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
31158 resolved path.
31159 (Parse_Single_Project): Ditto.
31160
31161 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
31162 Add_To_Project_Path for virtual projects.
31163
51004cb5
VC
311642004-10-04 Vincent Celier <celier@gnat.com>
31165
15cd18b9
SS
31166 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
31167 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
31168 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
51004cb5
VC
31169 mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
31170 parameter Options_2.
31171
31172 * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
31173 Build_Dynamic_Library with an empty Options_2.
31174
31175 * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
31176 default anymore.
31177
31178 * makegpr.adb (Get_Imported_Directories.add): Remove trailing
31179 directory separator, if any.
31180 (Gprmake): Do not allow mains on the command line for library projects.
31181 Do not attempt to link when the project is a library project.
31182 (Library_Opts): New table to store Library_Options.
31183 (Build_Library): If Library_Options is specified, pass these options
31184 when building a shared library.
31185
3b37ffbf
JR
311862004-10-04 Jose Ruiz <ruiz@act-europe.fr>
31187
31188 * s-tposen.adb (Service_Entry): The object must be always unlocked at
31189 the end of this procedure now that the unlock operation was inserted
31190 by the expander.
31191
b23e28d5
JR
311922004-10-04 Jose Ruiz <ruiz@act-europe.fr>
31193
31194 * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
31195 corresponding to the Preallocated_Stacks flags in System.
31196 (Get_Target_Parameters): Including the processing for
31197 Preallocated_Stacks.
31198
15cd18b9
SS
31199 * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
31200 system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
31201 system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
31202 system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
31203 system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
31204 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
31205 system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
31206 system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
31207 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
31208 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
b23e28d5
JR
31209 system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
31210 used to signal whether the compiler creates the required stacks and
31211 descriptors for the different tasks (when True) or it is done by the
31212 underlying operating system at run time (when False).
31213 It is initially set to False in all targets.
31214
31215 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
31216 if it is supported by the target.
31217 (Make_Task_Create_Call): Pass the stack address if it has been
31218 previously created. Otherwise pass a Null_Address.
31219
31220 * snames.adb: Add _stack.
31221
31222 * snames.ads: Add Name_uStack. Required to allow the expander to
31223 statically allocated task stacks.
31224
31225 * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
31226 Stack_Address argument.
31227 Check that its value is equal to Null_Address because this target does
31228 not support the static stack allocation.
31229
6fd459bb
TQ
312302004-10-04 Thomas Quinot <quinot@act-europe.fr>
31231
31232 * usage.adb: Change "pragma inline" to "pragma Inline" in information
31233 and error messages
31234
5885facb
TQ
312352004-10-04 Thomas Quinot <quinot@act-europe.fr>
31236
31237 * exp_dist.adb: Split declaration of asynchronous flag out of
31238 Add_RACW_Read_Attribute.
31239 Minor reformatting for better alignment with PolyORB version.
31240 Store the entity for the asynchronous flag of an RACW, rather than the
31241 expression, in the asynchronous flags table. This will allow this flag
31242 to be used in other subprograms beside Add_RACW_Read_Attribute.
31243
d6c7ed50
TQ
312442004-10-04 Thomas Quinot <quinot@act-europe.fr>
31245
31246 * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
15cd18b9
SS
31247 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
31248 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
31249 g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
d6c7ed50
TQ
31250 g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads: Add new
31251 sockets constant MSG_NOSIGNAL (Linux-specific).
31252 Add new sockets constant MSG_Forced_Flags, list of flags to be set on
31253 all Send operations.
31254 For Linux, set MSG_NOSIGNAL on all send operations to prevent them
31255 from trigerring SIGPIPE.
31256 Rename components to avoid clash with Ada 2005 possible reserved
31257 word 'interface'.
31258 (Check_Selector): When the select system call returns with an error
31259 condition, propagate Socket_Error to the caller.
31260
0f0377f6
JH
312612004-10-01 Jan Hubicka <jh@suse.cz>
31262
31263 * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
31264
2c9beb8a
RD
312652004-09-23 Robert Dewar <dewar@gnat.com>
31266
31267 PR ada/17540
2c9beb8a
RD
31268 * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
31269 instead do this at freeze time (we won't do it if there is an address
31270 clause).
31271 Change "pragma inline" to "pragma Inline" in information and error
31272 messages.
31273 Minor reformatting.
31274
31275 * freeze.adb (Check_Address_Clause): Remove previous change, not the
31276 right way of doing things after all.
31277 (Freeze_Entity): For object, set Is_Public for imported entities
31278 unless there is an address clause present.
31279
2494e673
OH
312802004-09-21 Olivier Hainque <hainque@act-europe.fr>
31281
31282 * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
31283 dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
31284 ensures proper handling of types with rep clauses, which might have
31285 their TYPE_SIZE set already.
31286
910d20fc
RD
312872004-09-21 Robert Dewar <dewar@gnat.com>
31288
31289 * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
31290 packed array types in both little- and big-endian cases. This change
31291 ensures that we no longer count on the unused bits being initialized
31292 for such types (and in particular ensures that equality testing will
31293 only read the relevant bits).
31294 Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
31295 These changes mean that we no longer need to initialize small packed
31296 arrays.
31297 (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
31298 optimization to an LJM field as to its parent field.
31299
31300 * ada-tree.h, trans.c, utils.c, utils2.c:
31301 Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
31302
8f235343
JH
313032004-09-20 Jan Hubicka <jh@suse.cz>
31304
31305 * utils.c (gnat_finalize): Remove.
31306 (end_subprog_body): Directly call cgraph_finalize_function;
31307 do not lower the nested functions.
31308
bb9be5eb
RD
313092004-09-20 Robert Dewar <dewar@gnat.com>
31310
31311 PR ada/17540
bb9be5eb
RD
31312 * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
31313 if an address clause is present, since that means that the Import
31314 should be ignored.
31315
796ef2e2
AC
313162004-09-20 Arnaud Charlet <charlet@act-europe.fr>
31317
31318 * 5tsystem.ads: Removed, no longer used.
31319
6615c446
JO
313202004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
31321 Zack Weinberg <zack@codesourcery.com>
31322
31323 * ada-tree.def: Use tree_code_class enumeration constants
31324 instead of code letters.
31325 * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
31326 Update for new tree-class enumeration constants.
31327
93ed8a01
VC
313282004-09-17 Vincent Celier <celier@gnat.com>
31329
31330 * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
31331 capabilities of the general project manager.
31332
c885d7a1
AC
313332004-09-09 Vincent Celier <celier@gnat.com>
31334
31335 * a-direct.ads: Add pragma Ada_05
31336 (Directory_Entry_Type): Give default value to component Kind to avoid
31337 not initialized warnings.
31338
31339 * a-direct.adb (Current_Directory): Remove directory separator at the
31340 end.
31341 (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
31342 an existing directory.
31343 (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
31344 (Size (String)): Function C_Size returns Long_Integer, not File_Size.
31345 Convert the result to File_Size.
31346
31347 * prj.ads: (Project_Error): New exception
31348
31349 * prj-attr.adb: Except in procedure Initialize, Fail comes from
31350 Prj.Com, not from Osint.
31351 (Attrs, Package_Attributes): Tables moved to private part of spec
31352 (Add_Attribute, Add_Unknown_Package): Moved to new child package
31353 Prj.Attr.PM.
31354 (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
31355 Prj.Project_Error after call to Fail.
31356 (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
31357 Fail. Check that package name is not already in use.
31358
31359 * prj-attr.ads: Comment updates to indicate that all subprograms may be
31360 used by tools, not only by the project manager, and to indicate that
31361 exception Prj.Prj_Error may be raised in case of problem.
31362 (Add_Unknown_Package, Add_Attribute): Moved to new child package
31363 Prj.Attr.PM.
31364 (Attrs, Package_Attributes): Table instantiations moved from the body to
31365 the private part to be accessible from Prj.Attr.PM body.
31366
31367 * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
31368 from new package Prj.Attr.PM.
31369 (Parse_Attribute_Declaration): Call Add_Attribute from new package
31370 Prj.Attr.PM.
31371
31372 * Makefile.in: Add prj-attr-pm.o to gnatmake object list
31373
31374 * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
31375 instead of Elaboration_Checks).
31376
31377 * a-calend.adb: Minor reformatting
31378
313792004-09-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31380
31381 * gigi.h (maybe_pad_type): New declaration.
31382 (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
31383
31384 * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
31385
31386 * cuintp.c: Convert to use buildN.
31387
31388 * decl.c (maybe_pad_type): No longer static.
31389 (gnat_to_gnu_entity, case E_Function): Handle case of returning by
31390 target pointer.
31391 Convert to use buildN.
31392
31393 * trans.c (call_to_gnu): Add arg GNU_TARGET; support
31394 TYPE_RETURNS_BY_TARGET_PTR_P. All callers changed.
31395 (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
31396 RHS.
31397 (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
31398 (gnat_gimplify_expr, case ADDR_EXPR): New case.
31399 Convert to use buildN.
31400
31401 * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
31402 TREE_READONLY for const.
31403 Convert to use buildN.
31404
31405 * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
31406 (create_var_decl): Refine when TREE_STATIC is set.
31407 Convert to use buildN.
31408
314092004-09-09 Gary Dismukes <dismukes@gnat.com>
31410
31411 * gnat_ugn.texi: Delete text relating to checking of ali and object
31412 consistency.
31413
31414 * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
31415 routines.
31416
314172004-09-09 Jose Ruiz <ruiz@act-europe.fr>
31418
31419 * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
31420 pragmas recognized by GNAT.
31421
31422 * gnat_rm.texi: Document pragma Detect_Blocking.
31423
31424 * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
31425 raise Program_Error if called from a protected operation.
31426
31427 * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
31428 the protected action nesting level.
31429 (Lock_Read_Only): When pragma Detect_Blocking is active increase the
31430 protected action nesting level.
31431 (Unlock): When pragma Detect_Blocking is active decrease the protected
31432 action nesting level.
31433
31434 * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
31435 Protected_Action_Nesting.
31436
31437 * s-taskin.ads: Adding the field Protected_Action_Nesting to the
31438 Common_ATCB record. It contains the dynamic level of protected action
31439 nesting for each task. It is needed for checking whether potentially
31440 blocking operations are called from protected operations.
31441 (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
31442 Detect_Blocking is active or not in the partition.
31443
31444 * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
31445 raise Program_Error if called from a protected operation.
31446 (Task_Entry_Call): When pragma Detect_Blocking is active, raise
31447 Program_Error if called from a protected operation.
31448 (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
31449 Program_Error if called from a protected operation.
31450
31451 * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
31452 raise Program_Error if called from a protected operation.
31453
31454 * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
31455 raise Program_Error if called from a protected operation, and increase
31456 the protected action nesting level.
31457 (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
31458 Program_Error if called from a protected operation, and increase the
31459 protected action nesting level.
31460 (Unlock_Entries): When pragma Detect_Blocking is active decrease the
31461 protected action nesting level.
31462
31463 * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
31464 raise Program_Error if called from a protected operation, and increase
31465 the protected action nesting level.
31466 (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
31467 Program_Error if called from a protected operation, and increase the
31468 protected action nesting level.
31469 (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
31470 raise Program_Error if called from a protected operation.
31471 (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
31472 active, raise Program_Error if called from a protected operation.
31473 (Unlock_Entry): When pragma Detect_Blocking is active decrease the
31474 protected action nesting level.
31475
31476 * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
31477 insertion of the statement raising Program_Error. The run time
31478 contains the required machinery for handling that.
31479
31480 * sem_util.ads: Change comment associated to procedure
31481 Check_Potentially_Blocking_Operation.
31482 This procedure does not insert a call for raising the exception because
31483 that is currently done by the run time.
31484
31485 * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
31486
31487 * init.c: Add the global variable __gl_detect_blocking that indicates
31488 whether pragma Detect_Blocking is active (1) or not (0). Needed for
31489 making the pragma available at run time.
31490 (__gnat_set_globals): Pass and update the detect_blocking parameter.
31491
31492 * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
31493 pragma Detect_Blocking is active.
31494
31495 * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
31496
31497 * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
31498 DB is found in the ali file. Any unit compiled with pragma
31499 Detect_Blocking active forces its effect in the whole partition.
31500
31501 * a-retide.adb (Delay_Until): Raise Program_Error if pragma
31502 Detect_Blocking is active and delay is called from a protected
31503 operation.
31504
31505 * bindgen.adb (Gen_Adainit_Ada): When generating the call to
31506 __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
31507 Detect_Blocking is active (0 otherwise).
31508 (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
31509 as Detect_Blocking parameter if pragma Detect_Blocking is active (0
31510 otherwise).
31511
315122004-09-09 Thomas Quinot <quinot@act-europe.fr>
31513
31514 * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
31515 GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
31516 package.
31517
31518 * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
31519 (Register_Receiving_Stub): Add Subp_Info formal parameter.
31520 Update API in placeholder implemetation of s-parint to reflect changes
31521 in distribution runtime library.
31522
31523 * sem_ch3.adb (Expand_Derived_Record): Rename to
31524 Expand_Record_Extension.
31525
31526 * sem_disp.adb (Check_Controlling_Formals): Improve error message for
31527 primitive operations of potentially distributed object types that have
31528 non-controlling anonymous access formals.
31529
31530 * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
31531 subprogram.
31532 New implementation of expansion for remote access-to-subprogram types,
31533 based on the RACW infrastructure.
31534 This version of sem_dist is compatible with PolyORB/DSA as well as
31535 GLADE.
31536
31537 * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
31538 Asynchrronous that applies to a remote access-to-subprogram type, mark
31539 the underlying RACW type as asynchronous.
31540
31541 * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
31542 __gnat_using_gnu_linker to 1.
31543
31544 * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
31545 g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
31546 GNAT.Perfect_Hash_Generators, and remove the empty
31547 GNAT.Perfect_Hash package.
31548
31549 * atree.adb: Minor reformatting
31550
31551 * exp_ch3.adb (Expand_Derived_Record): Rename to
31552 Expand_Record_Extension.
31553 (Build_Record_Init_Proc.Build_Assignment): The default expression in
31554 a component declaration must remain attached at that point in the
31555 tree so New_Copy_Tree copies it if the enclosing record type is derived.
31556 It is therefore necessary to take a copy of the expression when building
31557 the corresponding assignment statement in the init proc.
31558 As a side effect, in the case of a derived record type, we now see the
31559 original expression, without any rewriting that could have occurred
31560 during expansion of the ancestor type's init proc, and we do not need
31561 to go back to Original_Node.
31562
31563 * exp_ch3.ads (Expand_Derived_Record): Rename to
31564 Expand_Record_Extension.
31565
31566 * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
31567 Returns the RACW type used to implement a remote access-to-subprogram
31568 type.
31569 (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
31570 New subprograms. Used to create a proxy tagged object for a remote
31571 subprogram. The proxy object is used as the designated object
31572 for RAS values on the same partition (unless All_Calls_Remote applies).
31573 (Build_Get_Unique_RP_Call): New subprogram. Build a call to
31574 System.Partition_Interface.Get_Unique_Remote_Pointer.
31575 (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
31576 Renamed from Add_RAS_*_Attribute.
31577 (Add_Receiving_Stubs_To_Declarations): Generate a table of local
31578 subprograms.
31579 New implementation of expansion for remote access-to-subprogram types,
31580 based on the RACW infrastructure.
31581
31582 * exp_dist.ads (Copy_Specification): Update comment to note that this
31583 function can copy the specification from either a subprogram
31584 specification or an access-to-subprogram type definition.
31585
315862004-09-09 Ed Schonberg <schonberg@gnat.com>
31587
31588 * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
31589 in an instance, between an explicit subprogram an one inherited from a
31590 type derived from an actual.
31591
31592 * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
31593 add a polling call if the subprogram is to be inlined by the back-end,
31594 to avoid repeated calls with multiple inlinings.
31595
31596 * checks.adb (Apply_Alignment_Check): If the expression in the address
31597 clause is a call whose name is not a static entity (e.g. a dispatching
31598 call), treat as dynamic.
31599
316002004-09-09 Robert Dewar <dewar@gnat.com>
31601
31602 * g-trasym.ads: Minor reformatting
31603
31604 * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
31605 packed arrays, since unused bits are expected to be zero for a
31606 comparison.
31607
316082004-09-09 Eric Botcazou <ebotcazou@act-europe.fr>
31609
31610 * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
31611 comment.
31612
316132004-09-09 Pascal Obry <obry@gnat.com>
31614
31615 * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
31616 enable map file generation. Add the right option to generate the map
31617 file if Map_File is set to True.
31618
31619 * gnatdll.adb (Gen_Map_File): New variable.
31620 (Syntax): Add info about new -m (Map_File) option.
31621 (Parse_Command_Line): Add support for -m option.
31622 (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
31623 Minor reformatting.
31624
316252004-09-09 Laurent Pautet <pautet@act-europe.fr>
31626
31627 * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
31628 new gnatdist implementation.
31629 Define a subpackage isolating the output routines specific to this
31630 verbose mode.
31631
316322004-09-09 Joel Brobecker <brobecker@gnat.com>
31633
31634 * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
31635
31636 * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
31637
316382004-09-09 Cyrille Comar <comar@act-europe.fr>
31639
31640 * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
31641 internal unit.
31642
31643 * opt.ads: Add Ada_Version_Runtime constant used to decide which
31644 version of the language is used to compile the run time.
31645
316462004-09-09 Arnaud Charlet <charlet@act-europe.fr>
31647
31648 * sem_util.adb (Requires_Transient_Scope): Re-enable handling
31649 of variable length temporaries for function return now that the
31650 back-end and gigi support it.
31651
23c7b149 316522004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6cdb2c6e
AC
31653
31654 * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
31655
31656 * trans.c (struct stmt_group): Delete field GLOBAL.
31657 (gnat_init_stmt_group): Do not initialize it.
31658 (call_to_gnu): Use save_expr, not protect_multiple_eval.
31659 (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
31660 (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
31661 (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
31662 (start_stmt_group): Likewise.
31663 (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
31664
31665 * utils2.c (ggc.h): Include.
31666 (build_call_raise): Call build_int_cst, not build_int_2.
31667
31668 * utils.c (gnat_init_decl_processing): Fix arg to
31669 build_common_tree_nodes.
31670 (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
31671 (gnat_define_builtin): Set built_in_decls.
31672 (init_gigi_decls): Call build_int_cst, not build_int_2.
31673
31674 * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
31675 (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
31676 (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
31677 (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
31678 SET_TYPE_MODULE): Use them.
31679 (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
31680 (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
31681 (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
31682 SET_TYPE_ADA_SIZE): Likewise.
31683 (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
31684 (DECL_CONST_CORRESPONDING_VAR,
31685 SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
31686 (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
31687 (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
31688 (TYPE_RM_SIZE_NUM): New macro.
31689 (TYPE_RM_SIZE): Modified to use above.
31690
31691 * cuintp.c: (build_cst_from_int): New function.
31692 (UI_To_gnu): Use it.
31693
31694 * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
31695 (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
31696 (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
31697 MIN_EXPR for the size, copy it into new.
31698
23c7b149 316992004-09-01 Robert Dewar <dewar@gnat.com>
6cdb2c6e
AC
31700
31701 * exp_ch6.adb (Expand_Call): Properly handle validity checks for
31702 packed indexed component where array is an IN OUT formal. This
31703 generated garbage code previously.
31704
31705 * gnat_ugn.texi: Document -fverbose-asm
31706
31707 * gnat-style.texi: Minor updates (note that boolean constants and
31708 variables are joined with AND/OR rather than short circuit forms).
31709
23c7b149 317102004-09-01 Ed Schonberg <schonberg@gnat.com>
6cdb2c6e
AC
31711
31712 * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
31713 it is an upward conversion of an untagged type with no representation
31714 change.
31715
23c7b149 317162004-09-01 Thomas Quinot <quinot@act-europe.fr>
6cdb2c6e
AC
31717
31718 * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
31719 System.Partition_Interface.
31720
31721 * checks.adb (Apply_Access_Checks): Do not generate checks when
31722 expander is not active (but check for unset reference to prefix of
31723 dereference).
31724
31725 * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
31726 pragma Debug as an if statement with a constant condition, for
31727 consistent treatment of entity references contained within the
31728 enclosed procedure call.
31729
23c7b149 317302004-09-01 Vincent Celier <celier@gnat.com>
6cdb2c6e
AC
31731
31732 * bindgen.adb: (Set_EA_Last): New procedure
31733 (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
31734 Set_EA_Last.
31735 (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
31736 (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
31737 linked without errors.
31738 (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
31739 ST and EA.
31740 (Gen_Exception_Table_C): Correct same bugs
31741
31742 * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
31743
31744 * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
31745 on Windows, make sure that the drive letter is in upper case.
31746
31747 * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
31748 Windows, when the drive letter is added and Case_Sensitive is True, the
31749 drive letter is forced to upper case.
31750
31751 * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
31752 to Options_2 for the call to MLib.Utl.Gcc.
31753
31754 * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
31755 directory separator when defining BASE_DIR.
31756
23c7b149 317572004-09-01 Pascal Obry <obry@gnat.com>
6cdb2c6e
AC
31758
31759 * gprcmd.adb (Extend): Do not output trailing directory separator. This
31760 is not needed and it confuses Windows GNU/make which does not report
31761 directory terminated by a slash as a directory.
31762 (gprcmd): Idem for "pwd" internal command.
31763
31764 * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
31765 target names rewrite to fix regressions with recent version of
31766 GNU/make. Starting with GNU/make 3.80 the pipe character was not
31767 handled properly anymore.
31768
4eb104c1
AS
317692004-09-01 Andreas Schwab <schwab@suse.de>
31770
31771 * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
31772 * raise.c [!IN_RTS]: Undef abort.
31773
6a6bfc8e
NS
317742004-08-27 Nathan Sidwell <nathan@codesourcery.com>
31775
ce552f75
NS
31776 * utils2.c (build_allocator): Use ssize_int.
31777
6a6bfc8e
NS
31778 * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
31779
f8b7bf58
AS
317802004-08-27 Andreas Schwab <schwab@suse.de>
31781
31782 * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
31783
15793d0c
NS
317842004-08-25 Nathan Sidwell <nathan@codesourcery.com>
31785 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6615c446 31786
15793d0c
NS
31787 * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
31788
7d60be94
NS
317892004-08-25 Nathan Sidwell <nathan@codesourcery.com>
31790
31791 * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
31792 * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
31793 * utils.c (init_gigi_decls): Likewise.
31794 * utils2.c (build_call_raise, build_allocator): Likewise.
6615c446 31795
8c1d6d62
NS
317962004-08-24 Nathan Sidwell <nathan@codesourcery.com>
31797
7d60be94 31798 * utils.c (gnat_init_decl_processing): Adjust
8c1d6d62
NS
31799 build_common_tree_nodes call.
31800
3224bead
NS
318012004-08-20 Nathan Sidwell <nathan@codesourcery.com>
31802
31803 * utils2.c (build_allocator): Use build_int_cst for negative
31804 size types.
31805
4766261d
RH
318062004-08-18 Richard Henderson <rth@redhat.com>
31807
31808 * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
31809
1f6c00df
NS
318102004-08-16 Nathan Sidwell <nathan@codesourcery.com>
31811
31812 * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
31813 call.s
31814 * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
31815 (gnat_to_gnu): Likewise.
31816
4c46b835
AC
318172004-08-16 Pascal Obry <obry@gnat.com>
31818
31819 * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
31820 backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
31821 option and not mdll anymore. Update comment.
31822
318232004-08-16 Pascal Obry <obry@gnat.com>
31824
31825 * bld.adb (Put_Include_Project): Properly handle directory separators
31826 on Windows.
31827
318282004-08-16 Ed Schonberg <schonberg@gnat.com>
31829
31830 * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
31831 decreasing the number of allocated junk nodes while searching for the
31832 appropriate subprogram.
31833
4a90aeeb
NS
318342004-08-15 Nathan Sidwell <nathan@codesourcery.com>
31835
31836 * cuintp.c (UI_To_gnu): Use build_int_cst..
31837 * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
31838 * utils.c (init_gigi_decls): Likewise.
31839 * utils2.c (build_call_raise): Likewise.
31840
244e5a2c
AC
318412004-08-13 Olivier Hainque <hainque@act-europe.fr>
31842
31843 * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
31844 for a global aliased object with a variable size and an unconstrained
31845 nominal subtype, pretend there is no initializer if the one we have is
31846 incomplete, and avoid referencing an inexistant component in there. The
31847 part we have will be rebuilt anyway and the reference may confuse
31848 further operations.
31849
318502004-08-13 Thomas Quinot <quinot@act-europe.fr>
31851
31852 * einfo.ads: Minor reformatting
31853
31854 * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
31855 restrictions in the ALI if we only want to warn about violations.
31856
318572004-08-13 Vincent Celier <celier@gnat.com>
31858
31859 * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
31860 when creating a new Unit_Record in table Units.
31861
31862 * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
31863 that are violated, if any.
31864
31865 * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
31866 add directory separator if path already ends with a directory separator.
31867
318682004-08-13 Ed Schonberg <schonberg@gnat.com>
31869
31870 * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
31871 unit, this is an attempt to inline a construct that is not available in
31872 the current restricted mode, so abort rather than trying to continue.
31873
31874 * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
31875 discriminants that rename those of the parent, recover names of
31876 original discriminants for the constraint on the full view of the
31877 parent.
31878 (Complete_Private_Subtype): Do not create a subtype declaration if the
31879 subtype is an itype.
31880
31881 * gnat_rm.texi: Added section on implementation of discriminated
31882 records with default values for discriminants.
31883
318842004-08-13 Ed Schonberg <schonberg@gnat.com>
31885
31886 PR ada/15601
31887 * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
31888 the second operand is overloaded.
31889
1a186ec5
RH
318902004-08-10 Richard Henderson <rth@redhat.com>
31891
31892 * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
31893 add __builtin_alloca.
31894
89f1a702
RH
318952004-08-10 Richard Henderson <rth@redhat.com>
31896
31897 * config-lang.in (boot_language): Yes.
31898
5d09245e
AC
318992004-08-09 Thomas Quinot <quinot@act-europe.fr>
31900
31901 * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
31902 from complaining on potential uninitialized reference.
31903 Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
31904 new specification and test explicitly for non-zero return value.
31905
31906 * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
31907 returning C.int, to avoid using a derived boolean type.
31908
31909 * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
31910 Duplicate_Subexpr_No_Checks in preference to direct use of
31911 Remove_Side_Effects and New_Copy_Tree.
31912 Clear Comes_From_Source on prefix of 'Size attribute reference.
31913
31914 * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
31915 g-socthi-vxworks.adb: Change calls to
31916 GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
31917 and test explicitly for non-zero return value.
31918
6615c446 31919 * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
5d09245e
AC
31920 (Is_Socket_In_Set): Declare imported function as returning C.int, to
31921 avoid using a derived boolean type.
31922
319232004-08-09 Albert Lee <lee@gnat.com>
31924
31925 * system-irix-n32.ads: Refine tasking priority constants for IRIX.
31926
319272004-08-09 Pascal Obry <obry@gnat.com>
31928
31929 * gnat_ugn.texi: Document new way to build DLLs on Windows using
31930 GCC's -shared option.
31931
31932 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
31933 Options_2 parameter (options put after object files).
31934
319352004-08-09 Olivier Hainque <hainque@act-europe.fr>
31936
31937 * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
31938 ignore overflows on low and high bounds of an index to also account for
31939 differences in signedness between sizetype and gnu_index_subtype.
31940 These are as legitimate as the ones caused by a lower TYPE_PRECISION
31941 on sizetype.
31942
319432004-08-09 Robert Dewar <dewar@gnat.com>
31944
31945 * s-solita.ads, s-solita.adb: Minor reformatting
31946
31947 * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
31948 Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
31949 obsolescent section
31950 Add note that No_Implicit_Conditionals does not suppress
31951 run time constraint checks.
31952
31953 * vms_conv.ads: Minor reformatting
31954
31955 * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
31956 and necessary for following change).
31957 (Mark): Return new format Mark_Id containing sec stack address
31958 (Release): Use sec stack address from Mark_Id avoiding Self call
31959
31960 * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
31961 pointer (cleanup and necessary for following change).
31962 Define Mark_Id as record containing address of secondary stack, that way
31963 Release does not need to find the stack again, decreasing the number of
31964 calls to Self and improving efficiency.
31965
31966 * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
31967
31968 * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
31969 case variable into the individual case branches when possible.
31970
31971 * sem_ch11.adb: Minor reformatting
31972
31973 * prj.ads: Correct spelling of suffixs
31974
31975 * prj-nmsc.adb: Minor reformatting
31976 Correct spelling suffixs throughout (also in identifiers)
31977
31978 * freeze.adb: Minor spelling correction
31979
31980 * exp_ch2.adb: Cleanups to handling of Current_Value
31981 (no functional effect).
31982
31983 * bld.adb: Correct spelling of suffixs
31984
31985 * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
31986
319872004-08-09 Ed Schonberg <schonberg@gnat.com>
31988
31989 PR ada/15408
5d09245e
AC
31990 * sem_ch7.adb (Install_Private_Declarations): In the body of the
31991 package or of a child, private entities are both immediately_visible
31992 and not hidden.
31993
319942004-08-09 Ed Schonberg <schonberg@gnat.com>
31995
31996 * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
31997 there are no range checks on the value of the literal.
31998
31999 * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
32000 wrapped is the triggering alternative of an asynchronous select, action
32001 statements mustbe inserted before the select itself.
32002
32003 * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
32004 case where the prefix is a protected function call.
32005 (Resolve_Attribute, case 'Access): The attribute reference on a
32006 subprogram is legal in a generic body if the subprogram is declared
32007 elsewhere.
32008
320092004-08-09 Vincent Celier <celier@gnat.com>
32010
32011 * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
32012 languages, otherwise building the library may fail with unresolved
32013 symbols.
32014 (Compile_Sources): Do not build libraries if -c switch is used
32015
32016 * gnatlink.adb (Process_Args): New switches -M and -Mmap
32017 (Write_Usage): If map file creation is supported, output new switches
32018 -M and -Mmap.
32019 (Gnatlink): When -M is specified, add the necessary switch(es) to the
32020 gcc call, when supported.
32021
32022 * Makefile.in: Added indepsw.o to the object list for gnatlink
32023 Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
32024
32025 * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
32026 indepsw.adb, indepsw.ads: New files.
32027
320282004-08-09 Bernard Banner <banner@gnat.com>
32029
32030 * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
32031
32032 * Makefile.in: add section for vxworks x86
32033
320342004-08-09 Hristian Kirtchev <kirtchev@gnat.com>
32035
32036 * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
32037 per-object constrained components where the discriminant is of an
32038 Access type.
32039 (Build_Record_Init_Proc): Add condition to prevent the inheritance of
32040 the parent initialization procedure for derived Unchecked_Unions.
32041 Instead, derived Unchecked_Unions build their own initialization
32042 procedure.
32043 (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
32044 Check the body of the subprogram for details.
32045 (Freeze_Record_Type): Prevent the inheritance of discriminant checking
32046 functions for derived Unchecked_Union types by introducing a condition.
32047 Allow the creation of TSS equality functions for Unchecked_Unions.
32048 (Make_Eq_Case): Rename formal parameter Node to E in function signature.
32049 Add formal parameter Discr to function signature. Discr is used to
32050 control the generated case statement for Unchecked_Union types.
32051 (Make_Eq_If): Rename formal parameter Node to E in function signature.
32052
32053 * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
32054 Unchecked_Unions.
32055 Check the body of the subprogram for details.
32056 (Expand_Composite_Equality): Augment composite type equality to include
32057 correct handling of Unchecked_Union components.
32058 (Expand_N_In): Add condition to detect illegal membership tests when the
32059 subtype mark is a constrained Unchecked_Union and the expression lacks
32060 inferable discriminants, and build a Raise_Program_Error node.
32061 (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
32062 to detect types that contain components of unconstrained Unchecked_Union
32063 subtype. Add condition to detect equality between types that have an
32064 unconstrained Unchecked_Union component, and build a Raise_Program_Error
32065 node. Add condition to detect equality between Unchecked_Union types
32066 that lack inferable discriminants, and build a Raise_Program_Error node.
32067 Otherwise build a TSS equality function call.
32068 (Expand_N_Type_Conversion): Add condition to detect illegal conversions
32069 from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
32070 with the operand lacking inferable discriminants, and build a Raise_
32071 Program_Error node.
32072 (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
32073 composite equality.
32074 (Has_Inferable_Discriminants): Implement new predicate for objects and
32075 expressions of Unchecked_Union type. Check the body of subprogram for
32076 details.
32077 (Has_Unconstrained_UU_Components): Add function
32078 Component_Is_Unconstrained_UU. It is used to detect whether a single
32079 component is of an unconstrained Unchecked_Union subtype. Add function
32080 Variant_Is_Unconstrained_UU. It is used to detect whether a single
32081 component inside a variant is of an unconstrained Unchecked_Union type.
32082
32083 * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
32084 inferred discriminant values. Add condition to generate a case
32085 statement with an inferred discriminant as the switch.
32086 (Make_Component_List_Assign): Introduce a Boolean flag that determines
32087 the behaviour of the subprogram in the presence of an Unchecked_Union.
32088 Add condition to trigger the usage of the inferred discriminant value
32089 as the generated case statement switch.
32090 (Make_Field_Assign): Introduce a Boolean flag that determines the
32091 behaviour of the subprogram in the presence of an Unchecked_Union. Add
32092 condition to trigger the usage of the inferred discriminant value as
32093 the right-hand side of the generated assignment.
32094
32095 * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
32096 parameter generation when dealing with Unchecked_Unions.
32097
32098 * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
32099 checks for Unchecked_Unions.
32100
32101 * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
32102
32103 * exp_attr.adb (Expand_N_Attribute_Reference): Produce
32104 Raise_Program_Error nodes for the execution of Read and Write
32105 attributes of Unchecked_Union types and the execution of Input and
32106 Output attributes of Unchecked_Union types that lack default
32107 discriminant values.
32108
32109 * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
32110 Unchecked_Union. Add procedure Check_Component. It is used to inspect
32111 per-object constrained components of Unchecked_Unions for being
32112 Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
32113 check individual components withing a variant.
32114
32115 * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
32116 comparison of Unchecked_Unions.
32117 (Resolve_Equality_OP): Remove guard that prevents equality between
32118 Unchecked_Unions.
32119
32120 * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
32121 of component subtypes for Unchecked_Union components.
32122 (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
32123 since it is the actual subtype.
32124
32125 * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
32126 pass of Unchecked_Union subtypes as generic actuals to formal types
32127 that lack known_discriminant_parts or that are derived Unchecked_Union
32128 types, and do nothing. In any other case, produce an error message.
32129
32130 * sem_ch3.adb (Analyze_Component_Declaration): Add function
32131 Contains_POC. It determines whether a constraint uses the discriminant
32132 of an enclosing record type.
32133 Add condition to detect per-object constrained component and set the
32134 appropriate flag.
32135 (Derived_Type_Declaration): Remove guard that prevents derivation from
32136 Unchecked_Union types.
32137 (Process_Subtype): Remove quard that prevents the creation of Unchecked_
32138 Union subtypes.
32139
32140 * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
32141 references to Unchecked_Union discriminants.
32142
32143 * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
32144 formal generation when dealing with Unchecked_Unions.
32145 (Set_Actual_Subtypes): Add condition to prevent generation of actual
32146 subtypes for Unchecked_Unions.
32147
32148 * sem_ch7.adb (Analyze_Package_Specification): Add procedure
32149 Inspect_Unchecked_Union_Completion. It is used to detect incorrect
32150 completions of discriminated partial views by Unchecked_Unions and
32151 produce an error message.
32152
321532004-08-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32154
32155 * trans.c (struct stmt_group): New field, GLOBAL.
32156 (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
32157 (struct elab_info): New struct.
32158 (elab_info_list, gnu_elab_proc_stack): New variables.
32159 (Compilation_Unit_to_gnu): New procedure.
32160 (gigi): Call it and also handle elaboration procs we've saved.
32161 (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
32162 global field from parent.
32163 (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
32164 (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
32165 (start_stmt_group): Initialize global field from parent.
32166 (add_decl_expr): Set to global for current statement group.
32167 (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
32168 post.
32169
32170 * utils.c (global_bindings_p): True when no current_function_decl; no
32171 longer check current_binding_level.
32172
321732004-08-09 Ben Brosgol <brosgol@gnat.com>
32174
32175 * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
32176 choice.
32177
32178 * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
32179
160ff372
AS
321802004-08-06 Andreas Schwab <schwab@suse.de>
32181
32182 * utils.c (gnat_define_builtin): Remove second parameter of
32183 make_decl_rtl.
32184 (begin_subprog_body): Likewise.
32185
615cbd95
AC
321862004-07-26 Arnaud Charlet <charlet@act-europe.fr>
32187
32188 * sem_util.adb (Requires_Transient_Scope): Temporarily disable
32189 optimization, not supported by the tree-ssa back-end.
32190
321912004-07-26 Olivier Hainque <hainque@act-europe.fr>
32192
32193 * s-mastop-irix.adb: Update comments.
32194
32195 * a-except.adb (Exception_Information): Raise Constraint_Error if
32196 exception Id is Null_Id.
32197 This is required behavior, which is more reliably and clearly checked
32198 at the top level interface level.
32199
322002004-07-26 Javier Miranda <miranda@gnat.com>
32201
32202 * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
32203 call if a component has no default_expression and the box is used.
32204
32205 * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
32206 default_expression and you use box, it behaves as if you had declared a
32207 stand-alone object.
32208 (Resolve_Record_Aggregate): If a component has no default_expression and
32209 you use box, it behaves as if you had declared a stand-alone object.
32210
32211 * sem_ch10.adb (Install_Siblings): Do not make visible the private
32212 entities of private-with siblings.
32213
322142004-07-26 Ed Schonberg <schonberg@gnat.com>
32215
32216 * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
32217 for a component of an itype, set the parent pointer for analysis,
32218 there is no list in which to insert it.
32219
32220 * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
32221 bona-fide renamings, not for inherited operations.
32222
32223 * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
32224 actual for a formal that is an access parameter, create local
32225 finalization list even if the expression is not an aggregate.
32226
322272004-07-26 Ed Schonberg <schonberg@gnat.com>
32228
32229 PR ada/16213
32230 * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
32231 Diagnose properly illegal subprogram renamings that are library units.
32232
322332004-07-26 Ed Schonberg <schonberg@gnat.com>
32234
32235 PR ada/15588
32236 * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
32237 conversion rewritten as an unchecked conversion, check that original
32238 expression is a variable.
32239
32240 * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
32241 unchecked_conversion, create new node rather than rewriting in place,
32242 to preserve original construct.
32243
322442004-07-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32245
32246 * gigi.h (gnat_expand_body): Deleted.
32247
32248 * Make-lang.in: (trans.o): Depends on function.h.
32249
32250 * misc.c: (gnat_expand_body): Moved to here.
32251
32252 * trans.c (gnat_expand_body_1): Deleted.
32253 (gnat_expand_body): Moved from here.
32254 (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
32255 (add_stmt): Check for marked visited with global_bindings_p.
32256 (gnat_gimplify_expr, case COMPONENT_REF): New case.
32257 (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
32258
32259 * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
32260 VIEW_CONVERT_EXPR if not operation type.
32261
32262 * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
32263 fat pointer.
32264
32265 * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
32266 changes: reformatting of negation operators, removing unneeded
32267 inequality comparison with zero, converting equality comparisons with
32268 zero to negations, changing int/0/1 to bool/false/true, replace calls
32269 to gigi_abort with abort, and various other similar changes.
32270
322712004-07-26 Vincent Celier <celier@gnat.com>
32272
32273 * gnatcmd.adb (GNATCmd): Add processing for new built-in command
32274 "setup".
32275
32276 * make.adb (Gnatmake): Fail when a library is not present and there is
32277 no object directory.
32278
32279 * mlib-prj.adb (Check_Library): No need to check if the library needs
32280 to be rebuilt if there is no object directory, hence no object files
32281 to build the library.
32282
32283 * opt.ads (Setup_Projects): New Boolean flag.
32284
32285 * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
32286 Location.
32287 Create directory when Kind /= "" and in "gnat setup". Report error if
32288 directory cannot be created.
32289 (Ada_Check): Create library interface copy dir if it does not exist
32290 and we are in "gnat setup".
32291 (Find_Sources): No error if in "gnat setup" and no Ada sources were
32292 found.
32293 (Language_Independent_Check): Create object directory, exec directory
32294 and/or library directory if they do not exist and we are in
32295 "gnat setup".
32296
32297 * vms_conv.ads: (Command_Type): New command Setup.
32298
32299 * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
32300
32301 * vms_data.ads: Add qualifiers/switches for new built-in command
32302 "setup".
32303
b785f485
RH
323042004-07-25 Richard Henderson <rth@redhat.com>
32305
32306 * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
32307 DECL_IGNORED_P on RESULT_DECL.
32308
35ae2ed8
AC
323092004-07-20 Olivier Hainque <hainque@act-europe.fr>
32310
32311 * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
32312 allocation and potentially overflowing update with
32313 Tailored_Exception_Information. Use the sec-stack free procedural
32314 interface to output Exception_Information instead.
32315
32316 * a-except.adb (To_Stderr): New subprogram for character, and string
32317 version moved from a-exextr to be visible from other separate units.
32318 (Tailored_Exception_Information): Remove the procedural version,
32319 previously used by the default Last_Chance_Handler and not any more.
32320 Adjust various comments.
32321
32322 * a-exexda.adb: Generalize the exception information procedural
32323 interface, to minimize the use of secondary stack and the need for
32324 local buffers when the info is to be output to stderr:
32325 (Address_Image): Removed.
32326 (Append_Info_Character): New subprogram, checking for overflows and
32327 outputing to stderr if buffer to fill is of length 0.
32328 (Append_Info_String): Output to stderr if buffer to fill is of length 0.
32329 (Append_Info_Address, Append_Info_Exception_Name,
32330 Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
32331 Append_Info_Basic_Exception_Traceback,
32332 Append_Info_Exception_Information): New subprograms.
32333 (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
32334 (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
32335 Exception_Info_Maxlength, Exception_Name_Length,
32336 Exception_Message_Length): New subprograms.
32337 (Exception_Information): Use Append_Info_Exception_Information.
32338 (Tailored_Exception_Information): Use
32339 Append_Info_Basic_Exception_Information.
32340 Export services for the default Last_Chance_Handler.
32341
32342 * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
32343 other separate units.
32344
323452004-07-20 Vincent Celier <celier@gnat.com>
32346
32347 * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
32348
323492004-07-20 Ed Schonberg <schonberg@gnat.com>
32350
32351 * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
32352 emit itype references for the designated types of component types that
32353 are declared outside of the full record declaration, and that may
32354 denote a partial view of that record type.
32355
323562004-07-20 Ed Schonberg <schonberg@gnat.com>
32357
32358 PR ada/15607
32359 * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
32360 which is the designated type in an access component declaration, to the
32361 list of incomplete dependents of the parent type, to avoid elaboration
32362 issues with out-of-scope subtypes.
32363 (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
32364 full view of the parent.
32365
323662004-07-20 Ed Schonberg <schonberg@gnat.com>
32367
32368 PR ada/15610
32369 * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
32370 entities that are hidden, such as references to generic actuals
32371 outside an instance.
32372
323732004-07-20 Javier Miranda <miranda@gnat.com>
32374
32375 * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
32376 support to the new notation.
32377 (Analyze_Selected_Component): Add call to Try_Object_Operation.
32378
323792004-07-20 Jose Ruiz <ruiz@act-europe.fr>
32380
32381 * s-taprob.adb: Adding the elaboration code required for initializing
32382 the tasking soft links that are common to the full and the restricted
32383 run times.
32384
32385 * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
32386 restricted run time has been moved to the package
32387 System.Soft_Links.Tasking.
32388
32389 * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
32390 restricted run time has been moved to the package
32391 System.Soft_Links.Tasking.
32392
32393 * Makefile.rtl: Add entry for s-solita.o in run-time library list.
32394
32395 * s-solita.ads, s-solita.adb: New files.
32396
323972004-07-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32398
32399 * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
32400 Case_Statement_to_gnu): Split off from gnat_to_gnu.
32401 (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
32402 Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
32403 Exception_Handler_to_gnu_zcx): Likewise.
32404
6e34d3a3
JM
324052004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
32406
32407 * gigi.h (builtin_function): Declare.
32408
523456db
AC
324092004-07-15 Robert Dewar <dewar@gnat.com>
32410
32411 * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
32412 reformatting
32413
32414 * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
32415 access values as an example of a warning.
32416
32417 * gnat_rm.texi: Document new attribute Has_Access_Values
32418
32419 * gnat-style.texi: Document that box comments belong on nested
32420 subprograms
32421
32422 * sem_util.ads (Has_Access_Values): Improved documentation
32423
32424 * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
32425
32426 * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
32427 (Process_Interface_Name): Call to this new procedure
32428 (Set_Extended_Import_Export_External_Name): Call to this new procedure
32429
32430 * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
32431
32432 * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
32433
32434 * einfo.ads: Minor comment typo fixed
32435
324362004-07-15 Jose Ruiz <ruiz@act-europe.fr>
32437
32438 * snames.adb: Add _atcb.
32439
32440 * snames.ads: Add Name_uATCB.
32441
32442 * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
32443 (in the expanded code) when using the restricted run time.
32444
32445 * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
32446 a in parameter in order to allow ATCBs to be preallocated (in the
32447 expanded code).
32448
32449 * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
32450 order to allow ATCBs to be preallocated. In case of error, the ATCB is
32451 deallocated in System.Tasking.Stages.
32452
32453 * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
32454 order to allow ATCBs to be preallocated.
32455
32456 * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
32457 here. It was previously done in Initialize_ATCB.
32458
32459 * rtsfind.ads: Make the Ada_Task_Control_Block visible.
32460
32461 * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
32462 Restricted run time.
32463
32464 * exp_ch3.adb: When using the Restricted run time, pass the
32465 preallocated Ada_Task_Control_Block when creating a task.
32466
324672004-07-15 Ed Schonberg <schonberg@gnat.com>
32468
32469 * sem_util.adb (Normalize_Actuals): If there are no actuals on a
32470 function call that is itself an actual in an enclosing call, diagnose
32471 problem here rather than assuming that resolution will catch it.
32472
32473 * sem_ch7.adb (Analyze_Package_Specification): If the specification is
32474 the local copy of a generic unit for a formal package, and the generic
32475 is a child unit, install private part of ancestors before compiling
32476 private part of spec.
32477
32478 * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
32479 use scope entities rather than tree structures, to handle properly
32480 parent units that are instances rewritten as bodies for inlining
32481 purposes.
32482
32483 * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
32484 Remove_Parents): Handle properly a parent unit that is an
32485 instantiation, when the unit has been rewritten as a body for inlining
32486 purposes.
32487
32488 * par.adb (Goto_List): Global variable to collect goto statements in a
32489 given unit, for use in detecting natural loops.
32490
32491 * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
32492 use in detecting natural loops.
32493
32494 * par-labl.adb (Find_Natural_Loops): Recognize loops create by
32495 backwards goto's, and rewrite as a infinite loop, to improve locality
32496 of temporaries.
32497
32498 * exp_util.adb (Force_Evaluation): Recognize a left-hand side
32499 subcomponent that includes an indexed reference, to prevent the
32500 generation of copies that would miscompile the desired assignment
32501 statement.
32502 (Build_Task_Image_Decls): Add a numeric suffix to
32503 generated name for string variable, to avoid spurious conflicts with
32504 the name of the type of a single protected object.
32505
32506 * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
32507 loop with an explicit exit statement, to avoid generating an
32508 out-of-range value with 'Succ leading to spurious constraint_errors
32509 when compiling with -gnatVo.
32510
325112004-07-15 Thomas Quinot <quinot@act-europe.fr>
32512
32513 * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
32514 might not be analyzed yet, even if its Etype is already set (case of an
32515 unchecked conversion built using Unchecked_Convert_To, for example).
32516 If the prefix has already been analyzed, this will be a nop anyway.
32517
32518 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
32519 controller type, or an assignment of a record type with controlled
32520 components, copy only user data, and leave the finalization chain
32521 pointers untouched.
32522
325232004-07-15 Vincent Celier <celier@gnat.com>
32524
32525 * make.adb (Collect_Arguments): Improve error message when attempting
32526 to compile a source not part of any project, when -x is not used.
32527
32528 * prj.ads: (Defined_Variable_Kind): New subtype
32529
32530 * prj-attr.adb (Register_New_Package): Two new procedures to register
32531 a package with or without its attributes.
32532 (Register_New_Attribute): Mew procedure to register a new attribute in a
32533 package.
32534 New attribute oriented subprograms: Attribute_Node_Id_Of,
32535 Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
32536 Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
32537 Next_Attribute.
32538 New package oriented subprograms: Package_Node_Id_Of,
32539 Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
32540
32541 * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
32542 type.
32543 (Package_Node_Id): Now a private, self initialized type
32544 (Register_New_Package): New procedure to register a package with its
32545 attributes.
32546 New attribute oriented subprograms: Attribute_Node_Id_Of,
32547 Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
32548 Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
32549 Next_Attribute.
32550 New package oriented subprograms: Package_Node_Id_Of,
32551 Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
32552
32553 * prj-dect.adb (Parse_Attribute_Declaration,
32554 Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
32555
32556 * prj-makr.adb (Make): Parse existing project file before creating
32557 other files. Fail if there was an error during parsing.
32558
32559 * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
32560 new spec of Prj.Attr.
32561
32562 * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
32563 to new spec of Prj.Attr.
32564
325652004-07-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32566
32567 * utils2.c: Fix typo in comment.
32568
325692004-07-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
54805e13
RK
32570
32571 * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
32572 * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
32573
a1c7af89
AS
325742004-07-14 Andreas Schwab <schwab@suse.de>
32575
32576 * trans.c (gnat_init_stmt_group): Remove duplicate definition.
32577
a5cb3b30
AC
325782004-07-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32579
32580 * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
32581 object type.
32582 (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
32583 TYPE_STUB_DECL.
32584
32585 * misc.c (gnat_types_compatible_p): New function.
32586 (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
32587 (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
32588
32589 * trans.c (gigi): Move processing of main N_Compilation_Unit here.
32590 (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
32591 (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
32592 (mark_visited): Don't mark dummy type.
6615c446 32593 (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
a5cb3b30
AC
32594 parameter, we must remove any LJM building from GNU_NAME.
32595 (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
32596 (pos_to_constructor): Use int_const_binop.
32597 (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
32598 PARM_DECL.
32599
32600 * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
32601 (gnat_pushlevel): Set TREE_USE on BLOCK node.
32602 (gnat_install_builtins): Add __builtin_memset.
32603
326042004-07-13 Olivier Hainque <hainque@act-europe.fr>
32605
32606 * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
32607 for a renaming, stabilize the initialization expression if we are at a
32608 local level. At the local level, uses of the renaming may be performed
32609 by a direct dereference of the initializing expression, and we don't
32610 want possible variables there to be evaluated for every use.
32611
32612 * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
32613 Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
32614 them on the way. Account for the fact that we may introduce side
32615 effects in the process.
32616
0976078c
RH
326172004-07-13 Richard Henderson <rth@redhat.com>
32618
32619 * misc.c (default_pass_by_ref): Use pass_by_reference.
32620
9dcf6e73
JM
326212004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
32622
32623 * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
32624 LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
32625
ac45df5d
RH
326262004-07-08 Richard Henderson <rth@redhat.com>
32627
32628 * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
32629 commentary.
32630
15ce9ca2
AC
326312004-07-06 Vincent Celier <celier@gnat.com>
32632
32633 * vms_conv.ads: Minor reformatting.
32634 Alphabetical order for enumerated values of type Command_Type, to have
32635 the command in alphabetical order for the usage.
32636
32637 * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
32638 the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
32639
32640 * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
32641
32642 * makegpr.adb (Global_Archive_Exists): New global Boolean variable
32643 (Add_Archive_Path): Only add the global archive if there is one.
32644 (Build_Global_Archive): Set Global_Archive_Exists depending if there is
32645 or not any object file to put in the global archive, and don't build
32646 a global archive if there is none.
32647 (X_Switches): New table
32648 (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
32649 in the X_Switches table, if any.
32650 (Initialize): Make sure the X_Switches table is empty
32651 (Scan_Arg): Record -X switches in table X_Switches
32652
32653 * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
32654
32655 * make.adb: Minor comment fix
32656
32657 * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
32658 invoked with directory information, add the directory in front of the
32659 path.
32660
32661 * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
32662 invoked with directory information, add the directory in front of the
32663 path.
32664
32665 * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
32666 when Keep_Temporary_Files is False.
32667 (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
32668 directory information, add the directory in front of the path.
32669 When not on VMS, handle new switch -dn before the command to set
32670 Keep_Temporary_Files to True.
32671 (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
32672 everywhere.
32673
32674 * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
32675 invoked with directory information, add the directory in front of the
32676 path.
32677
326782004-07-06 Thomas Quinot <quinot@act-europe.fr>
32679
32680 * snames.ads, snames.adb (Name_Stub): New name for the distributed
32681 systems annex.
32682
32683 * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
32684 New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
32685
32686 * g-socket.adb (To_Timeval): Fix incorrect conversion of
32687 Selector_Duration to Timeval for the case of 0.0.
32688
32689 * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
32690 documentation from Evolve_And_Then.
32691
326922004-07-06 Jose Ruiz <ruiz@act-europe.fr>
32693
32694 * s-taprop-tru64.adb, s-taprop-os2.adb,
32695 s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
32696
326972004-07-06 Robert Dewar <dewar@gnat.com>
32698
32699 * s-osinte-hpux.ads, s-osinte-freebsd.ads,
32700 s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
32701 s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
32702 s-interr-sigaction.adb, s-taprop-irix-athread.adb,
32703 s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
32704 s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
32705 s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
32706 s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
32707 a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
32708 a-tags.ads, bindgen.ads, checks.adb, checks.adb,
32709 csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
32710 exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
32711 g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
32712 i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
32713 sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
32714 sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
32715 sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
32716 s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
32717 s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
32718 s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
32719 vms_data.ads: Minor reformatting,
32720 Fix bad box comment format.
32721
32722 * gnat_rm.texi: Fix minor grammatical error
32723
32724 * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
32725
32726 * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
32727 more cases of discriminated records to be recognized as not needing a
32728 secondary stack.
32729 (Has_Access_Values): New function.
32730
32731 * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
32732
32733 * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
32734 Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
32735 with LRM terminology).
32736 Change terminology in comments primitive type => elementary type.
32737
327382004-07-06 Ed Schonberg <schonberg@gnat.com>
32739
32740 PR ada/15602
32741 * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
32742 parameters do not impose any requirements on the presence of a body.
32743
327442004-07-06 Ed Schonberg <schonberg@gnat.com>
32745
32746 PR ada/15593
32747 * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
32748 compilation unit and is in an open scope at the point of instantiation,
32749 assume that a body may be present later.
32750
327512004-07-06 Ed Schonberg <schonberg@gnat.com>
32752
32753 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
32754 Improve error message when specified size is not supported.
32755
32756 * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
32757 is never a primitive operation.
32758
cb42deba
AS
327592004-07-05 Andreas Schwab <schwab@suse.de>
32760
32761 * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
32762 RECORD_OR_UNION_CHECK.
32763 (TYPE_CONTAINS_TEMPLATE_P): Likewise.
32764
98877933
KC
327652004-07-04 Kelley Cook <kcook@gcc.gnu.org>
32766
32767 * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
32768 dependency on xgnatugn, instead build it via a submake.
32769 (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
32770
8fff4fc1
RH
327712004-07-04 Richard Henderson <rth@redhat.com>
32772
32773 * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
32774
4dfa0342
RH
327752004-07-01 Richard Henderson <rth@redhat.com>
32776
32777 * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
32778 * utils.c (max_size): Likewise.
32779
909f21b3
RK
327802004-06-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32781
32782 * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
32783 and rest_of_type_compilation; add arg to create_*_decl.
15cd18b9 32784 (annotate_decl_with_node): Deleted.
909f21b3
RK
32785 (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
32786 * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
32787 (get_current_block_context, gnat_pushdecl): New declarations.
32788 (gnat_init_stmt_group): Likewise.
32789 (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
32790 * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
32791 (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
32792 (gnat_init): Call gnat_init_stmt_group.
32793 * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
32794 (gnu_pending_elaboration_list): Deleted.
32795 (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
32796 (gigi): Rearrange initialization calls and move some to last above.
32797 (gnat_to_gnu): If statement and not in procedure, go into elab proc.
32798 Delete calls to add_decl_expr; add arg to create_*_decl.
32799 (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
6615c446 32800 (gnat_to_gnu, case N_Subprogram_Body): Move some code to
909f21b3
RK
32801 begin_subprog_body and call it.
32802 Don't push and pop ggc context.
32803 (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
32804 (add_stmt): Remove handling of DECL_EXPR from here.
32805 If not in function, mark visited.
32806 (add_decl_expr): Put global at top level.
32807 Check for cases of DECL_INITIAL we have to handle here.
32808 (process_type): Add extra arg to create_type_decl.
32809 (build_unit_elab): Rework to just gimplify.
32810 * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
32811 (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
32812 (get_pending_elaborations, pending_elaborations_p): Likewise.
32813 (push_pending_elaborations, pop_pending_elaborations): Likewise.
32814 (get_elaboration_location, insert_elaboration_list): Likewise.
32815 (gnat_binding_level): Renamed from ada_binding_level.
32816 (init_gnat_to_gnu): Don't clear pending_elaborations.
32817 (global_bindings_p): Treat as global if no current_binding_level.
32818 (set_current_block_context): New function.
32819 (gnat_pushdecl): Renamed from pushdecl; major rework.
32820 All callers changed.
32821 (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
32822 (finish_record_type): Call call pushdecl for stub decl.
32823 (function_nesting_depth): Deleted.
32824 (begin_subprog_body): Delete obsolete code.
32825 * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
6615c446 32826
246d2ceb
AC
328272004-06-28 Robert Dewar <dewar@gnat.com>
32828
32829 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
32830 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
32831 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
32832 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
32833 a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
32834
32835 * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
32836 deal with problem of inefficient slices on machines with strict
32837 alignment, when the slice is a component of a composite.
32838
32839 * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
32840 machines, we need the check there as well.
32841
328422004-06-28 Ed Schonberg <schonberg@gnat.com>
32843
32844 * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
32845 determine safe copying direction for overlapping slice assignments
32846 when component is controlled.
32847
32848 * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
32849 formal derived type in the actual for a formal package are visible in
32850 the enclosing instance.
32851
328522004-06-28 Ed Schonberg <schonberg@gnat.com>
32853
32854 PR ada/15600
32855 * sem_util.adb (Trace_Components): Diagnose properly an illegal
32856 circularity involving a private type whose completion includes a
32857 self-referential component.
32858 (Enter_Name): Use Is_Inherited_Operation to distinguish a source
32859 renaming or an instantiation from an implicit derived operation.
32860
328612004-06-28 Pascal Obry <obry@gnat.com>
32862
32863 * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
32864 DLL.
32865 (Library_File_Name_For): Idem.
32866
328672004-06-28 Matthew Gingell <gingell@gnat.com>
32868
32869 * g-traceb.ads: Add explanatory note on the format of addresses
32870 expected by addr2line.
32871
328722004-06-28 Jerome Guitton <guitton@act-europe.fr>
32873
32874 * Makefile.in: Force debugging information on s-tasdeb.adb,
32875 a-except.adb and s-assert.adb needed by the debugger.
32876
328772004-06-28 Vincent Celier <celier@gnat.com>
32878
32879 * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
32880 Need_To_Build_Lib.
32881 (Gnatmake): Ditto.
32882
32883 * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
32884
32885 * prj.adb: Minor reformatting
32886 (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
32887
32888 * prj.ads: Comment updates
32889 Minor reformatting
32890 (Project_Data): Change Flag1 to Need_To_Build_Lib.
32891 Remove Flag2: not used.
32892
32893 * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
32894 declaration.
32895
32896 * gnat_ugn.texi: Put a "null;" declaration in one project file example
32897
32898 * gnat_rm.texi: Document Empty declarations "null;".
32899
32900 * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
32901 front of the linker options.
32902 (Link_Foreign): Put the global archives and the libraries in front of
32903 the linker options.
32904
329052004-06-28 Javier Miranda <miranda@gnat.com>
32906
32907 * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
32908 (RTU_Loaded): Code cleanup
32909 (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
32910 withed predefined units.
32911
32912 * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
32913 explicitly withed predefined units.
32914 Fix typo in comment
32915
32916 * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
32917 explicitly withed predefined units.
32918
bce3da32
RK
329192004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32920
32921 * ada-tree.def (DECL_STMT): Deleted.
32922 * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
32923 (DECL_STMT_VAR): Deleted.
32924 * decl.c: add_decl_stmt now add_decl_expr.
32925 * gigi.h: Likewise.
32926 * trans.c: Likewise.
15cd18b9 32927 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
bce3da32
RK
32928 (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
32929 (add_stmt): Only handle padded type here.
32930 (add_stmt_with_node): Allow gnat_node to not be present.
32931 (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
32932 (gnat_gimplify_stmt, case DECL_STMT): Deleted.
32933 (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
32934 make a SAVE_EXPR for the entire fat pointer.
32935 * utils.c (pushdecl): Walk a DECL_EXPR in global case.
32936 (create_index_type): Make a DECL_EXPR.
32937 (end_subprog_body): Don't call allocate_struct_function here but
32938 do clear cfun.
32939
0da2c8ac
AC
329402004-06-25 Pascal Obry <obry@gnat.com>
32941
32942 * makegpr.adb (Build_Library): Remove parameter Lib_Address and
32943 Relocatable from Build_Dynamic_Library call.
32944
32945 * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
32946 Relocatable are now synonym.
32947
32948 * Makefile.in: Use s-parame-mingw.adb on MingW platform.
32949
32950 * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
32951 Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
32952 call.
32953
32954 * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
32955 Lib_Address and Relocatable.
32956 (Default_DLL_Address): Removed.
32957
6615c446
JO
32958 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
32959 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
0da2c8ac
AC
32960 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
32961 (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
32962 (Default_DLL_Address): Removed.
32963
32964 * mlib-tgt-mingw.adb: Ditto.
32965 (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
32966
32967 * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
32968 the initial thread stack size.
32969
32970 * a-strmap.ads: Move package L to private part as it is not used in
32971 the spec. Found while reading code.
32972
329732004-06-25 Olivier Hainque <hainque@act-europe.fr>
32974
32975 * tracebak.c: Introduce support for a GCC infrastructure based
32976 implementation of __gnat_backtrace.
32977
32978 * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
32979 any more. Use accessors instead. This eases maintenance and relaxes
32980 some alignment constraints.
32981 (_GNAT_Exception structure): Remove the Ada specific fields
32982 (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
32983 a-exexpr.adb.
32984 (is_handled_by, __gnat_eh_personality): Replace component references to
32985 exception structure by use of the new accessors.
32986
32987 * init.c (__gnat_initialize): Adjust comments to match the just
32988 reverted meaning of the -static link-time option.
32989
32990 * adaint.c (convert_addresses): Arrange not to define a stub for
32991 mips-irix any more, as we now want to rely on a real version from a
32992 recent libaddr2line.
32993
32994 * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
32995 the personality routine can use them and not have to rely on a C
32996 counterpart of the record anymore. This simplifies maintenance and
32997 relaxes the constraint of having Standard'Maximum_Alignment match
32998 BIGGEST_ALIGNMENT.
32999 Update comments, and add a section on the common header alignment issue.
33000
330012004-06-25 Geert Bosch <bosch@gnat.com>
33002
33003 * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
33004 polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
33005
330062004-06-25 Robert Dewar <dewar@gnat.com>
33007
33008 * gnat_rm.texi: Fix section on component clauses to indicate that the
33009 restriction on byte boundary placement still applies for bit packed
33010 arrays.
33011 Add comment on stack usage from Initialize_Scalars
33012
33013 * gnat_ugn.texi: Add documentation for -gnatyLnnn
33014
33015 * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
33016 limiting nesting level.
33017
33018 * usage.adb: Add line for -gnatyLnnn switch
33019
33020 * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
33021 sem_ch13.adb, exp_aggr.adb: Minor reformatting
33022
33023 * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
33024 type as well as on the subtype. This corrects a problem in freeze in
33025 setting alignments of atomic types.
33026
33027 * sem_eval.ads: Minor comment typo fixed
33028
33029 * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
33030 level. Minor reformatting.
33031
33032 * fname.adb (Is_Predefined_File_Name): Require a letter after the
33033 minus sign. This means that file names like a--b.adb will not be
33034 considered predefined.
33035
33036 * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
33037 record Test new flag and give diagnostic for bad component clause.
33038 (Freeze_Entity): Set alignment of array from component alignment in
33039 cases where this is safe to do.
33040
33041 * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
33042 arrays.
33043
33044 * cstand.adb: (Create_Standard): Set alignment of String to 1
33045
33046 * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
33047
33048 * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
33049 code in the common constrained array cases.
33050
33051 * a-storio.adb: Change implementation to avoid possible alignment
33052 problems on machines requiring strict alignment (data should be moved
33053 as type Buffer, not type Elmt).
33054
33055 * checks.adb (Apply_Array_Size_Check): Improve these checks by
33056 killing the overflow checks which we really do not need (64-bits is
33057 enough).
33058
330592004-06-25 Vincent Celier <celier@gnat.com>
33060
33061 * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
33062 (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
33063 inconditionally for the main project.
33064 (Recursive_Add_Archives.Add_Archive_Path): New procedure
33065 (Link_Executables.Check_Time_Stamps): New procedure
33066 (Link_Executables.Link_Foreign): New procedure
33067 Changes made to reduce nesting level of this package
33068 (Check): New procedure
33069 (Add_Switches): When not in quiet output, check that a switch is not
33070 the concatenation of several valid switches. If it is, issue a warning.
33071 (Build_Global_Archive): If the global archive is rebuilt, linking need
33072 to be done.
33073 (Compile_Sources): Rebuilding a library archive does not imply
33074 rebuilding the global archive.
33075 (Build_Global_Archive): New procedure
33076 (Build_Library): New name for Build_Archive, now only for library
33077 project
33078 (Check_Archive_Builder): New procedure
33079 (Create_Global_Archive_Dependency_File): New procedure
33080 (Gprmake): Call Build_Global_Archive before linking
33081 * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
33082 throughout.
33083 (Scan_Arg): Display the Copyright notice when -v is used
33084
33085 * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
33086 for gnatls.
33087
33088 * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
33089 COMPILE.
33090 Add new GNAT LIST qualifier /FILES=
33091 Added qualifier /DIRECTORY= to GNAT METRIC
33092 Added qualifier /FILES= to GNAT METRIC
33093 Added qualifier /FILES to GNAT PRETTY
33094
33095 * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
33096 to take into account both versions of the switch.
33097
33098 * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
33099 always be the last switch to the gcc driver. Disable switch storing so
33100 that switches automatically added by the gcc driver are not put in the
33101 ALI file.
33102
33103 * prj.adb (Project_Empty): Take into account changes in components of
33104 Project_Data.
33105
33106 * prj.ads (Languages_Processed): New enumaration value All_Languages.
33107
33108 * prj.ads (Project_Data): Remove component Lib_Elaboration: never
33109 used. Split Boolean component Ada_Sources_Present in two Boolean
33110 components Ada_Sources_Present and Other_Sources_Present.
33111 Minor reformatting
33112
33113 * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
33114 instead of Sources_Present.
33115 (Set_Ada_Paths.Add.Recursive_Add): Ditto
33116
33117 * prj-nmsc.adb: Minor reformatting
33118 (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
33119 (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
33120 Check_Ada_Naming_Scheme.
33121 Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
33122 throughout.
33123
33124 * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
33125 In_Limited.
33126 Make sure that all cycles where there is at least one "limited with"
33127 are detected.
33128 (Parse_Single_Project): New Boolean parameter In_Limited
33129
33130 * prj-proc.adb (Recursive_Check): When Process_Languages is
33131 All_Languages, call first Prj.Nmsc.Ada_Check, then
33132 Prj.Nmsc.Other_Languages_Check.
33133
33134 * prj-proc.adb (Process): Use Ada_Sources_Present or
33135 Other_Sources_Present (instead of Sources_Present) depending on
33136 Process_Languages.
33137
33138 * lang-specs.h: Keep -g and -m switches in the same order, and as the
33139 last switches.
33140
33141 * lib.adb (Switch_Storing_Enabled): New global Boolean flag
33142 (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
33143 False.
33144 (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
33145 False.
33146
33147 * lib.ads (Disable_Switch_Storing): New procedure.
33148
33149 * make.adb: Modifications to reduce nesting level of this package.
33150 (Check_Standard_Library): New procedure
33151 (Gnatmake.Check_Mains): New procedure
33152 (Gnatmake.Create_Binder_Mapping_File): New procedure
33153 (Compile_Sources.Compile): Add switch -gnatez as the last option
33154 (Display): Never display -gnatez
33155
6615c446 33156 * Makefile.generic:
0da2c8ac
AC
33157 When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
33158
33159 * gnatcmd.adb (Check_Project): New function
33160 (Process_Link): New procedure to reduce nesting depth
33161 (Check_Files): New procedure to reduce the nesting depth.
33162 For GNAT METRIC, include the inherited sources in extending projects.
33163 (GNATCmd): When GNAT LS is invoked with a project file and no files,
33164 add the list of files from the sources of the project file. If this list
33165 is too long, put it in a temp text files and use switch -files=
33166 (Delete_Temp_Config_Files): Delete the temp text file that contains
33167 a list of source for gnatpp or gnatmetric, if one has been created.
33168 (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
33169 in the project file is too large, create a temporary text file that
33170 list them and pass it to the tool with "-files=<temp text file>".
33171 (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
33172
33173 * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
33174 generated file is in not in Ada.
33175
33176 * gnatls.adb: Remove all parameters And_Save that are no longer used.
33177 (Scan_Ls_Arg): Add processing for -files=
33178 (Usage): Add line for -files=
33179
33180 * g-os_lib.adb (On_Windows): New global constant Boolean flag
33181 (Normalize_Pathname): When on Windows and the path starts with a
33182 directory separator, make sure that the resulting path will start with
33183 a drive letter.
33184
33185 * clean.adb (Clean_Archive): New procedure
33186 (Clean_Project): When there is non-Ada code, delete the global archive,
33187 the archive dependency files, the object files and their dependency
33188 files, if they exist.
33189 (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
33190
331912004-06-25 Thomas Quinot <quinot@act-europe.fr>
33192
33193 * sinfo.ads: Fix typo in comment.
33194
33195 * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
33196 the TSS for remote access-to-subprogram types, since these TSS are
33197 always present once the type has been analyzed.
33198 (RAS_E_Dereference): Same.
33199
33200 * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
33201 reference raises Bad_Attribute, mark the reference as analyzed so the
33202 node (and any children resulting from rewrites that could have occurred
33203 during the analysis that ultimately failed) is not analyzed again.
33204
33205 * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
33206
33207 * exp_dist.adb: Minor comment fix.
33208
33209 * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
33210 type is an anonymous access type, no unchecked deallocation of the
33211 allocated object can occur. If the object is controlled, attach it with
33212 a count of 1. This allows attachment to the Global_Final_List, if
33213 no other relevant list is available.
33214 (Get_Allocator_Final_List): For an anonymous access type that is
33215 the type of a discriminant or record component, the corresponding
33216 finalisation list is the one of the scope of the type.
33217
332182004-06-25 Ed Schonberg <schonberg@gnat.com>
33219
33220 * sem_ch3.adb (Replace_Type): When computing the signature of an
33221 inherited subprogram, use the first subtype if the derived type
33222 declaration has no constraint.
33223
33224 * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
33225 before applying previous optimization. Minor code cleanup.
33226
33227 * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
33228 placed at the beginning of an unpacked record without explicit
33229 alignment, a slice of it will be aligned and does not need a copy when
33230 used as an actual.
33231
332322004-06-25 Ed Schonberg <schonberg@gnat.com>
33233
33234 PR ada/15591
33235 PR ada/15592
33236 * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
33237 reference is written with expressions mimicking parameters.
33238
332392004-06-25 Hristian Kirtchev <kirtchev@gnat.com>
33240
33241 PR ada/15589
33242 * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
33243 STEP 2a. The constraints of a full type declaration of a derived record
33244 type are checked for conformance with those declared in the
33245 corresponding private extension declaration. The message
33246 "not conformant with previous declaration" is emitted if an error is
33247 detected.
33248
332492004-06-25 Vasiliy Fofanov <fofanov@act-europe.fr>
33250
33251 * g-traceb.ads: Document the need for -E binder switch in the spec.
33252
33253 * g-trasym.ads: Document the need for -E binder switch in the spec.
33254
332552004-06-25 Jose Ruiz <ruiz@act-europe.fr>
33256
33257 * sem_prag.adb: Add handling of pragma Detect_Blocking.
33258
33259 * snames.h, snames.ads, snames.adb: Add entry for pragma
33260 Detect_Blocking.
33261
33262 * s-rident.ads: Change reference to pragma Detect_Blocking.
33263
33264 * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
33265 system.ads.
33266
33267 * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
33268 to indicate whether pragma Detect_Blocking is active.
33269
33270 * par-prag.adb: Add entry for pragma Detect_Blocking.
33271
33272 * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
33273 of not handling WITH.
33274 Note that this replaces the previous update which was incorrect.
33275
332762004-06-25 Javier Miranda <miranda@gnat.com>
33277
33278 * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
33279 use-clauses to have a clean environment.
33280
33281 * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
33282 the installation of the use-clauses to stablish a clean environment in
33283 case of compilation of a separate unit; otherwise the call to
33284 use_one_package is protected by the barrier Applicable_Use.
33285
33286 * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
33287 the installation of the use-clauses to stablish a clean environment in
33288 case of compilation of a separate unit.
33289 (End_Use_Clauses): Minor comment cleanup.
33290
332912004-06-25 Sergey Rybin <rybin@act-europe.fr>
33292
33293 * gnat_ugn.texi: Add description of the gnatpp 'files' switch
33294
65355d53
RH
332952004-06-23 Richard Henderson <rth@redhat.com>
33296
33297 * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
33298
c0e3aa48
RK
332992004-06-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33300
33301 * decl.c (elaborate_expression, elaborate_expression_1): Arguments
33302 now bool instead of int.
33303 (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
33304 * trans.c (gnu_switch_label_stack): New function.
33305 (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
33306 elaboration of renamed entity returns.
33307 (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
33308 (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
33309 (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
33310 (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
33311 DECL_SIZE_UNIT and simplify variable-sized case.
33312 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
33313 Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
33314 (gnat_stabilize_reference): Add arg to COMPONENT_REF.
33315 (build_unit_elab): Disable for now.
33316 * utils.c (mark_visited): New function.
33317 (pushdecl): Walk tree to call it for global decl.
33318 (update_pointer_to): Update all variants of pointer and ref types.
33319 Add arg to COMPONENT_REF.
33320 (convert): Likewise.
33321 Move check for converting between variants lower down.
33322 * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
33323 (build_allocator): Don't force type of MODIFY_EXPR.
33324 (gnat_mark_addressable, case VAR_DECL): Unconditionally call
33325 put_var_into_stack.
33326
966389ee
RK
333272004-06-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33328
33329 * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
33330 * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
33331 * decl.c (gnat_to_gnu_entity): Also set force_global for imported
33332 subprograms.
33333 * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
33334 all callers changed.
33335 (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
33336 the way that EXIT_STMT finds the loop label.
33337 (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
33338 (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
33339 (add_stmt): Use annotate_with_locus insted of setting directly.
33340 (pos_to_construct): Set TREE_PURPOSE of each entry to index.
33341 (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
33342 * utils.c (gnat_install_builtins): Install __builtin_memcmp.
33343 (build_vms_descriptor): Add extra args to ARRAY_REF.
33344 (convert): Use VIEW_CONVERT_EXPR between aggregate types.
33345 * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
33346 New cases.
33347 (build_binary_op): Don't make explicit CONVERT_EXPR.
33348 Add extra rgs to ARRAY_REF.
33349
cc335f43
AC
333502004-06-14 Pascal Obry <obry@gnat.com>
33351
33352 * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
33353 Windows. Fix minor typo.
33354
33355 * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
33356 which is now supported on Windows. With this implementation using the
33357 Library Project feature is no different on Windows than on UNIX.
33358
333592004-06-14 Vincent Celier <celier@gnat.com>
33360
33361 * makegpr.adb (Compile_Sources): Nothing to do when there are no
33362 non-Ada sources.
33363
33364 * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
33365
33366 * prj-part.adb (Parse_Single_Project): When a duplicate project name is
33367 found, show the project name and the path of the previously parsed
33368 project file.
33369
333702004-06-14 Ed Schonberg <schonberg@gnat.com>
33371
33372 * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
33373 array, avoid copying the actual before the call.
33374
333752004-06-14 Thomas Quinot <quinot@act-europe.fr>
33376
33377 * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
33378 Instead, allocate memory on worst-case alignment assumptions, and then
33379 return an aligned address within the allocated zone.
33380
333812004-06-14 Robert Dewar <dewar@gnat.com>
33382
33383 * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
33384 elab entities in predefined units in No_Run_Time_Mode.
33385 (Gen_Adainit_C): Same fix
33386 (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
33387 units in No_Run_Time_Mode
33388 (Gen_Elab_Calls_C): Same fix
33389
33390 * symbols-vms-alpha.adb: Minor reformatting
33391
33392 * g-debpoo.ads: Minor reformatting
33393
33394 * lib.adb (In_Same_Extended_Unit): Version working on node id's
33395
33396 * lib.ads (In_Same_Extended_Unit): Version working on node id's
33397
33398 * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
33399 working on nodes.
33400
33401 * make.adb: Minor reformatting
33402
33403 * par-ch12.adb: Minor reformatting
33404
33405 * par-prag.adb: Add dummy entry for pragma Profile_Warnings
33406
33407 * prj-strt.adb: Minor reformatting
33408
33409 * restrict.ads, restrict.adb: Redo handling of profile restrictions to
33410 be more general.
33411
33412 * sem_attr.adb: Minor reformatting
33413
33414 * sem_ch7.adb: Minor reformatting
33415
33416 * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
33417 for type in the same unit as the object declaration.
33418
33419 * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
33420 static string expressions and not just string literals.
33421 Minor reformatting
33422 (Set_Warning): Reset restriction warning flag for restriction pragma
33423 Implement pragma Profile_Warnings
33424 Implement pragma Profile (Restricted)
33425 Give obolescent messages for old restrictions and pragmas
33426
33427 * snames.h, snames.ads, snames.adb: Add new entry for pragma
33428 Profile_Warnings.
33429
33430 * s-rident.ads: Add declarations for restrictions required by profile
33431 Restricted and profile Ravenscar.
33432
33433 * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
33434
33435 * gnat_ugn.texi: Correct some missing entries in the list of GNAT
33436 configuration pragmas.
33437
5453d5bd
AC
334382004-06-11 Vincent Celier <celier@gnat.com>
33439
33440 * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
33441 gnatsym, when symbol policy is Restricted.
33442
33443 * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
33444 gnatsym, when symbol policy is Restricted.
33445
33446 * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
33447 read the symbol file.
33448 (Finalize): Fail in symbol policy Restricted if a symbol in the original
33449 symbol file is not in the object files. Do not create a new symbol file
33450 when symbol policy is Restricted.
33451
33452 * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
33453 in Scng.
33454
33455 * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
33456 Restricted.
33457 (Usage): Line for new switch -R
33458
33459 * make.adb (Initialize): When the platform is not VMS, add the
33460 directory where gnatmake is invoked in the front of the path, if
33461 gnatmake is invoked with directory information. Change the Scan_Args
33462 while loop to a for loop.
33463 (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
33464 if Depth is equal or greater than the proposed depth, there is nothing
33465 to do.
33466 (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
33467 instead of 0.
33468
33469 * prj.ads: Add new symbol policy Restricted.
33470
33471 * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
33472 with the new parameters Check_All_Labels and Case_Location.
33473
33474 * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
33475 (Library_Symbol_File needs to be defined).
33476
33477 * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
33478 and Case_Location If Check_All_Labels is True, check that all values of
33479 the string type are used, and output warning(s) if they are not.
33480
33481 * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
33482 and Case_Location.
33483
33484 * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
33485
33486 * gnat_ugn.texi: Update documentation about the library directory in
33487 Library Projects.
33488
33489 * makegpr.adb (Display_Command): In verbose mode, also display the
33490 value of the CPATH env var, when the compiler is gcc.
33491 (Initialize): Change the Scan_Args while loop to a for loop
33492 (Compile_Individual_Sources): Change directory to object directory
33493 before compilations.
33494
33495 * symbols.ads: New symbol policy Restricted.
33496
334972004-06-11 Olivier Hainque <hainque@act-europe.fr>
33498
33499 * a-except.adb (Raise_After_Setup family): Remove. The responsibility
33500 is now taken care of internally in the Exception_Propagation package
33501 and does not require clients assistance any more.
33502
33503 * a-exexpr.adb (Is_Setup_And_Not_Propagated,
33504 Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
33505 functions. Helpers to maintain a predicate required in the handling of
33506 occurrence transfer between tasks.
33507 This is now handled internally and does not require clients assistance
33508 for the setup/propagate separation anymore.
33509 (Setup_Exception, Propagate_Exception): Simplify the Private_Data
33510 allocation strategy, handle the Setup_And_Not_Propagated predicate and
33511 document.
33512
33513 * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
33514 raise_after_setup, now that everything is handled internally within the
33515 setup/propagation engine.
33516
335172004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
33518
33519 * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
33520 Add additional conditions for the case of an actual being a simple
33521 name or literal. Improve inlining by preventing the generation
33522 of temporaries with a short lifetime (one use).
33523
335242004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
33525
33526 PR ada/15587
5453d5bd
AC
33527 * einfo.ads: Minor comment updates for Has_Completion and
33528 E_Constant list of flags.
33529
33530 * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
33531 and constant redeclarations now set the Has_Completion flag of their
33532 defining identifiers.
33533
33534 * sem_ch7.adb (Analyze_Package_Spec): Add procedure
33535 Inspect_Deferred_Constant_Completion.
33536 Used to detect private deferred constants that have not been completed
33537 either by a constant redeclaration or pragma Import. Emits error message
33538 "constant declaration requires initialization expression".
33539
33540 * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
33541 completes a deferred constant.
33542
335432004-06-11 Geert Bosch <bosch@gnat.com>
33544
33545 * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
33546
33547 * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
33548 calculating exponent for scaling denormal numbers.
33549 (Leading_Part): Properly raise Constraint_Error for zero or negative
33550 Adjustment.
33551 (Remainder): Properly raise Constraint_Error for zero divisor.
33552
335532004-06-11 Thomas Quinot <quinot@act-europe.fr>
33554
33555 * sem_util.adb: Minor reformatting.
33556
33557 * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
33558 dereference when accessing the entry parameter record.
33559 (Check_Array_Type): Always check for possible implicit dereference.
33560 (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
33561 Abort if a pointer is still present (denoting that an implicit
33562 dereference was left in the tree by the front-end).
33563
33564 * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
33565 dereference when accessing the entry parameter record.
33566 (Check_Array_Type): Always check for possible implicit dereference.
33567 (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
33568 Abort if a pointer is still present (denoting that an implicit
33569 dereference was left in the tree by the front-end).
33570
335712004-06-11 Emmanuel Briot <briot@act-europe.fr>
33572
33573 * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
33574 message, like the compiler itself does. Easier to parse the output.
33575
33576 * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
33577
33578 * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
33579 be base names, and not includes directories.
33580
335812004-06-11 Arnaud Charlet <charlet@act-europe.fr>
33582
33583 * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
33584 so that dependencies are properly taken into account by make.
33585
335862004-06-11 Arnaud Charlet <charlet@act-europe.fr>
33587
33588 PR ada/15622
33589 * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
33590 exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
33591
335922004-06-11 Jerome Guitton <guitton@act-europe.fr>
33593
33594 * Makefile.in (install-gnatlib): install target-specific run-time files.
33595
33596 * Make-lang.in: Remove obsolete targets.
33597
335982004-06-11 Ed Schonberg <schonberg@gnat.com>
33599
33600 * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
33601 specification, to catch misuses of program unit names.
33602
33603 * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
33604 superfluous conversions in an instance.
33605
336062004-06-11 Ed Schonberg <schonberg@gnat.com>
33607
33608 PR ada/15403
5453d5bd
AC
33609 * sem_ch12.adb (Save_References): If operator node has been folded to
33610 enumeration literal, associated_node must be discarded.
33611
336122004-06-11 Jose Ruiz <ruiz@act-europe.fr>
33613
33614 * s-stchop-vxworks.adb: Add required pragma Convention to
33615 Task_Descriptor because it is updated by a C function.
33616
a98f59be
AC
336172004-06-08 Arnaud Charlet <charlet@act-europe.fr>
33618
33619 PR ada/15568
a98f59be
AC
33620 * Makefile.in: Remove target specific SO_OPT on IRIX
33621
821e1ea1
RK
336222004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33623
33624 * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
33625 (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
33626 (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
33627 (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
33628 (STMT_STMT, USE_STMT): New statement codes.
33629 (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
33630 * ada-tree.h: Reflect above changes.
15cd18b9 33631 (struct tree_loop_id): Deleted.
821e1ea1
RK
33632 (union lang_tree_node, struct lang_decl, struct lang_type):
33633 Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
33634 and DECL_LANGUAGE_SPECIFIC to reflect these changes.
33635 (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
33636 (IS_ADA_STMT): New macro.
33637 * decl.c (annotate_decl_with_node): New function.
33638 (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
33639 (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
33640 Call add_stmt_with_node to do needed assignments.
33641 Add call to update setjmp buffer directly, not via EXPR_STMT.
33642 (maybe_variable): Argment GNAT_NODE deleted.
33643 * gigi.h (maybe_variable): Likewise.
33644 (make_transform, add_stmt_with_node, set_block_for_group): New.
33645 (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
33646 (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
33647 (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
33648 (set_lineno, set_lineno_from_sloc): Likewise.
33649 (record_code_position, insert_code_for): Likewise.
33650 (gnat_poplevel): Now returns void.
33651 (end_subprog_body): Now takes argument.
33652 * misc.c (cgraph.h, tree-inline.h): New includes.
33653 (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
33654 (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
33655 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
33656 (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
33657 (gnat_parse_file): Don't set immediate_size_expand.
33658 Call cgraph functions.
33659 (gnat_expand_expr): Remove most cases.
33660 (record_code_position, insert_code_for): Remove from here.
33661 * trans.c (toplev.h, tree-gimple.h): Now included.
33662 (discard_file_names): Deleted.
33663 (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
33664 (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
33665 (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
33666 (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
33667 (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
33668 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
33669 (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
33670 (set_block_for_group, add_stmt_list): Likewise.
33671 (start_stmt_group): Renamed from start_block_stmt.
33672 (end_stmt_group): Likewise, from end_block_stmt.
33673 (build_stmt_group): Likewise, from build_block_stmt, also add arg.
33674 (gigi): Don't set discard_file_names or call set_lineno.
33675 Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
33676 (tree_transform): Deleted, now renamed to be gnat_to_gnu.
33677 Numerous changes throughout to reflect new names and complete
33678 function-at-a-time implementation.
33679 (gnat_expand_stmt): Delete or comment out all cases.
33680 (process_inlined_subprograms): Use add_stmt.
33681 (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
33682 call set_lineno; also remove unneeded block handling.
33683 (process_type): Remove unneeded block handling.
33684 (build_unit_elab): Remove calls to deleted functions.
33685 * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
33686 (tree-dump.h): Likewise.
33687 (struct ada_binding_level): Add field jmpbuf_decl.
33688 (gnat_define_builtin, gnat_install_builtins): New.
33689 (gnat_gimplify_function, gnat_finalize): Likewise.
33690 (gnat_poplevel): No longer return BLOCK, set it instead.
33691 Remove code dealing with nested functions.
33692 (gnat_init_decl_processing): Also set size_type_node.
33693 Call gnat_install_builtins.
33694 (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
33695 (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
33696 Remove special-case for "main".
33697 (end_subprog_body): Add arg and rework for tree-ssa.
33698 (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
33699 Add case for BOOLEAN_TYPE.
33700 * utils2.c (rtl.h): Now include.
33701 (build_call_raise): Test Debug_Flag_NN directly.
33702 (build_call_alloc_dealloc): Don't use local stack allocation for now.
33703 (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
33704 (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
33705
0ab80019
AC
337062004-06-07 Robert Dewar <dewar@gnat.com>
33707
33708 * a-direct.ads, einfo.ads: Minor comment updates
33709
33710 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
33711 s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
33712 s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
33713 s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
33714 s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
33715
33716 * s-interr-sigaction.adb: Remove unreferenced variable
33717 (Attached_Interrupts). Minor reformatting.
33718 Avoid use of variable I (replace by J).
33719
33720 * par-ch10.adb: Fix text of one error message
33721
33722 * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
33723 exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
33724 exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
33725 opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
33726 par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
33727 par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
6615c446 33728 sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
0ab80019
AC
33729 sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
33730 sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
33731 sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
33732 snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
33733 2005 support.
33734
337352004-06-07 Doug Rupp <rupp@gnat.com>
33736
33737 * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
33738
33739 * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
33740
33741 * mlib-tgt-vms-ia64.adb: New file.
33742
33743 * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
33744 Add mlib-tgt-vms-ia64.adb
33745 Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
33746 Move to alpha specific ifeq section.
33747 Add VMS specific versions of symbols.adb
33748 Renaming of 5q vms files.
33749
33750 * 5qsystem.ads renamed to system-vms_64.ads.
33751
337522004-06-07 Vincent Celier <celier@gnat.com>
33753
33754 * a-calend.ads: Add a GNAT Note comment after function Time_Of to
33755 explain that when a time of day corresponding to the non existing hour
33756 on the day switching to DST is specified, Split may return a different
33757 value for Seconds.
33758
33759 * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
33760 to GNAT PRETTY.
33761
33762 * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
33763 (Normalize_Pathname): Only resolve VMS logical names when on VMS.
33764
33765 * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
33766 to False.
33767 If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
33768 the linking options.
33769 (Build_Library.Check_Libs): On VMS, if there is a dependency on
33770 g-trasym.ads, set Gtrasymobj_Needed to True.
33771
33772 * prj-attr.adb: Add new package Metrics for gnatmetric
33773
33774 * prj-nmsc.adb (Record_Other_Sources): Put source file names in
33775 canonical case to take into account files with upper case characters on
33776 Windows.
33777 (Ada_Check): Load the reference symbol file name in the name buffer to
33778 check it, not the symbol file name.
33779
33780 * snames.ads, snames.adb: Add standard name Metrics (name of project
33781 file package for gnatmetric).
33782
33783 * vms_conv.ads: Add Metric to Comment_Type
33784
33785 * vms_conv.adb (Initialize): Add component dor Metric in Command_List
33786
33787 * vms_data.ads: Add qualifiers for GNAT METRIC
33788
33789 * makegpr.adb (Link_Executables): Take into account the switches
33790 specified in package Linker of the main project.
33791
337922004-06-07 Thomas Quinot <quinot@act-europe.fr>
33793
33794 * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
33795 the index of the last element is Units.Last, not Units.Table'Last
33796 (which is usually not a valid index within the actually allocated
33797 storage for the table).
33798
33799 * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
33800 determines whether to generate a call to a checked storage pool
33801 Dereference action.
33802 Generate such a call only for a dereference that either comes from
33803 source, or is the result of rewriting a dereference that comes from
33804 source.
33805
338062004-06-07 Romain Berrendonner <berrendo@act-europe.fr>
33807
33808 * bindgen.adb (Gen_Output_File): Add support for GAP builds.
33809
338102004-06-07 Eric Botcazou <ebotcazou@act-europe.fr>
33811
33812 (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
33813 file level, elaborate the stride for inner dimensions in alignment
33814 units, not bytes.
33815
33816 * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
33817 in a comment.
33818
338192004-06-07 Javier Miranda <miranda@gnat.com>
33820
33821 * exp_ch6.adb: Correct wrong modification in previous patch
33822
338232004-06-07 Vasiliy Fofanov <fofanov@act-europe.fr>
33824
33825 * g-trasym.ads: Corrected comment to properly reflect level of support
33826 on VMS.
33827
338282004-06-07 Hristian Kirtchev <kirtchev@gnat.com>
33829
33830 * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
33831 includes case of a variable referenced on the left hand side of an
33832 assignment, therefore remove redundant code. Variables and prefixes of
33833 indexed or selected components are now marked as referenced on left
33834 hand side. Warnings are now properly emitted when variables or prefixes
33835 are assigned but not read.
33836
33837 * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
33838 left hand side referenced variables. Private access types do not
33839 produce the warning "variable ... is assigned but never read".
33840 Add also additional checks to left hand side referenced variables.
33841 Aliased, renamed objects and access types do not produce the warning
33842 "variable ... is assigned but never read" since other entities may read
33843 the memory location.
33844
338452004-06-07 Jerome Guitton <guitton@act-europe.fr>
33846
33847 * Makefile.in: In the powerpc/vxworks-specific section, restore
33848 EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
33849 by mistake).
33850
338512004-06-07 Ed Schonberg <schonberg@gnat.com>
33852
33853 * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
33854 predefined operators.
33855 Removes spurious type errors from g-trasym-vms.adb.
33856
33857 * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
33858 distinct from the operator appearing in the source, call appropriate
33859 routine to insert conversions when needed, and complete resolution of
33860 node.
33861 (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
33862 interpretations for rewritten right operand.
33863 (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
33864 the other operand is overloaded and the context is a type conversion.
33865
338662004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33867
33868 * ada-tree.def (BLOCK_STMT): Now has two operands.
33869 (BREAK_STMT): New.
33870
33871 * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
33872
33873 * gigi.h: (gnat_poplevel): Now returns a tree.
33874
33875 * trans.c (end_block_stmt): Add arg; all callers changed.
33876 (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
33877 (start_block_stmt): Clear BLOCK_STMT_BLOCK.
33878 (add_stmt): Set TREE_TYPE.
33879 (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
33880 (gnat_expand_stmt, case BREAK_STMT): New case.
33881
33882 * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
33883
338842004-06-07 Jose Ruiz <ruiz@act-europe.fr>
33885
33886 * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
33887 procedure Set_Stack_Size that is not needed.
33888
338892004-06-07 Sergey Rybin <rybin@act-europe.fr>
33890
33891 * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
33892 used for gnatpp input file and for the files upon which it depends
33893
338942004-06-07 Ben Brosgol <brosgol@gnat.com>
33895
33896 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
33897
338982004-06-07 Arnaud Charlet <charlet@act-europe.fr>
33899
33900 * gnatvsn.ads: Bump version numbers appropriately.
33901 Add new build type.
33902
339032004-06-07 Pascal Obry <obry@gnat.com>
33904
33905 * gnat_ugn.texi: Improve comments about imported names and link names
33906 on Windows. Add a note about the requirement to use -k gnatdll's option
33907 when working with a DLL which has stripped stdcall symbols (no @nn
33908 suffix).
33909
8a36a0cc
AC
339102004-05-27 Vincent Celier <celier@gnat.com>
33911
33912 * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
33913 COMMENTS_LAYOUT=UNTOUCHED
33914
33915 * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
33916 symbols-vms-alpha.adb
33917
339182004-05-27 Thomas Quinot <quinot@act-europe.fr>
33919
33920 * sem.ads: Clarify documentation on checks suppression.
33921
33922 * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
33923
339242004-05-27 Ed Schonberg <schonberg@gnat.com>
33925
33926 * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
33927 the case of multiple derivations.
33928 (Is_Object_Reference): For a selected component, verify that the prefix
33929 is itself an object and not a value.
33930
33931 * sem_ch12.adb (Same_Instantiated_Constant): New name for
33932 Same_Instantiated_Entity.
33933 (Same_Instantiated_Variable): Subsidiary to
33934 Check_Formal_Package_Instance, to recognize actuals for in-out generic
33935 formals that are obtained from a previous formal package.
33936 (Instantiate_Subprogram_Body): Emit proper error when
33937 generating code and the proper body of a stub is missing.
33938
33939 * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
33940 has a universal interpretation, do the disambiguation here.
33941
33942 * exp_ch4.adb (Expand_N_Type_Conversion,
33943 Expand_N_Unchecked_Type_Conversion): Special handling when target type
33944 is Address, to avoid typing anomalies when Address is a visible integer
33945 type.
33946
33947 * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
33948 to determine whether a subprogram should not be marked Pure, even when
33949 declared in a pure package.
33950
339512004-05-27 Jose Ruiz <ruiz@act-europe.fr>
33952
33953 * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
33954
33955 * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
33956 Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
33957 Update the documentation about the Ravenscar profile, following the
33958 definition found in AI-249.
33959
33960 * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
33961 setting the Profile (Ravenscar). This must be done in addition to
33962 setting the required restrictions.
33963
33964 * rtsfind.ads: Add the set of operations defined in package
33965 Ada.Interrupts.
33966
33967 * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
33968 restriction.
33969
339702004-05-27 Eric Botcazou <ebotcazou@act-europe.fr>
33971
33972 lang-specs.h: Always require -c or -S and always redirect to /dev/null
33973 if -gnatc or -gnats is passed.
33974
339752004-05-27 Hristian Kirtchev <kirtchev@gnat.com>
33976
33977 * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
33978 a significant reference. Warnings are now properly emitted when a
33979 discriminated type is not referenced.
33980
33981 * lib-xref.adb (Generate_Reference): A deferred constant completion,
33982 record representation clause or record type discriminant does not
33983 produce a reference to its corresponding entity. Warnings are now
33984 properly emitted when deferred constants and record types are not
33985 referenced.
33986
339872004-05-27 Geert Bosch <bosch@gnat.com>
33988
33989 * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
33990 Fixes ACATS Annex G tests.
33991
339922004-05-27 Robert Dewar <dewar@gnat.com>
33993
33994 * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
33995 handling WITH
33996
339972004-05-27 Arnaud Charlet <charlet@act-europe.fr>
33998
33999 * s-interr.adb (Server_Task): Take into account case of early return
34000 from sigwait under e.g. linux.
34001
340022004-05-27 Sergey Rybin <rybin@act-europe.fr>
34003
34004 * gnat_ugn.texi: Add description for the new gnatpp options:
34005 -rnb - replace the original source without creating its backup copy
34006 -c0 - do not format comments
34007
0fb2ea01
AC
340082004-05-24 Geert Bosch <bosch@gnat.com>
34009
34010 * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
34011 with 192 bits of precision, sufficient to reduce a double-extended
34012 arguments X with a maximum relative error of T'Machine_Epsilon, for X
34013 in -2.0**32 .. 2.0**32.
34014 (Cos, Sin): Always reduce arguments of 1/4 Pi or larger, to prevent
34015 reduction by the processor, which only uses a 68-bit approximation of
34016 Pi.
34017 (Tan): Always reduce arguments and compute function either using
34018 the processor's fptan instruction, or by dividing sin and cos as needed.
34019
340202004-05-24 Doug Rupp <rupp@gnat.com>
34021
34022 * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
34023 gcc error on 32/64 bit VMS.
34024
340252004-05-24 Olivier Hainque <hainque@act-europe.fr>
34026
34027 * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
34028 since this is what we get for stack overflows although not documented
34029 as such.
34030 Document the issues which may require adjustments to our signal
34031 handlers.
34032
340332004-05-24 Ed Schonberg <schonberg@gnat.com>
34034
34035 * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
34036 enclosing dynamic scope if the instantiation is within a generic unit.
34037
340382004-05-24 Arnaud Charlet <charlet@act-europe.fr>
34039
34040 * exp_dbug.ads: Fix typo.
34041
34042 * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
34043 Rename it to its proper name: system-linux-ia64.ads
34044 (stamp-gnatlib1): Remove extra target specific run time files when
34045 setting up the rts directory.
34046
340472004-05-24 Javier Miranda <miranda@gnat.com>
34048
34049 * einfo.ads, einfo.adb (Limited_Views): Removed.
34050 (Limited_View): New attribute that replaces the previous one. It is
34051 now a bona fide package with the limited-view list through the
34052 first_entity and first_private attributes.
34053
34054 * sem_ch10.adb (Install_Private_With_Clauses): Give support to
34055 limited-private-with clause.
34056 (Install_Limited_Withed_Unit): Install the private declarations of a
34057 limited-private-withed package. Update the installation of the shadow
34058 entities according to the new structure (see Build_Limited_Views)
34059 (Build_Limited_Views): Replace the previous implementation of the
34060 limited view by a package entity that references the first shadow
34061 entity plus the first shadow private entity (required for limited-
34062 private-with clause)
34063 (New_Internal_Shadow_Entity): Code cleanup.
34064 (Remove_Limited_With_Clause): Update the implementation to undo the
34065 new work carried out by Build_Limited_Views.
34066 (Build_Chain): Complete documentation.
34067 Replace Ada0Y by Ada 0Y in comments
34068 Minor reformating
34069
34070 * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
34071 types the level of accessibility depends on the enclosing type
34072 declaration.
34073
34074 * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
34075 entities. Complete documentation of previous change.
34076
340772004-05-24 Robert Dewar <dewar@gnat.com>
34078
34079 * namet.adb: Minor reformatting
34080 Avoid use of name I (replace by J)
34081 Minor code restructuring
34082
34083 * sem_ch6.adb: Minor reformatting
34084
34085 * lib-writ.adb: Do not set restriction as active if this is a
34086 Restriction_Warning case.
34087
34088 * sem_prag.adb: Reset restriction warning flag if real pragma
34089 restriction encountered.
34090
34091 * s-htable.adb: Minor reformatting
34092 Change rotate count to 3 in Hash (improves hash for small strings)
34093
34094 * 5qsystem.ads: Add comments for type Address (no literals allowed).
34095
34096 * gnat_ugn.texi: Add new section of documentation "Code Generation
34097 Control", which describes the use of -m switches.
34098
340992004-05-24 Eric Botcazou <ebotcazou@act-europe.fr>
34100
a1db9d9c
AC
34101 trans.c (tree_transform) <N_Identifier>: Do the dereference directly
34102 through the DECL_INITIAL for renamed variables.
0fb2ea01 34103
7599f1b0
AC
341042004-05-24 Arnaud Charlet <charlet@act-europe.fr>
34105
34106 * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
34107
c37bb106
AC
341082004-05-19 Joel Brobecker <brobecker@gnat.com>
34109
34110 * exp_dbug.ads: Correct comments concerning handling of overloading,
34111 since we no longer use $ anymore.
34112
341132004-05-19 Sergey Rybin <rybin@act-europe.fr>
34114
34115 * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
34116 ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
34117 with illegal subunits.
34118
341192004-05-19 Ed Schonberg <schonberg@gnat.com>
34120
34121 * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
34122 body with front-end inlining enabled, check whether an inline pragma
34123 appears immediately after the body and applies to it.
34124
34125 * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
34126 enabled and the pragma appears after the body of the subprogram.
34127
b5e792e2
AC
341282004-05-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34129
34130 Part of function-at-a-time conversion
34131
34132 * misc.c (adjust_decl_rtl): Deleted.
34133 (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
34134 Define.
34135
34136 * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
34137 (add_decl_stmt, add_stmt, block_has_vars): New functions.
34138 (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
34139
34140 * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
34141 when making a decl.
34142 (gnat_to_gnu_entity): Likewise.
34143 Use add_stmt to update setjmp buffer.
34144 Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
34145 flush_addressof.
34146 No longer call adjust_decl_rtl.
34147 (DECL_INIT_BY_ASSIGN_P): New macro.
34148 (DECL_STMT_VAR): Likewise.
34149
34150 * trans.c (gigi): Call start_block_stmt to make the outermost
34151 BLOCK_STMT.
34152 (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
34153 Call start_block_stmt and end_block_stmt temporarily.
34154 Use gnat_expand_stmt instead of expand_expr_stmt.
34155 (add_decl_stmt): New function.
34156 (tree_transform): Call it.
34157 (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
34158 (end_block_stmt): Set type and NULL_STMT.
34159 (gnat_expand_stmt): Make recursize call instead of calling
34160 expand_expr_stmt.
34161 (gnat_expand_stmt, case DECL_STMT): New case.
34162 (set_lineno_from_sloc): Do nothing if global.
34163 (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
34164 (start_block_stmt, add_stmt, end_block_stmt): New functions.
34165 (build_block_stmt): Call them.
34166 (gnat_to_code): Don't expand NULL_STMT.
34167 (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
34168 args.
34169 (tree_transform): Likewise.
34170 (tree_transform, case N_Null_Statement): Return NULL_STMT.
34171 (gnat_expand_stmt, case NULL_STMT): New case.
34172 (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
34173 IF_STMT_TRUE.
34174
34175 * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
34176 TREE_ADDRESSABLE.
34177
34178 * utils.c (create_var_decl): Do not call expand_decl or
34179 expand_decl_init.
34180 Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
34181 Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
34182 here.
34183 (struct e_stack): Add chain_next to GTY.
34184 (struct binding_level): Deleted.
34185 (struct ada_binding_level): New struct.
34186 (free_block_chain): New.
34187 (global_binding_level, clear_binding_level): Deleted.
34188 (global_bindings_p): Rework to see if no chain.
34189 (kept_level_p, set_block): Deleted.
34190 (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
34191 new data structure and work directly on BLOCK node.
34192 (gnat_poplevel): Similarly.
34193 (get_decls): Look at BLOCK_VARS.
34194 (insert_block): Work directly on BLOCK node.
34195 (block_has_var): New function.
34196 (pushdecl): Rework for new binding structures.
34197 (gnat_init_decl_processing): Rename and rework calls to pushlevel and
34198 poplevel.
34199 (build_subprog_body): Likewise.
34200 (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
34201
34202 * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
34203
34204 * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
34205 (DECL_STMT_VAR): Likewise.
34206
342072004-05-17 Robert Dewar <dewar@gnat.com>
34208
34209 * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
34210 procedure
34211
34212 * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
34213 of restriction synonyums by using
34214 Restrict.Process_Restriction_Synonyms.
34215
34216 * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
34217
34218 * s-restri.ads (Tasking_Allowed): Correct missing comment
34219
34220 * s-rident.ads: Add entries for restriction synonyms
34221
34222 * ali.adb: Fix some problems with badly formatted ALI files that can
34223 result in infinite loops.
34224
34225 * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
34226 s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
34227 s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
34228 s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
34229 s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
34230 s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
34231 s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
34232 s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
34233 s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
34234 a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
34235 exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
34236 s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
34237 s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
34238 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
34239 s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
34240 s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
34241 s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
34242 s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
34243 s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
34244 s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
34245 to Task_Id (minor cleanup).
34246
342472004-05-17 Vincent Celier <celier@gnat.com>
34248
34249 * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
34250 directory separator.
34251
34252 * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
34253 project being extended, if Languages is not declared in extending
34254 project.
34255
342562004-05-17 Javier Miranda <miranda@gnat.com>
34257
34258 * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
34259 limited view of a visible sibling.
34260
9bc856dd
AC
342612004-05-14 Robert Dewar <dewar@gnat.com>
34262
34263 * gnat_ugn.texi: Minor change to -gnatS documentation
34264
34265 * sprint.adb: Remove some instances of Assert (False) and for this
34266 purpose replace them by output of a ??? string.
34267
34268 * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
34269 Assert (False).
34270
34271 * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
34272 flag processing. This was suppressing required dependencies in
34273 No_Run_Time mode and is not needed since the binder does not generate
34274 references for things in libgnat anyway.
34275
34276 * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
34277 warning.
34278
342792004-05-14 Thomas Quinot <quinot@act-europe.fr>
34280
34281 * gnat_ugn.texi: Document AIX-specific issue with initialization of
34282 resolver library.
34283
34284 * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
34285 action for the case of an actual parameter in an init proc call.
34286
342872004-05-14 Ed Schonberg <schonberg@gnat.com>
34288
34289 * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
34290 subtype, check visible entities in base type.
34291
34292 * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
34293 actions if the object is a renaming.
34294
34295 * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
34296 Check_Formal_Package_Instance, to determine more precisely when the
34297 formal and the actual denote the same entity.
34298
342992004-05-14 Javier Miranda <miranda@gnat.com>
34300
34301 * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
34302
34303 * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
34304 corresponding to a private_with must be removed from visibility; it
34305 will be made visible later, just before we analyze the private part of
34306 the package.
34307 (Check_Private_Child_Unit): Allow private_with clauses in public
34308 siblings.
34309 (Install_Siblings): Make visible the private entities of private-withed
34310 siblings.
34311 (Install_Withed_Unit): Do not install the private withed unit if we
34312 are compiling a package declaration and the Private_With_OK flag was
34313 not set by the caller. These declarations will be installed later,
34314 just before we analyze the private part of the package.
34315
34316 * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
34317 during the evaluation of the expression that initializes the object,
34318 decorate it with the expected type to avoid cascade errors.
34319 Code cleanup.
34320
34321 * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
34322 subprogram we have to install the private_with clauses after its
34323 specification has been analyzed (as documented in AI-262.TXT).
34324
34325 * sem_ch8.adb (Has_Private_With): New function. Determines if the
34326 current compilation unit has a private with on a given entity.
34327 (Find_Direct_Name): Detect the Beaujolais problem described in
34328 AI-262.TXT
34329
34330 * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
34331 provides the functionality of the function Is_Ancestor that was
34332 previously available in sem_ch10. It has been renamed to avoid
34333 overloading.
34334
34335 * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
34336
343372004-05-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34338
34339 * utils.c (build_vms_descriptor): Use SImode pointers.
34340
343412004-05-14 Vasiliy Fofanov <fofanov@act-europe.fr>
34342
34343 * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
34344
343452004-05-14 GNAT Script <nobody@gnat.com>
34346
34347 * Make-lang.in: Makefile automatically updated
34348
084c663c
AC
343492004-05-14 Arnaud Charlet <charlet@act-europe.fr>
34350
34351 Renaming of target specific files for clarity
34352
6615c446 34353 * Makefile.in: Rename GNAT target specific files.
084c663c
AC
34354
34355 * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
34356 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
34357 3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
34358 3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
34359 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
34360 3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
34361 42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
34362 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
34363 4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
34364 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
34365 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
34366 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
34367 51osinte.adb, 51osinte.ads, 51system.ads,
34368 52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
34369 55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
34370 56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
34371 56tpopsp.adb, 57system.ads, 58system.ads,
34372 5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
34373 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
34374 5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
34375 5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
34376 5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
34377 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
34378 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
34379 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
34380 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
34381 5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
34382 5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
34383 5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
34384 5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
34385 5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
34386 5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
34387 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
34388 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
34389 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
34390 5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
34391 5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
34392 5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
34393 5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
34394 5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
34395 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
34396 5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
34397 5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
34398 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
34399 5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
34400 5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
34401 5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
34402 5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
34403 5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
34404 5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
34405 5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
34406 5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
34407 5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
34408 7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
34409 7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
34410 7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
34411 7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
34412
34413 * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
34414 a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
34415 a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
34416 a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
34417 a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
34418 a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
34419 a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
34420 a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
34421 a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
34422 a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
34423 g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
34424 g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
34425 g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
34426 g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
34427 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
34428 g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
34429 g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
34430 g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
34431 interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
34432 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
34433 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
34434 mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
34435 s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
34436 s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
34437 s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
34438 s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
34439 s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
34440 s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
34441 s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
34442 s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
34443 s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
34444 s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
34445 s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
34446 s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
34447 s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
34448 s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
34449 s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
34450 s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
34451 s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
34452 s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
34453 s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
34454 s-osinte-vms.ads, s-osinte-vxworks.adb,
34455 s-osinte-vxworks.ads, s-osprim-mingw.adb,
34456 s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
34457 s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
34458 s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
34459 s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
34460 s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
34461 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
34462 s-stchop-vxworks.adb, s-taprop-dummy.adb,
34463 s-taprop-hpux-dce.adb, s-taprop-irix.adb,
34464 s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
34465 s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
34466 s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
34467 s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
34468 s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
34469 s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
34470 s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
34471 s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
34472 s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
34473 s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
34474 s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
34475 s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
34476 s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
34477 s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
34478 s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
34479 s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
34480 s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
34481 symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
34482 system-hpux.ads, system-interix.ads, system-irix-n32.ads,
34483 system-irix-o32.ads, system-linux-x86_64.ads,
34484 system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
34485 system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
34486 system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
34487 system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
34488 system-vxworks-alpha.ads, system-vxworks-m68k.ads,
34489 system-vxworks-mips.ads, system-vxworks-ppc.ads,
34490 system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
34491 above.
34492
90afe2c9
ZW
344932004-05-13 Zack Weinberg <zack@codesourcery.com>
34494
34495 * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
34496
6de9cd9a
DN
344972004-05-13 Diego Novillo <dnovillo@redhat.com>
34498
34499 Merge from tree-ssa-20020619-branch.
34500
34501 * config-lang.in (boot_language, build_by_default): Set
34502 to no.
34503 * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
34504 (max_size): Add static chain op for call_expr.
34505
f5657d67
RS
345062004-05-12 Richard Sandiford <rsandifo@redhat.com>
34507
34508 PR target/15331
34509 * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
34510
4413b636
RS
345112004-05-11 Roger Sayle <roger@eyesopen.com>
34512
34513 * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
34514 COND_EXPR.
34515
5950a3ac
AC
345162004-05-10 Doug Rupp <rupp@gnat.com>
34517
34518 * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
34519 system.aux_dec.
34520
34521 * s-auxdec.ads: Add Short_Address subtype (moved here from System).
34522
34523 * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
34524
34525 * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
34526 Fixes undefined symbols in IA64 gnatlib.
34527
34528 * 5vinmaop.adb: Reference s-auxdec for Short_Address.
34529
34530 * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
34531 Short_Address). This will be moved to system.auxdec.
34532
345332004-05-10 Thomas Quinot <quinot@act-europe.fr>
34534
34535 * sem_util.adb: Replace test for presence of a node that is always
34536 present with a call to Discard_Node.
34537
34538 * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
34539 Analyze on the library unit node after generation of distribution stub
34540 constructs. The call was a no-op because Unit_Node has already been
34541 Analyzed, and the tree fragments for the distribution stubs are
34542 analyzed as they are inserted in Exp_Dist.
34543 Update comment regarding to distribution stubs to reflect that we
34544 do not generate stub in separate files anymore.
34545
34546 * einfo.ads: Clarify the fact that a tagged private type has the
34547 E_Record_Type_With_Private Ekind.
34548
34549 * erroutc.adb: Minor reformatting
34550
34551 * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
34552 values if line length is increased using -gnatyM (noticed during code
34553 reading).
34554
34555 * eval_fat.adb: Minor reformatting
34556 Put spaces around exponentiation operator
34557
345582004-05-10 Ed Schonberg <schonberg@gnat.com>
34559
34560 PR ada/15005
34561 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
34562 has been rewritten as an explicit dereference, retrieve type of
34563 original node to check for possibly unconstrained record type.
34564
345652004-05-10 Ed Schonberg <schonberg@gnat.com>
34566
34567 * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
34568 overriding, use the operation of the parent unconditionally.
34569
34570 * sem_ch4.adb (Remove_Address_Interpretations): Remove address
34571 operation when either operand is a literal, to avoid further
34572 ambiguities.
34573
34574 * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
34575 overridden by a previous explicit declaration, mark the previous entity
34576 as overriding.
34577
34578 * sem_disp.adb (Check_Dispatching_Operation): New predicate
34579 Is_Visibly_Controlled, to determine whether a declaration of a
34580 primitive control operation for a derived type overrides an inherited
34581 one. Add warning if the explicit declaration does not override.
34582
345832004-05-10 Vincent Celier <celier@gnat.com>
34584
34585 * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
34586 some cases when the sources are no longer present.
34587
34588 * make.adb (Collect_Arguments): Fail if an external source, not part
34589 of any project need to be compiled, when switch -x has not been
34590 specified.
34591
34592 * makeusg.adb: Document new switch -x
34593
34594 * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
34595 defaulted to False.
34596
34597 * switch-m.adb (Scan_Make_Switches): New switch -x
34598
34599 * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
34600 gnatmake switch -x.
34601
34602 * gnat_ugn.texi: Document new gnatmake switch -x
34603
346042004-05-10 Eric Botcazou <ebotcazou@act-europe.fr>
34605
34606 * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
34607
34608 * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
34609 (process_attributes): Likewise.
34610
346112004-05-10 Joel Brobecker <brobecker@gnat.com>
34612
34613 * s-inmaop.ads: Fix spelling mistake in one of the comments.
34614
346152004-05-10 Robert Dewar <dewar@gnat.com>
34616
34617 * gnat_ugn.texi: Document that for config pragma files, the maximum
34618 line length is always 32767.
34619
34620 * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
34621 literals is now allowed.
34622
34623 * gnat-style.texi: Remove statement about splitting long lines before
34624 an operator rather than after, since we do not follow this rule at all.
34625 Clarify rule (really lack of rule) for spaces around exponentiation
34626
34627 * sem_elim.adb: Allow concatenation of string literals as well as a
34628 single string literal for pragma arguments.
34629
34630 * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
34631
34632 * a-textio.adb (Terminate_Line): Do not add line feed if nothing
34633 written for append case.
34634
34635 * frontend.adb: Changes to avoid checking max line length in config
34636 pragma files.
34637
34638 * g-os_lib.ads: Minor reformatting
34639
34640 * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
34641 wrong in any case. Instead use standard value. Noticed during code
34642 reading.
34643
34644 * opt.ads (Max_Line_Length): New field, used to implement removal of
34645 limitation on length of lines when scanning config pragma files.
34646
34647 * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
34648 makeutl.ads, makeutl.adb: Minor reformatting
34649
34650 * scn.adb: Do not check line length while scanning config pragma files
34651 Do not check line length while scanning out license information
34652
34653 * scng.adb: Changes to avoid line length checks while parsing config
34654 pragma files.
34655
346562004-05-10 GNAT Script <nobody@gnat.com>
34657
34658 * Make-lang.in: Makefile automatically updated
34659
48664302
AC
346602004-05-05 Arnaud Charlet <charlet@act-europe.fr>
34661
34662 * osint.adb (Find_Program_Name): Fix handling of VMS version
34663 number.
34664
aa720a54
AC
346652004-05-05 Emmanuel Briot <briot@act-europe.fr>
34666
34667 * g-os_lib.ads (Invalid_Time): New constant
34668
34669 * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
34670 return OS_Time instead of time_t to match what is imported by Ada.
34671 Now return -1 if the file doesn't exist, instead of a random value
34672
346732004-05-05 Robert Dewar <dewar@gnat.com>
34674
34675 * usage.adb: Add line for -gnatR?s switch
34676
34677 * sem_ch13.adb, exp_ch2.adb: Minor reformatting
34678
34679 * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
34680 and for Match (Data_First, Data_last)
34681
34682 * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
34683 written when we are dealing with multi-unit files.
34684
346852004-05-05 Jerome Guitton <guitton@act-europe.fr>
34686
34687 * Makefile.in: Remove unused targets and variables.
34688
346892004-05-05 Vincent Celier <celier@gnat.com>
34690
34691 * switch-m.adb: New gnatmake switch -eI
34692
34693 * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
34694 of new gnatmake switch -eInnn.
34695
34696 * makegpr.adb: Take into account new parameters Index and Src_Index in
34697 Prj.Util.
34698
34699 * clean.adb: Implement support for multi-unit sources, including new
34700 switch -i.
34701
34702 * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
34703 Src_Index.
34704
34705 * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
34706 (Extract_From_Q): New out parameter Index
34707 (Mark, Is_Marked): Subprograms moved to Makeutl
34708 (Switches_Of): New parameter Source_Index
34709 (Add_Switch): New parameter Index
34710 (Check): New parameter Source_Index
34711 (Collect_Arguments): New parameter Source_Index
34712 (Collect_Arguments_And_Compile): New parameter Source_Index
34713 (Compile): New parameter Source_Index
34714 Put subprograms in alphabetical order
34715 Add support for multi-source sources, including in project files.
34716
34717 * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
34718 (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
34719 Make.
34720
34721 * makeusg.adb: New gnatmake switch -eInnn
34722
34723 * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
34724 Prj.Util.Value_Of.
34725
34726 * opt.ads (Main_Index): New variable, defaulted to 0.
34727
34728 * osint.ads, osinte.adb (Add_File): New parameter Index
34729 (Current_Source_Index): New function
34730
34731 * prj.adb: Take into account new components Index and Src_Index
34732
34733 * prj.ads (String_Element): New component Index
34734 (Variable_Value): New component Index
34735 (Array_Element): New component Src_Index
34736
34737 * prj-attr.adb: Indicate that optional index may be specified for
34738 attributes Main, Executable, Spec, Body and some of Switches.
34739
34740 * prj-attr.ads (Attribute_Kind): New values for optional indexes
34741 (Attribute_Record): New component Optional_Index
34742
34743 * prj-com.ads (File_Name_Data): New component Index
34744
34745 * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
34746
34747 * prj-env.adb (Put): Output optional index
34748
34749 * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
34750 attributes Spec and Body.
34751
34752 * prj-nmsc.adb: Process optional indexes
34753
34754 * prj-pp.adb: Ouput "at" for optional indexes
34755
34756 * prj-proc.adb: Take into account optional indexes
34757
34758 * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
34759 Optional_Index. For string literal,
34760 process optional index when Optional_Index is True.
34761 (Parse_Expresion): New Boolean parameter Optional_Index
34762
34763 * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
34764 (Set_Source_Index_Of): New procedure
34765
34766 * prj-util.adb (Executable_Of, Value_Of): Take into account optional
34767 index.
34768
34769 * prj-util.ads (Executable_Of): New parameter Index
34770 (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
34771 New parameter Src_Index, defaulted to 0.
34772
347732004-05-05 Ed Schonberg <schonberg@gnat.com>
34774
34775 PR ada/15257
34776 * sem_ch3.adb (Access_Definition): If this is an access parameter
34777 whose designated type is imported through a limited_with clause, do
34778 not add the enclosing subprogram to the list of private dependents of
34779 the type.
34780
347812004-05-05 Ed Schonberg <schonberg@gnat.com>
34782
34783 PR ada/15258
34784 * sem_ch6.adb (Base_Types_Match): True if one type is imported through
34785 a limited_with clause, and the other is its non-limited view.
34786
347872004-05-05 Thomas Quinot <quinot@act-europe.fr>
34788
34789 * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
34790
90afe2c9 34791 * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
aa720a54
AC
34792 exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
34793 Stand.Boolean_Literals to produce references to entities
34794 Standard_False and Standard_True from compile-time computed boolean
34795 values.
34796
34797 * stand.ads (Boolean_Literals): New variable, provides the entity
34798 values for False and True, for use by the expander.
34799
348002004-05-05 Doug Rupp <rupp@gnat.com>
34801
34802 * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
34803 5vinmaop.adb: Unchecked convert Short_Address vice Address
34804
34805 * adaint.c, raise.c: Caste CRTL function return value
34806 to avoid gcc error on 32/64 bit IVMS.
34807
34808 * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
34809 target = IA64/VMS.
34810
34811 * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
34812
34813 * 5qsystem.ads (Address): Declare as Long_Integer
34814 (Short_Address): Declare as 32 bit subtype of Address
34815 Declare abstract address operations to avoid gratuitous ambiguities.
34816
348172004-05-05 Jose Ruiz <ruiz@act-europe.fr>
34818
34819 * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
34820 instead of the old Boolean_Entry_Barriers.
34821 Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
34822
348232004-05-05 GNAT Script <nobody@gnat.com>
34824
34825 * Make-lang.in: Makefile automatically updated
34826
1ab2888d
AC
348272004-05-03 Arnaud Charlet <charlet@act-europe.fr>
34828
34829 * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
34830
9f4fd324
AC
348312004-05-03 Olivier Hainque <hainque@act-europe.fr>
34832
34833 PR ada/15152
9f4fd324
AC
34834 * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
34835 alone. Replacing object references by literals is inappropriate in a
34836 so low level context.
34837
348382004-05-03 Arnaud Charlet <charlet@act-europe.fr>
34839
34840 * a-exexpr.adb: Add comments
34841
348422004-05-03 Joel Brobecker <brobecker@gnat.com>
34843
34844 * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
34845 declare the Ancestor_Tags array in Type_Specific_Data with a small size
34846 without risking a bounds check error when accessing one of its
34847 components.
34848 (Type_Specific_Data): Define Ancestor_Tags as a small array.
34849 This prevents us from hitting a limitation during the debug info
34850 generation when using stabs.
34851
34852 * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
34853 small array.
34854 This prevents us from hitting a limitation during the debug info
34855 generation when using stabs.
34856
348572004-05-03 Eric Botcazou <ebotcazou@act-europe.fr>
34858
34859 lang-specs.h: Remove -gnatz* from specs.
34860
348612004-05-03 Vincent Celier <celier@gnat.com>
34862
34863 * gprmake.adb, makegpr.ads, makegpr.adb: New files.
34864
34865 * Make-lang.in, Makefile.in: Add gprmake
34866
348672004-05-03 Thomas Quinot <quinot@act-europe.fr>
34868
34869 * sem_aggr.adb: Fix typo in comment.
34870
348712004-05-03 Robert Dewar <dewar@gnat.com>
34872
34873 * make.adb: Minor reformatting
34874
34875 * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
34876
34877 * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
34878 so that it works when address is not a private type.
34879
34880 * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
34881 properly with rewritten unchecked conversions. This prevents
34882 order-of-elaboration issues that can otherwise arise.
34883 (Minimum_Size): Don't check size of access types under VMS
34884
34885 * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
34886 interpretations of integer literals as type System.Address.
34887
34888 * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
34889 (Is_Descendent_Of): New function
34890
348912004-05-03 Jose Ruiz <ruiz@act-europe.fr>
34892
34893 * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
34894 Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
34895 No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
34896
34897 * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
34898 of the old Max_Entry_Queue_Depth.
34899
34900 * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
34901 Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
34902 No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
34903
34904 * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
34905 New entry for proper handling of Max_Entry_Queue_Depth.
34906 New entry for proper handling of No_Dynamic_Interrupts.
34907
34908 * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
34909 supersedes the GNAT specific restriction Boolean_Entry_Barriers.
34910 Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
34911 the GNAT specific restriction Max_Entry_Queue_Depth.
34912 Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
34913 the GNAT specific restriction No_Dynamic_Interrupts.
34914
34915 * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
34916 instead of the old Boolean_Entry_Barriers.
34917 Use the new restriction No_Dynamic_Attachment instead of the old
34918 No_Dynamic_Interrupts.
34919
34920 * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
34921 supersedes the GNAT specific restriction Boolean_Entry_Barriers.
34922
34923 * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
34924 of the old Max_Entry_Queue_Depth.
34925
349262004-05-03 GNAT Script <nobody@gnat.com>
34927
34928 * Make-lang.in: Makefile automatically updated
34929
d935a36e
AC
349302004-04-29 Ed Schonberg <schonberg@gnat.com>
34931
34932 * checks.adb (Enable_Range_Check): If the prefix of an index component
34933 is an access to an unconstrained array, perform check unconditionally.
34934
349352004-04-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34936
34937 * decl.c (gnat_to_gnu_field): Also call make_packable_type if
34938 Component_Clause.
34939
349402004-04-29 Olivier Hainque <hainque@act-europe.fr>
34941
34942 * init.c (__gnat_install_handler, __gnat_error_handler): Remove
34943 alternate stack setting. There was no support for the tasking cases
34944 and the changes eventually caused a number of side-effect failures in
34945 the non-tasking case too.
34946
349472004-04-29 Eric Botcazou <ebotcazou@act-europe.fr>
34948
34949 lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
34950 -gnats is passed.
34951
349522004-04-29 Vincent Celier <celier@gnat.com>
34953
34954 * make.adb (Gnatmake): Increase max size of argument array for
34955 gnatbind for the potential addition of -F.
34956 If there are Stand-Alone Library projects, invoke gnatbind with -F to
34957 be sure that elaboration flags will be checked.
34958
34959 * switch-c.adb: Correct call to Scan_Pos for -gnateI
34960
349612004-04-29 Thomas Quinot <quinot@act-europe.fr>
34962
34963 * sem_warn.adb (Check_References): Move '<access-variable> may be
34964 null' warning out of under Warn_On_No_Value_Assigned.
34965
349662004-04-29 Ed Falis <falis@gnat.com>
34967
34968 * gnat_ugn.texi: Fixed texi error
34969
349702004-04-29 Robert Dewar <dewar@gnat.com>
34971
34972 * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
34973 abstract operations if they come from predefined files.
34974
34975 * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
34976 Dynamic, not RM).
34977
34978 * s-addope.adb: Correct obvious error in mod function
34979
349802004-04-28 Andrew W. Reynolds <awreynolds@mac.com>
34981
34982 * Makefile.in: Add target pairs for powerpc darwin*
34983 tasking support.
34984
34985 * a-intnam-darwin.ads, s-osinte-darwin.adb,
34986 s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
34987
ea16c81b
UW
349882004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
34989
34990 * Makefile.in: Add target macro definitions for s390*-linux*.
34991 * system-linux-s390.ads: New file.
34992 * system-linux-s390x.ads: New file.
34993
f0e6f845
JM
349942004-04-28 Joseph S. Myers <jsm@polyomino.org.uk>
34995
34996 * gnat_ugn.texi: Correct argument to @setfilename.
34997
e8c2eedc
UW
349982004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
34999
35000 * a-exexpr.adb (Unwind_Word): New data type.
35001 (Unwind_Exception): Use it as type of Private1 and Private2.
35002
35003 * raise.c (db_action_for): Fix debug printf.
35004
f2c9e65a
AC
350052004-04-27 Ed Schonberg <schonberg@gnat.com>
35006
35007 * a-wtmoio.ads: Formal type must be a modular type, not a signed
35008 integer type.
35009
350102004-04-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35011
35012 * decl.c (gnat_to_gnu_entity, case object): Call
35013 __builtin_update_setjmp_buf.
35014
35015 * gigi.h (update_setjmp_buf): Deleted.
35016 (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
35017
35018 * misc.c: (update_setjmp_buf): Deleted.
35019
35020 * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
35021 around block of RTL.
35022
35023 * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
35024
35b7fa6a
AC
350252004-04-26 Thomas Quinot <quinot@act-europe.fr>
35026
35027 * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
35028 subprogram for which no pragma All_Calls_Remote applies, store the
35029 address of the real subprogram in the underlying record type, so local
35030 dereferences do not go through the PCS.
35031
350322004-04-26 Robert Dewar <dewar@gnat.com>
35033
35034 * i-c.ads: Add some type qualifications to avoid ambiguities when
35035 compiling with s-auxdec.ads and a non-private address type.
35036
350372004-04-26 Arnaud Charlet <charlet@act-europe.fr>
35038
35039 * Makefile.rtl: Fix error in previous check-in:
35040 Add s-addope.o to non tasking object list (rather than tasking object
35041 list).
35042
350432004-04-26 Javier Miranda <miranda@gnat.com>
35044
35045 * sem_aggr.adb: Fix typo in comments
35046 (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
35047 Required to check the null-exclusion attribute.
35048
35049 * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
35050 case of anonymous access types in record and array components. For a
35051 component definition the level is the same of the enclosing composite
35052 type.
35053
35054 * sem_ch3.adb (Analyze_Component_Declaration): In case of components
35055 that are anonymous access types the level of accessibility depends on
35056 the enclosing type declaration. In order to have this information, set
35057 the scope of the anonymous access type to the enclosing record type
35058 declaration.
35059 (Array_Type_Declaration): In case of components that are anonymous
35060 access types the level of accessibility depends on the enclosing type
35061 declaration. In order to have this information, set the scope of the
35062 anonymous access type to the enclosing array type declaration.
35063
35064 * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
35065 access type.
35066
35067 * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
35068 renaming of anonymous access-to-constant types allowed if and only if
35069 the renamed object is access-to-constant.
35070
35071 * sem_util.adb (Type_Access_Level): In case of anonymous access types
35072 that are component_definition or discriminants of a nonlimited type,
35073 the level is the same as that of the enclosing component type.
35074
350752004-04-26 Sergey Rybin <rybin@act-europe.fr>
35076
35077 * sem_elim.adb: Some minor code reorganization from code reading. Fix
35078 misprint in the function name (File_Name_Match).
35079
9e94c78f 350802004-04-23 Laurent Guerby <laurent@guerby.net>
5a944040 35081
90afe2c9 35082 * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
5a944040 35083 install.
90afe2c9 35084
d0fd1344
RO
350852004-04-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
35086
35087 * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
35088
cc4f0de1
AC
350892004-04-23 Emmanuel Briot <briot@act-europe.fr>
35090
35091 * adaint.c (__gnat_try_lock): No longer requires that the parent
35092 directory be writable, the directory itself is enough.
35093 (gnat_is_absolute_path): Change profile, so that the call from
35094 GNAT.OS_Lib can be made more efficient.
35095
35096 * adaint.h (gnat_is_absolute_path): Change profile, so that the call
35097 from GNAT.OS_Lib can be made more efficient.
35098
35099 * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
35100 one copy of the file name. Found by code reading.
35101
351022004-04-23 Vincent Celier <celier@gnat.com>
35103
35104 * gnat_ugn.texi: Add documentation for gnatmake switch -eL
35105 Correct documentation on gnatmake switches transmitted to the compiler
35106
35107 * ali.ads: Minor comment fix
35108
351092004-04-23 Javier Miranda <miranda@gnat.com>
35110
35111 * sem_ch6.adb: (Confirming Types): Code cleanup
35112
35113 * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
35114 subprogram types: E_Anonymous_Access_Subprogram_Type and
35115 E_Anonymous_Access_Protected_Subprogram_Type.
35116
351172004-04-23 Thomas Quinot <quinot@act-europe.fr>
35118
35119 * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
35120 whether a pragma All_Calls_Remote applies to the subprogram on which
35121 'Access is taken.
35122 No functional change is introduced by this revision; the new parameter
35123 will be used to allow calls to local RCI subprograms to be optimized
35124 to not use the PCS in the case where no pragma All_Calls_Remote applies,
35125 as is already done in the PolyORB implementation of the DSA.
35126
35127 * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
35128 whether a pragma All_Calls_Remote applies to the subprogram on which
35129 'Access is taken.
35130 No functional change is introduced by this revision; the new parameter
35131 will be used to allow calls to local RCI subprograms to be optimized
35132 to not use the PCS in the case where no pragma All_Calls_Remote applies,
35133 as is already done in the PolyORB implementation of the DSA.
35134
351352004-04-23 Robert Dewar <dewar@gnat.com>
35136
35137 * Makefile.rtl: Add entry for s-addope.o in run time library list
35138 * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
35139 * s-addope.ads, s-addope.adb: New files.
35140
90afe2c9
ZW
35141 * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
35142 s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
cc4f0de1
AC
35143 s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
35144 System.Address to be non-private and signed.
35145
35146 * sem_elim.adb: Minor reformatting (fairly extensive)
35147 Some minor code reorganization from code reading
35148 Add a couple of ??? comments
35149
351502004-04-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35151
35152 * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
90afe2c9 35153 (tree_transform, case N_If_Statement): Remove non-determinism.
cc4f0de1
AC
35154
35155 * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
35156
351572004-04-23 Sergey Rybin <rybin@act-europe.fr>
35158
35159 * gnat_rm.texi: Small fixes in the changes made in the 'pragma
35160 Eliminate' section.
35161
35162 * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
35163 no longer used as a parameter name for Eliminate pragma).
35164
9e94c78f 351652004-04-22 Laurent Guerby <laurent@guerby.net>
78bad775
LG
35166
35167 PR optimization/14984
35168 PR optimization/14985
35169 * trans.c (gigi): Fix non determinism leading to bootstrap
35170 comparison failures.
35171
af4b9434
AC
351722004-04-21 Pascal Obry <obry@gnat.com>
35173
35174 * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
35175 passed to spawnvp() to properly handle program pathname with spaces on
35176 Win32.
35177
351782004-04-21 Emmanuel Briot <briot@act-europe.fr>
35179
35180 * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
35181 (Allocate, Deallocate, Free_Physically): Make sure the tasks are
35182 unlocked in case of exceptions.
35183
351842004-04-21 Joel Brobecker <brobecker@gnat.com>
35185
35186 * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
35187 This function does not exist anymore.
35188
351892004-04-21 Thomas Quinot <quinot@act-europe.fr>
35190
35191 * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
35192
35193 * link.c: Move variables to the __gnat name space.
35194
35195 * Makefile.in: list link.o explicitly when needed.
35196
35197 * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
35198
351992004-04-21 Javier Miranda <miranda@gnat.com>
35200
35201 * einfo.adb (Original_Access_Type): New subprogram
35202 (Set_Original_Access_Type): New subprogram
35203 (Write_Field21_Name): Write the name of the new field
35204
35205 * einfo.ads (Original_Access_Type): New field present in access to
35206 subprogram types.
35207 Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
35208 E_Anonymous_Access_Protected_Subprogram_Type.
35209
35210 * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
35211 subprogram types.
35212
35213 * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
35214 to anonymous access to subprogram types.
35215
35216 * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
35217 to subprogram types.
35218
35219 * sem_ch3.adb (Access_Definition): Complete decoration of entities
35220 corresponding to anonymous access to subprogram types.
35221 (Analyze_Component_Declaration): Add new actual to the call to
35222 subprogram replace_anonymous_access_to_protected_subprogram.
35223 (Array_Type_Declaration): Add new actual to the call to subprogram
35224 replace_anonymous_access_to_protected_subprogram.
35225 (Process_Discriminants): Add new actual to the call to subprogram
35226 replace_anonymous_access_to_protected_subprogram.
35227 (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
35228
35229 * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
35230 formal.
35231
35232 * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
35233 access to subprogram types.
35234
35235 * sem_util.adb (Has_Declarations): Addition of package_specification
35236 nodes.
35237
352382004-04-21 Ed Schonberg <schonberg@gnat.com>
35239
35240 * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
35241 inlined flags to renamed entity only if in current unit.
35242
352432004-04-21 Thomas Quinot <quinot@act-europe.fr>
35244
35245 * s-parint.ads: Add DSA implementation marker.
35246
35247 * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
35248 value of System.Partition_Interface.DSA_Implementation to determine
35249 what version of the distributed systems annex is available (no
35250 implementation, GLADE, or PolyORB).
35251
352522004-04-21 Joel Brobecker <brobecker@gnat.com>
35253
35254 * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
35255
352562004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35257
35258 * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
35259 with new type if alias sets differ.
35260 Fixes ACATS c41103b.
35261
352622004-04-21 Vincent Celier <celier@gnat.com>
35263
35264 * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
35265 Add array Lang_Args for the language specific compiling argument
35266 switches.
35267
35268 * gnat_ugn.texi: Explain in more details when a library is rebuilt.
35269
352702004-04-21 Sergey Rybin <rybin@act-europe.fr>
35271
35272 * gnat_rm.texi: Update the descripton of the Eliminate pragma
35273 according to the recent changes in the format of the parameters of the
35274 pragma (replacing Homonym_Number with Source_Location).
35275
7324bf49
AC
352762004-04-19 Arnaud Charlet <charlet@act-europe.fr>
35277
35278 * 5isystem.ads: Removed, unused.
35279
35280 * gnat_rm.texi: Redo 1.13 change.
35281
352822004-04-19 Robert Dewar <dewar@gnat.com>
35283
35284 * s-stoele.ads: Clean up definition of Storage_Offset (the new
35285 definition is cleaner, avoids the kludge of explicit Standard operator
35286 references, and also is consistent with a visible System.Address with
35287 no visible operations.
35288
35289 * s-geveop.adb: Add declarations to avoid assumption of visible
35290 operations on type System.Address (since these might not be available
35291 if Address is a non-private type for which the operations
35292 are made abstract).
35293
35294 * sem_eval.adb: Minor reformatting
35295
35296 * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
35297 s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
35298 reformatting (new function spec format).
35299
35300 * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
35301 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
35302 s-caun64.adb: Add declarations to avoid assumption of visible
35303 operations on type System.Address (since these might not be available
35304 if Address is a non-private type for which the operations are made
35305 abstract).
35306
35307 * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
35308
35309 * exp_intr.adb: Minor comment update
35310
35311 * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
35312
35313 * 5omastop.adb: Add declarations to avoid assumption of visible
35314 operations on type System.Address (since these might not be available
35315 if Address is a non-private type for which the operations
35316 are made abstract).
35317
353182004-04-19 Vincent Celier <celier@gnat.com>
35319
35320 * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
35321
35322 * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
35323 defaulted to Ada.
35324
35325 * prj-proc.adb (Process): New Boolean parameter Process_Languages,
35326 defaulted to Ada.
35327 Call Check with Process_Languages.
35328 (Check): New Boolean parameter Process_Languages. Call Recursive_Check
35329 with Process_Languages.
35330 (Recursive_Check): New Boolean parameter Process_Languages. Call
35331 Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
35332 Process_Languages.
35333
35334 * prj-proc.ads (Process): New Boolean parameter Process_Languages,
35335
35336 * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
35337 parameter Ada_Main, defaulted to True.
35338 Check for Ada specific characteristics only when Ada_Main is True.
35339
35340 * opt.ads: (Follow_Links): New Boolean flag for gnatmake
35341
35342 * prj.adb: (Project_Empty): Add new Project_Data components.
35343
35344 * prj.ads: New types and tables for non Ada languages.
35345 (Project_Data): New components Languages, Impl_Suffixes,
35346 First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
35347 Include_Path, Include_Data_Set.
35348
35349 * prj-env.ads, prj-env.adb: Minor reformatting
35350
35351 * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
35352 Put subprograms in alphabetical order
35353
35354 * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
35355 defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
35356 Opt.Follow_Links.
35357
35358 * mlib-prj.adb: Back out modification in last version, as they are
35359 incorrect.
35360 (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
35361
35362 * make.adb: (Mains): Moved to package Makeutl
35363 (Linker_Opts): Moved to package Makeutl
35364 (Is_External_Assignment): Moved to package Makeutl
35365 (Test_If_Relative_Path): Moved to package Makeutl
35366 (Gnatmake): Move sorting of linker options to function
35367 Makeutl.Linker_Options_Switches.
35368
8f9df7d8
VC
35369 * makeutl.ads, makeutl.adb: New files.
35370
7324bf49
AC
35371 * Makefile.in: Add makeutl.o to the object files for gnatmake
35372
35373 * makeusg.adb: Add line for new switch -eL.
35374
35375 * gnatls.adb (Image): New function.
35376 (Output_Unit): If in verbose mode, output the list of restrictions
35377 specified by pragmas Restrictions.
35378
35379 * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
35380 Text_IO.
35381
35382 * a-calend.adb (Split): Shift the date by multiple of 56 years, if
35383 needed, to put it in the range 1970 (included) - 2026 (excluded).
35384 (Time_Of): Do not shift Unix_Min_Year (1970).
35385 Shift the date by multiple of 56 years, if needed, to put it in the
35386 range 1970 (included) - 2026 (excluded).
35387
35388 * adaint.h, adaint.c (__gnat_set_executable): New function.
35389
353902004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35391
35392 * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
35393 and pop GC context.
35394 (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
35395 (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
35396 (tree_transform, case N_Procedure_Call_Statement): Build a tree.
35397 (tree_transform, case N_Code_Statement): Likewise.
35398 (gnat_expand_stmt, case LABEL_STMT): Don't look at
35399 LABEL_STMT_FIRST_IN_EH.
35400 (gnat_expand_stmt, case ASM_STMT): New case.
35401
35402 * utils2.c (build_unary_op): Properly set TREE_READONLY of
35403 UNCONSTRAINED_ARRAY_REF.
35404
35405 * utils.c (poplevel): Temporarily push/pop GC context around inline
35406 function expansion.
35407
35408 * decl.c (maybe_variable): Properly set TREE_READONLY of
35409 UNCONSTRAINED_ARRAY_REF.
35410 (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
35411
35412 * ada-tree.def: (ASM_STMT): New.
35413
35414 * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
35415 (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
35416 ASM_STMT_INPUT): New.
35417 (ASM_STMT_CLOBBER): Likewise.
35418
354192004-04-19 Thomas Quinot <quinot@act-europe.fr>
35420
35421 * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
35422 general rcheck mechanism to raise Program_Error for E.4(18), instead
35423 of a custom raiser in System.Partition_Interface.
35424 Part of general cleanup work before PolyORB integration.
35425
35426 * snames.ads, snames.adb: Add new runtime library entities and names
35427 for PolyORB DSA.
35428
35429 * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
35430 exp_dist.
35431 (Build_Subprogram_Id): New subprogram provided by exp_dist
35432 Code reorganisation in preparation for PolyORB integration.
35433
35434 * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
35435 exp_dist.
35436 (Build_Subprogram_Id): New subprogram provided by exp_dist
35437
35438 * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
35439 actual parameter types for call to dereference of an
35440 access-to-subprogram type.
35441
35442 * rtsfind.ads: Add new runtime library entities and names for PolyORB
35443 DSA.
35444
35445 * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
35446 instead, which has the same behaviour here since we never pass it a
35447 NULL pointer.
35448
35449 * link.c (run_path_option, Solaris case): Use -Wl, as for other
35450 platforms.
35451
35452 * Makefile.in: adjust object file lists for gnatlink and gnatmake
35453 to account for new dependency upon Interfaces.C.Strings + link.o
35454 For x86 FreeBSD, use 86numaux.
35455
35456 * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
35457 from Mlib.Tgt to Mlib.
35458
35459 * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
35460 target-independent.
35461
35462 * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
35463 target-specific versions of this subprogram, now implemented as a
35464 target-independent function in Mlib.
35465
35466 * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
35467 5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
35468 (Linker_Library_Path_Option): Remove target-specific versions of this
35469 subprogram, now implemented as a target-independent function in Mlib.
35470
35471 * atree.adb: (Allocate_Initialize_Node): New subprogram.
35472 Factors out node table slots allocation.
35473 (Fix_Parents): New subprogram.
35474 Encapsulate the pattern of fixing up parent pointers for syntactic
35475 children of a rewritten node.
35476 (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
35477 (Rewrite): Use New_Copy when creating saved copy of original node.
35478 (Replace): Use Copy_Node to copy nodes.
35479
354802004-04-19 Javier Miranda <miranda@gnat.com>
35481
35482 * sprint.adb (Sprint_Node_Actual): Give support to the new
35483 Access_To_Subprogram node available in Access_Definition nodes. In
35484 addition, give support to the AI-231 node fields: null-exclusion,
35485 all-present, constant-present.
35486
35487 * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
35488
90afe2c9 35489 * sinfo.ads, sinfo.adb:
7324bf49
AC
35490 New field Access_To_Subprogram_Definition in Access_Definition nodes
35491
35492 * sem_ch6.adb (Process_Formals): Move here the code that creates and
35493 decorates internal subtype declaration corresponding to the
35494 null-excluding formal. This code was previously in Set_Actual_Subtypes.
35495 In addition, carry out some code cleanup on this code. In case of
35496 access to protected subprogram call
35497 Replace_Anonymous_Access_To_Protected_Subprogram.
35498 (Set_Actual_Subtypes): Code cleanup.
35499
35500 * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
35501 Find_Type in case of anonymous access renamings. Add warning in case of
35502 null-excluding attribute used in anonymous access renaming.
35503
35504 * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
35505 subprogram
35506
35507 * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
35508 subprogram.
35509 (Access_Definition): In case of anonymous access to subprograms call
35510 the corresponding semantic routine to decorate the node.
35511 (Access_Subprogram_Declaration): Addition of some comments indicating
35512 some code that probably should be added here. Detected by comparison
35513 with the access_definition subprogram.
35514 (Analyze_Component_Declaration): In case of access to protected
35515 subprogram call Replace_Anonymous_Access_To_Protected.
35516 (Array_Type_Declaration): In case of access to protected subprogram call
35517 Replace_Anonymous_Access_To_Protected_Subprogram.
35518 (Process_Discriminants): In case of access to protected subprogram call
35519 Replace_Anonymous_Access_To_Protected_Subprogram.
35520
35521 * par.adb (P_Access_Definition): New formal that indicates if the
35522 null-exclusion part was present.
35523 (P_Access_Type_Definition): New formal that indicates if the caller has
35524 already parsed the null-excluding part.
35525
35526 * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
35527 (P_Identifier_Declarations): Code cleanup and give support to renamings
35528 of anonymous access to subprogram types.
35529 (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
35530 (P_Array_Type_Definition): Give support to AI-254.
35531 (P_Component_Items): Give support to AI-254.
35532 (P_Access_Definition): New formal that indicates if the header was
35533 already parsed by the caller.
35534 (P_Access_Type_Definition): New formal that indicates if the caller has
35535 already parsed the null-excluding part.
35536
35537 * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
35538 call to P_Access_Definition.
35539
355402004-04-19 Geert Bosch <bosch@gnat.com>
35541
35542 * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
35543 the delicate semantics of floating-point to integer conversion.
35544 (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
35545
35546 * eval_fat.adb (Machine_Mantissa): Moved to spec.
35547 (Machine_Radix): New function.
35548
35549 * eval_fat.ads (Machine_Mantissa): Moved from body for use in
35550 conversion checks.
35551 (Machine_Radix): New function also for use in conversion checks.
35552
355532004-04-19 Ed Schonberg <schonberg@gnat.com>
35554
35555 * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
35556
35557 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
35558 to decorate the access-to-protected subprogram and the equivalent type.
35559
35560 * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
35561 to anonymous access to subprogram types.
35562
35563 * exp_ch4.adb (Expand_N_In): Preserve Static flag before
35564 constant-folding, for legality checks in contexts that require an RM
35565 static expression.
35566
35567 * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
35568 temporary but stack checking is not enabled, increment serial number
35569 to so that symbol generation is consistent with and without stack
35570 checking.
35571
35572 * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
35573 independent on whether stack checking is enabled, caller must check
35574 the corresponding flag.
35575
35576 * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
35577 range checks.
35578 (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
35579 parent if it has discriminants.
35580 (Build_Derived_Private_Type): Constructed full view does
35581 not come from source.
35582 (Process_Discriminants): Default discriminants on a tagged type are
35583 legal if this is the internal completion of a private untagged
35584 derivation.
35585
35586 * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
35587 no constraint checks, because it corresponds to an existing object.
35588
35589 * sem_prag.adb (Process_Convention): Pragma applies
35590 only to subprograms in the same declarative part, i.e. the same unit,
35591 not the same scope.
35592
35593 * sem_res.adb (Valid_Conversion): In an instance or inlined body,
35594 ignore type mismatch on a numeric conversion if expression comes from
35595 expansion.
35596
355972004-04-19 Sergey Rybin <rybin@act-europe.fr>
35598
35599 * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
35600 Homonym_Number parameter, add processing for Source_Location parameter
35601 corresponding.
35602 (Check_Eliminated): Remove the check for homonym numbers, add the check
35603 for source location traces.
35604
35605 * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
35606 with Arg_Source_Location corresponding to the changes in the format of
35607 the pragma.
35608
35609 * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
35610 Eliminate pragma corresponding to the changes in the format of the
35611 pragma: Homonym_Number is replaced with Source_Location, two ways of
35612 distinguishing homonyms are mutially-exclusive.
35613
356142004-04-19 Joel Brobecker <brobecker@gnat.com>
35615
35616 * get_targ.ads (Get_No_Dollar_In_Label): Remove.
35617
35618 * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
35619 No_Dollar_In_Label, no longer necessary, as it is always True.
35620 (Strip_Suffixes): Likewise.
35621
356222004-04-19 Gary Dismukes <dismukes@gnat.com>
35623
35624 * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
35625 modulus for compatibility with size clause on targets with 16-bit
35626 Integer.
35627
35628 * layout.adb (Discrimify): In the case of private types, set Vtyp to
35629 full type to fix type mismatches on calls to size functions for
35630 discriminant-dependent array components.
35631
356322004-04-19 Jerome Guitton <guitton@act-europe.fr>
35633
35634 * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
35635 lib.
35636
356372004-04-19 Pascal Obry <obry@gnat.com>
35638
35639 * mdll-utl.adb (Locate): New version is idempotent.
35640
9e94c78f 356412004-04-17 Laurent Guerby <laurent@guerby.net>
fa795c69
LG
35642
35643 PR ada/14988 (partial)
35644 * impunit.adb: Fix typo.
90afe2c9 35645
cce0244b
NN
356462004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
35647
35648 * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
35649 and install-rts-cert targets. Remove all gnatlib and gnattools
35650 targets and all other rts-* targets (moved to libada). Remove (now)
35651 unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
35652 TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
35653
af152989
AC
356542004-04-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35655
35656 * trans.c (tree_transform): Shortcut returning error_mark_node for
35657 statements in annotate_only_mode.
35658 (tree_transform, case N_Label, case N_Return_Statement,
35659 N_Goto_Statement): Make statement tree instead of generating code.
35660 (tree_transform, case N_Assignment_Statement): No longer check
35661 type_annotate_only.
35662 (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
35663 RETURN_STMT): New.
35664 (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
35665 New fcns.
35666 (gnat_to_gnu): Collect any RTL generated and deal with it.
35667 (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
35668 (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
35669 (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
35670
35671 * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
35672
35673 * ada-tree.def (EXPR_STMT): Fix typo in name.
35674 (BLOCK_STMT, IF_STMT): New nodes.
35675
35676 * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
35677 LABEL_STMT_FIRST_IN_EH): New macros.
35678 (RETURN_STMT_EXPR): Likewise.
35679
35680 * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
35681 IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
35682
356832004-04-08 Thomas Quinot <quinot@act-europe.fr>
35684
35685 * atree.ads: Correct documentation on extended nodes.
35686
35687 * link.c: Set run_path_option for FreeBSD.
35688
356892004-04-08 Vincent Celier <celier@gnat.com>
35690
35691 * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
35692 one of the ALI file, do not link with DEC lib.
35693
35694 * par.adb Remove the last two characters ("%s" or "%b") when checking
35695 if a language defined unit may be recompiled.
35696
356972004-04-08 Ed Schonberg <schonberg@gnat.com>
35698
35699 * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
35700 removal of abstract operation leaves no possible interpretation for
35701 expression.
35702
35703 * sem_eval.adb (Eval_Qualified_Expression): Use
35704 Set_Raises_Constraint_Error on node when needed, so that it does not
35705 get optimized away by subsequent optimizations.
35706
35707 * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
35708 operands even when they are not wrapped in a type conversion.
35709
357102004-04-08 Olivier Hainque <hainque@act-europe.fr>
35711
35712 * sem_prag.adb (Set_Exported): Warn about making static as result of
35713 export only when the export is coming from source. This may be not
35714 be true e.g. on VMS where we expand export pragmas for exception codes
35715 together with imported or exported exceptions, and we don't want the
35716 user to be warned about something he didn't write.
35717
357182004-04-08 Thomas Quinot <quinot@act-europe.fr>
35719
35720 * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
35721 duplication between normal entities and those declared as renamings.
35722 No functional change.
35723
90afe2c9 35724 * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
af152989
AC
35725 inline functions returning an unconstrained result.
35726
357272004-04-08 Eric Botcazou <ebotcazou@act-europe.fr>
35728
35729 * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
35730 conform to what other front-ends do.
35731
357322004-04-08 Doug Rupp <rupp@gnat.com>
35733
35734 * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
35735 libraries.
35736
3984e89a
AC
357372004-04-06 Pascal Obry <obry@gnat.com>
35738
35739 * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
35740
35741 * osint.adb (Program_Name): Do not look past a directory separator.
35742
357432004-04-06 Thomas Quinot <quinot@act-europe.fr>
35744
35745 * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
35746
35747 * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
35748 requirement for preserving a copy of the original assignment node.
35749
35750 * sinfo.ads: Update comment (Original_Tree -> Original_Node).
35751
357522004-04-06 Olivier Hainque <hainque@act-europe.fr>
35753
35754 (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
35755 when supported.
35756
357572004-04-06 Ed Schonberg <schonberg@gnat.com>
35758
35759 * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
35760 operator calls in functional notation, and apply
35761 Universal_Interpretation to operands, not to their type.
35762
357632004-04-06 Robert Dewar <dewar@gnat.com>
35764
35765 * 5wdirval.adb: Minor reformatting
35766
357672004-04-06 Ed Falis <falis@gnat.com>
35768
35769 * gnat_rm.texi: Improve a reference to the GCC manual
35770
30c20106
AC
357712004-04-05 Vincent Celier <celier@gnat.com>
35772
35773 * adaint.h, adaint.c: Add function __gnat_named_file_length
35774
35775 * impunit.adb: Add Ada.Directories to the list
35776
35777 * Makefile.in: Add VMS and Windows versions of
35778 Ada.Directories.Validity package body.
35779
35780 * Makefile.rtl: Add a-direct and a-dirval
35781
35782 * mlib-tgt.ads: Minor comment update.
35783
35784 * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
35785 a-direct.ads, a-direct.adb: New files.
35786
357872004-04-05 Vincent Celier <celier@gnat.com>
35788
35789 PR ada/13620
35790 * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
35791 just to the compiler.
35792
357932004-04-05 Robert Dewar <dewar@gnat.com>
35794
35795 * a-except.adb (Exception_Name_Simple): Make sure lower bound of
35796 returned string is 1.
35797
35798 * ali-util.adb: Use proper specific form for Warnings (Off, entity)
35799
35800 * eval_fat.ads: Minor reformatting
35801
35802 * g-curexc.ads: Document that lower bound of returned string values
35803 is always one.
35804
35805 * gnatlink.adb: Add ??? comment for previous change
35806 (need to document why this is VMS specific)
35807
35808 * s-stoele.ads: Minor reformatting
35809
35810 * tbuild.ads: Minor reformatting throughout (new function specs)
35811
35812 * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
35813 after WITH.
35814
35815 * scng.adb: Minor reformatting
35816
358172004-04-05 Geert Bosch <bosch@gnat.com>
35818
35819 * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
35820 (Leading_Part): Still perform truncation to machine number if the
35821 specified radix_digits is greater or equal to machine_mantissa.
35822
358232004-04-05 Javier Miranda <miranda@gnat.com>
35824
35825 * par-ch3.adb: Complete documentation of previous change
35826 Correct wrong syntax documentation of the OBJECT_DECLARATION rule
35827 (aliased must appear before constant).
35828
35829 * par-ch4.adb: Complete documentation of previous change.
35830
35831 * par-ch6.adb: Complete documentation of previous change.
35832
35833 * sinfo.ads: Fix typo in commment.
35834
358352004-04-05 Ed Schonberg <schonberg@gnat.com>
35836
35837 * sem_ch3.adb (Inherit_Components): If derived type is private and has
35838 stored discriminants, use its discriminants to constrain parent type,
35839 as is done for non-private derived record types.
35840
35841 * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
35842 Ada 2005 AI-310: an abstract non-dispatching operation is not a
35843 candidate interpretation in an overloaded call.
35844
35845 * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
35846 expression is Null and target type is not an access type (e.g. a
35847 non-private address type).
35848
358492004-04-05 Thomas Quinot <quinot@act-europe.fr>
35850
35851 * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
35852 statement whose right-hand side is an inlined call, save a copy of the
35853 original assignment subtree to preserve enough consistency for
35854 Analyze_Assignment to proceed.
35855
35856 * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
35857 complete assignment subtree which is now unnecessary, as the expansion
35858 of inlined call has been improved to preserve a consistent assignment
35859 tree. Note_Possible_Modification must be called only
35860 after checks have been applied, or else unnecessary checks will
35861 be generated.
35862
35863 * sem_util.adb (Note_Possible_Modification): Reorganise the handling
35864 of explicit dereferences that do not Come_From_Source:
35865 - be selective on cases where we must go back to the dereferenced
35866 pointer (an assignment to an implicit dereference must not be
35867 recorded as modifying the pointer);
35868 - do not rely on Original_Node being present (Analyze_Assignment
35869 calls Note_Possible_Modification on a copied tree).
35870
35871 * sem_warn.adb (Check_References): When an unset reference to a pointer
35872 that is never assigned is encountered, prefer '<pointer> may be null'
35873 warning over '<pointer> is never assigned a value'.
35874
358752004-04-05 Ramon Fernandez <fernandez@gnat.com>
35876
35877 * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
35878 the ABI.
35879
358802004-04-05 Olivier Hainque <hainque@act-europe.fr>
35881
35882 * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
35883 libexc. We currently don't reference anything in this library and
35884 linking it in triggers linker warnings we don't want to see.
35885
35886 * init.c: Update comments.
35887
4f976745
RK
358882004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35889
35890 * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
35891 * utils.c (create_field_decl): Likewise.
35892 * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
35893
6da7d579
AC
358942004-04-02 Arnaud Charlet <charlet@act-europe.fr>
35895
35896 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
35897 Replace ifinfo by ifnottex, to make makeinfo --html happy again.
35898 Add info directory entry and category.
35899
18c6ada9
JH
359002004-04-02 Jan Hubicka <jh@suse.cz>
35901
35902 * utils.c: Include function.h
35903 (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
35904
7cd4527e
AC
359052004-04-01 Arnaud Charlet <charlet@act-europe.fr>
35906
35907 PR ada/14150
35908 * Make-lang.in: Clean up generation of documentation
35909
35910 * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
35911
35912 * xgnatug.adb: Removed, replaced by xgnatugn.adb
35913
35914 * xgnatugn.adb: Replaces xgnatug.adb
35915
35916 * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
35917
35918 * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
35919
35920 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35921 gnat_ug_wnt.texi: Removed.
35922
0c250f07
AC
359232004-04-01 Arnaud Charlet <charlet@act-europe.fr>
35924
35925 * utils2.c: Update copyright notice.
35926
6b6fcd3e
AC
359272004-04-01 Robert Dewar <dewar@gnat.com>
35928
35929 * checks.adb: Minor reformatting throughout
35930 Note that prev checkin added RM reference to alignment warning
35931
359322004-04-01 Ed Schonberg <schonberg@gnat.com>
35933
35934 * exp_aggr.adb (Get_Component_Val): Treat a string literal as
35935 non-static when building aggregate for bit-packed array.
35936
35937 * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
35938 function call that is itself the actual in a procedure call, build
35939 temporary for it.
35940
35941 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
35942 a string literal, create a temporary for it, constant folding only
35943 handles scalars here.
35944
359452004-04-01 Vincent Celier <celier@gnat.com>
35946
35947 * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
35948 Error_Msg_SP): New empty procedures to instantiate the Scanner.
35949 (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
35950 tokens.
35951 (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
35952 (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
35953 and get the checksum.
35954
35955 * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
35956 already in the Q.
35957 Increase the Marking_Label at the end of the Multiple_Main_Loop,
35958 instead of at the beginning.
35959
35960 * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
35961 directly.
35962 (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
35963 on VMS.
35964
35965 * osint.ads (Multi_Unit_Index_Character): New Character global variable
35966
35967 * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
35968 not '~' directly.
35969
35970 * par.adb: Remove test on file name to detect language defined units.
35971 Add test on unit name, after parsing, to detect language defined units
35972 that are not compiled with -gnatg (except System.RPC and its children)
35973
35974 * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
35975 following units without style checking.
35976
35977 * switch-c.adb: Change -gnatC to -gnateI
35978
35979 * usage.adb: Document new switch -gnateInnn
35980
35981 * scng.adb (Accumulate_Token_Checksum): New procedure
35982 (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
35983 word or literal number.
35984 (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
35985 numbers.
35986
359872004-04-01 Thomas Quinot <quinot@act-europe.fr>
35988
35989 * a-tasatt.adb,
35990 g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
35991 switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
35992 5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
35993 5vtpopde.adb: Add missing 'constant' keywords.
35994
359952004-04-01 Javier Miranda <miranda@gnat.com>
35996
35997 * par-ch4.adb: (P_Allocator): Code cleanup
35998
35999 * sem_ch3.adb (Access_Definition): Properly set the null-excluding
36000 attribute.
36001
36002 * sinfo.ads: Complete documentation of previous change
36003
360042004-04-01 Pascal Obry <obry@gnat.com>
36005
36006 * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
36007 only on VMS. This special handling was done because an old GNU/ld bug
36008 on Windows which has been fixed.
36009
360102004-04-01 GNAT Script <nobody@gnat.com>
36011
36012 * Make-lang.in: Makefile automatically updated
36013
8df83eae
RK
360142004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36015
36016 * decl.c (gnat_to_gnu_entity, make_type_from_size):
36017 Use TYPE_UNSIGNED, not TREE_UNSIGNED.
36018 * trans.c (tree_transform, convert_with_check): Likewise.
36019 * utils.c (gnat_signed_or_unsigned_type): Likewise.
36020 (build_vms_descriptor, unchecked_convert): Likewise.
36021 * utils2.c (nonbinary_modular_operation): Likewise.
36022
2820d220
AC
360232004-03-29 Javier Miranda <miranda@gnat.com>
36024
36025 * checks.adb (Null_Exclusion_Static_Checks): New subprogram
36026 (Install_Null_Excluding_Check): Local subprogram that determines whether
36027 an access node requires a runtime access check and if so inserts the
36028 appropriate run-time check.
36029 (Apply_Access_Check): Call Install_Null_Excluding check if required
36030 (Apply_Constraint_Check): Call Install_Null_Excluding check if required
36031
36032 * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
36033
36034 * einfo.ads: Fix typo in comment
36035
36036 * exp_ch3.adb (Build_Assignment): Generate conversion to the
36037 null-excluding type to force the corresponding run-time check.
36038 (Expand_N_Object_Declaration): Generate conversion to the null-excluding
36039 type to force the corresponding run-time check.
36040
36041 * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
36042 the null-excluding type to force the corresponding run-time check.
36043
36044 * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
36045 case of access types unless they have the null-excluding attribute.
36046
36047 * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
36048 part.
36049
36050 * exp_util.ads: Fix typo in comment
36051
36052 * par.adb (P_Null_Exclusion): New subprogram
36053 (P_Subtype_Indication): New formal that indicates if the null-excluding
36054 part has been scanned-out and it was present
36055
36056 * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
36057
36058 * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
36059 (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
36060 type to force the corresponding run-time check
36061 (Resolve_Aggregate): Propagate the null-excluding attribute to the array
36062 components
36063 (Resolve_Array_Aggregate): Carry out some static checks
36064 (Resolve_Record_Aggregate.Get_Value): Carry out some static check
36065
36066 * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
36067 attribute must be set only if specified by means of the null-excluding
36068 part. In addition, we must also propagate the access-constant attribute
36069 if present.
36070 (Access_Subprogram_Declaration, Access_Type_Declaration,
36071 Analyze_Component_Declaration, Analyze_Object_Declaration,
36072 Array_Type_Declaration, Process_Discriminants,
36073 Analyze_Subtype_Declaration): Propagate the null-excluding attribute
36074 and carry out some static checks.
36075 (Build_Derived_Access_Type): Set the null-excluding attribute
36076 (Derived_Type_Declaration, Process_Subtype): Carry out some static
36077 checks.
36078
36079 * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
36080
36081 * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
36082
36083 * sem_ch6.adb (Process_Formals): Carry out some static checks.
36084 (Set_Actual_Subtypes): Generate null-excluding subtype if the
36085 null-excluding part was present; it is not required to be done here in
36086 case of anonymous access types.
36087 (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
36088 value.
36089
36090 * sem_res.adb (Resolve_Actuals): Carry out some static check
36091 (Resolve_Null): Allow null in anonymous access
36092
36093 * sinfo.adb: New subprogram Null_Exclusion_Present
36094 All_Present and Constant_Present available on access_definition nodes
36095
36096 * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
36097 object_declaration, derived_type_definition, component_definition,
36098 discriminant_specification, access_to_object_definition,
36099 access_function_definition, allocator, access_procedure_definition,
36100 access_definition, parameter_specification, All_Present and
36101 Constant_Present flags available on access_definition nodes.
36102
361032004-03-29 Robert Dewar <dewar@gnat.com>
36104
36105 * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
36106 gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
36107 opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
36108 par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
36109 sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
36110 sem_prag.adb: Updates to handle multiple units/file
36111
36112 * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
36113
36114 * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
36115 sem_util.adb: Minor reformatting
36116
36117 * sem_ch12.adb: Add comment for previous change
36118
361192004-03-29 Laurent Pautet <pautet@act-europe.fr>
36120
36121 * osint.adb (Executable_Prefix): Set Exec_Name to the current
36122 executable name when not initialized. Otherwise, use its current value.
36123
36124 * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
36125 initialize it to another executable name than the current one. This
36126 allows to configure paths for an executable name (gnatmake) different
36127 from the current one (gnatdist).
36128
361292004-03-29 Ed Schonberg <schonberg@gnat.com>
36130
36131 * exp_ch6.adb (Expand_Call): A call to a function declared in the
36132 current unit cannot be inlined if it appears in the body of a withed
36133 unit, to avoid order of elaboration problems in gigi.
36134
36135 * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
36136 information for protected (wrapper) operation as well, to simplify gdb
36137 use.
36138
36139 * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
36140 protected body, indicate that the entity for the generated spec comes
36141 from source, to ensure that references are properly generated for it.
36142 (Build_Body_To_Inline): Do not inline a function that returns a
36143 controlled type.
36144
36145 * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
36146 apply convention to homonyms that are declared explicitly.
36147
36148 * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
36149 that renames an equality operator and the operands are overloaded,
36150 resolve them with the declared formal types, before rewriting as an
36151 operator.
36152
361532004-03-29 GNAT Script <nobody@gnat.com>
36154
36155 * Make-lang.in: Makefile automatically updated
36156
6d11af89
AC
361572004-03-25 Vasiliy Fofanov <fofanov@act-europe.fr>
36158
36159 * memtrack.adb: Log realloc calls, which are treated as free followed
36160 by alloc.
36161
361622004-03-25 Vincent Celier <celier@gnat.com>
36163
36164 * prj-makr.adb (Process_Directories): Detect when a file contains
36165 several units. Do not include such files in the config pragmas or
36166 in the naming scheme.
36167
36168 * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
36169 Resolve links only when not in Trusted_Mode.
36170 (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
36171 Do not resolve links for the display names.
36172
36173 * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
36174 resolve links when computing the display names.
36175
361762004-03-25 Thomas Quinot <quinot@act-europe.fr>
36177
36178 * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
36179 attribute reference does not denote a subtype, it can be any
36180 expression that has a classwide type, potentially after an implicit
36181 dereference. In particular, the prefix can be a view conversion for
36182 a classwide type (for which Is_Object_Reference holds), but it can
36183 also be a value conversion for an access-to-classwide type. In the
36184 latter case, there is an implicit dereference, and the original node
36185 for the prefix does not verify Is_Object_Reference.
36186
36187 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
36188 conversion of a discriminant-dependent component of a mutable object
36189 is one itself.
36190
361912004-03-25 Ed Schonberg <schonberg@gnat.com>
36192
36193 * freeze.adb (Freeze_Entity): When an inherited subprogram is
36194 inherited, has convention C, and has unconstrained array parameters,
36195 place the corresponding warning on the derived type declaration rather
36196 than the original subprogram.
36197
36198 * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
36199 indication on renaming declaration, if formal has a box and actual
36200 is absent.
36201
36202 * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
36203 determine whether to generate an implicit or explicit reference to
36204 the renamed entity.
36205
36206 * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
36207 subprogram renaming comes from a defaulted formal subprogram in an
36208 instance.
36209
362102004-03-25 Gary Dismukes <dismukes@gnat.com>
36211
36212 * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
36213 value expressions to ensure that calls within a component definition
36214 will be checked (since those are evaluated during the record type's
36215 elaboration).
36216
362172004-03-25 Arnaud Charlet <charlet@act-europe.fr>
36218
36219 * s-tpobop.adb: Code clean up:
36220 (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
36221 code.
36222 (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
36223
362242004-03-25 Jose Ruiz <ruiz@act-europe.fr>
36225
36226 * Makefile.in: Clean up in the ravenscar run time.
36227
22421b79
RK
362282004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36229
36230 * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
36231 of No_Strict_Aliasing to build_pointer_type_for_mode.
36232 * utils.c (update_pointer_to): Walk pointer and ref chains.
36233
24105bab
AC
362342004-03-22 Cyrille Comar <comar@act-europe.fr>
36235
36236 * ali.ads: Fix Comment about Dynamic_Elab.
36237
36238 * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
36239 Has_RACW, Is_Generic, etc.)
36240 (Output_Object, Gnatls): Take into account ALI files not attached to
36241 an object.
36242
362432004-03-22 Vincent Celier <celier@gnat.com>
36244
36245 * gprep.adb: Change all String_Access to Name_Id
36246 (Is_ASCII_Letter): new function
36247 (Double_File_Name_Buffer): New procedure
36248 (Preprocess_Infile_Name): New procedure
36249 (Process_Files): New procedure
36250 (Gnatprep): Check if output and input are existing directories.
36251 Call Process_Files to do the real job.
36252
362532004-03-22 Robert Dewar <dewar@gnat.com>
36254
36255 * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
36256 s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
36257
362582004-03-22 Sergey Rybin <rybin@act-europe.fr>
36259
36260 * scn.adb (Contains): Add check for EOF, is needed for a degenerated
36261 case when the source contains only comments.
36262
362632004-03-22 Ed Schonberg <schonberg@gnat.com>
36264
36265 * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
36266 declaration for a child subprogram body that acts as a spec, indicate
36267 that the entity in the declaration needs debugging information.
36268
36269 * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
36270 full view if the subtype is created for a constrained record component;
36271 gigi has enough information to construct the record, and there is no
36272 place in the tree for the declaration.
36273
36274 * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
36275 serial number for the dummy body that is built for analysis, to avoid
36276 inconsistencies in the generation of internal names when compiling
36277 with -gnatN.
36278
362792004-03-22 Thomas Quinot <quinot@act-europe.fr>
36280
36281 * sem_util.adb (Is_Object_Reference): A view conversion denotes an
36282 object.
36283
362842004-03-22 GNAT Script <nobody@gnat.com>
36285
36286 * Make-lang.in: Makefile automatically updated
36287
6fce44af
RK
362882004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36289
36290 * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
36291 * trans.c (tree_transform, emit_index_check): Likewise.
36292 * utils.c (build_template): Likewise.
36293 (max_size, convert): Remove handling of WITH_RECORD_EXPR.
36294 (maybe_unconstrained_array, unchecked_convert): Likewise.
36295 * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
36296 (build_unary_op): Likewise.
36297 (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
36298 (fill_vms_descriptor): Likewise.
36299 (build_call_alloc_dealloc): Likewise.
36300 ALIGN is unsigned.
36301 * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
36302
802f6d4b
JM
363032004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
36304
36305 PR other/14630
36306 * gnat_ug.texi: Add info directory category and entry.
36307 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
36308 gnat_ug_wnt.texi: Regenerate.
36309
30f3b32b
AC
363102004-03-19 Arnaud Charlet <charlet@act-europe.fr>
36311
36312 * ada-tree.h: Update copyright notice.
36313 Minor reformatting.
36314
363152004-03-19 Olivier Hainque <hainque@act-europe.fr>
36316
36317 * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
36318 as regular exception objects and not as mere integers representing the
36319 condition code. The latter approach required some dynamics to mask off
36320 severity bits, which did not fit well into the GCC table based model.
36321 (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
36322 exception data objects. We don't it and it would conflict with the other
36323 external symbol we have to generate for such exceptions.
36324
36325 * trans.c (tree_transform, case N_Exception_Handler): Remove part of
36326 the special code for VMS exceptions, since these are now represented
36327 as regular exceptions objects.
36328
7548281d
RK
363292004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36330
36331 * decl.c (debug_no_type_hash): Remove.
36332 (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
36333 * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
36334
9e94c78f 363352004-03-19 Laurent Guerby <laurent@guerby.net>
dbee7ab9 36336
90afe2c9 36337 * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
dbee7ab9 36338 aggregate, allows bootstrap from 3.3 on powerpc-darwin.
90afe2c9 36339
eb34af89
RK
363402004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36341
36342 * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
36343 (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
36344 (TYPE_RM_SIZE_INT): Directly use type.values.
36345 (TREE_LOOP_ID): Clean up check.
36346 * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
36347 TYPE_VALUES, not TYPE_FIELDS.
36348 * trans.c (convert_with_check): Delay access of bounds of basetype
36349 until sure is numeric.
36350
a336eaca
AC
363512004-03-18 Arnaud Charlet <charlet@act-europe.fr>
36352
36353 * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
36354
36355 Code clean up:
36356 * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
36357 5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
36358 Specific.Set instead of direct call to e.g pthread_setspecific.
36359
363602004-03-18 Thomas Quinot <quinot@act-europe.fr>
36361
36362 * adaint.c: Update comments.
36363
36364 * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
36365 GNATLIB_SHARED for FreeBSD.
36366
363672004-03-18 Jose Ruiz <ruiz@act-europe.fr>
36368
36369 * init.c [VxWorks]: Do not fix the stack size for the environment task.
36370 When needed (stack checking) the stack size is retrieved
36371 from the VxWorks kernel.
36372
36373 * Makefile.in: Flag -nostdinc is required when building the run time
36374 for avoiding looking for files in the base compiler.
36375 Add the VxWorks specific version of the package body for
36376 System.Stack_checking.Operations (5zstchop.adb).
36377
36378 * Make-lang.in: Add the object file for
36379 System.Stack_Checking.Operations.
36380
36381 * Makefile.rtl: Add object file for the package
36382 System.Stack_Checking.Operations.
36383
36384 * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
36385
36386 * s-stache.ads, s-stache.adb: Move the operations related to stack
36387 checking from this package to package System.Stack_Checking.Operations.
36388 This way, stack checking operations are only linked in the final
36389 executable when using the -fstack-check flag.
36390
363912004-03-18 Doug Rupp <rupp@gnat.com>
36392
36393 * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
36394 Reorganize ifeq's.
36395
36396 * 5qsystem.ads, 5xcrtl.ads: New files.
36397
363982004-03-18 Vincent Celier <celier@gnat.com>
36399
36400 * prj.adb (Reset): Reset hash table Files_Htable
36401
36402 * prj-env.adb (Source_Paths, Object_Paths): New tables.
36403 (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
36404 the procedures Add_To_Path_File.
36405 (Set_Ada_Paths): Accumulate source and object dirs in the tables,
36406 making sure that each directory is present only once and, for object
36407 dirs, when a directory already present is added, the duplicate is
36408 removed and the directory is always put as the last in the table.
36409 Write the path files at the end of these accumulations.
36410
36411 * prj-nmsc.adb (Record_Source): Add source file name in hash table
36412 Files_Htable for all sources.
36413
36414 * prj-proc.adb (Process): Remove restrictions between not directly
36415 related extending projects.
36416
364172004-03-18 Emmanuel Briot <briot@act-europe.fr>
36418
36419 * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
36420 (Find_Sources): Minor speed optimization.
36421
36422 * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
36423 parameter Trusted_Mode.
36424
364252004-03-18 Sergey Rybin <rybin@act-europe.fr>
36426
36427 * scn.adb (Determine_License): Take into account a degenerated case
36428 when the source contains only comments.
36429
364302004-03-18 Ed Schonberg <schonberg@gnat.com>
36431
36432 * sem_warn.adb (Check_References): For a warning on a selected
36433 component that does not come from source, locate an uninitialized
36434 component of the record type to produce a more precise error message.
36435
e6f69614
AC
364362004-03-15 Jerome Guitton <guitton@act-europe.fr>
36437
36438 * 3zsoccon.ads: Fix multicast options.
36439
36440 * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
36441 in the spec.
36442
364432004-03-15 Robert Dewar <dewar@gnat.com>
36444
36445 * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
36446 pragma used for a private type.
36447
36448 * lib-xref.adb (Generate_Reference): Do not generate warning if
36449 reference is in a different unit from the pragma Unreferenced.
36450
36451 * 5vtpopde.adb: Minor reformatting
36452 Fix casing of To_Task_ID
36453
36454 * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
36455 flag if we have an unchecked conversion to an access type in the same
36456 unit.
36457
364582004-03-15 Geert Bosch <bosch@gnat.com>
36459
36460 * a-ngcoty.adb (Modulus): In alternate formula for large real or
36461 imaginary parts, use Double precision throughout.
36462
36463 * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
36464 we want to be able to compile run-time with -gnata for testing, but
36465 this may also be instantiated in user code that is compiled with -gnata.
36466
364672004-03-15 Olivier Hainque <hainque@act-europe.fr>
36468
36469 * s-stalib.ads (Exception_Code): New type, to represent Import/Export
36470 codes. Having a separate type for this is useful to enforce consistency
36471 throughout the various run-time units.
36472 (Exception_Data): Use Exception_Code for Import_Code.
36473
36474 * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
36475 Natural and Integer in various places.
36476 (Register_VMS_Exception): Use Base_Code_In to compute the exception code
36477 with the severity bits masked off.
36478 (Register_VMS_Exception): Handle the additional exception data pointer
36479 argument.
36480
36481 * raise.c (_GNAT_Exception structure): Remove the handled_by_others
36482 component, now reflected by an exported accessor.
36483 (is_handled_by): New routine to compute whether the propagated
36484 occurrence matches some handler choice specification. Extracted out of
36485 get_action_description_for, and expanded to take care of the VMS
36486 specifities.
36487 (get_action_description_for): Use is_handled_by instead of an explicit
36488 complex condition to decide if the current choice at hand catches the
36489 propagated occurrence.
36490
36491 * raise.h (Exception_Code): New type for C.
36492
36493 * rtsfind.ads (RE_Id, RE_Unit_Table): Add
36494 System.Standard_Library.Exception_Code, to allow references from the
36495 pragma import/export expander.
36496
36497 * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
36498 New accessors to allow easy access to GNAT exception data
36499 characteristics.
36500 (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
36501 redundant Handled_By_Others component, helper for the personality
36502 routine which will now be able to call the appropriate exception data
36503 accessor instead.
36504
36505 * cstand.adb (Create_Standard): Adjust the type of the Import_Code
36506 component of Standard_Exception_Type to be the closest possible to
36507 Exception_Code in System.Standard_Library, that we cannot get at this
36508 point. Expand a ??? comment to notify that this type node should
36509 probably be rewritten later on.
36510
36511 * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
36512 registration call to include a pointer to the exception object in the
36513 arguments.
36514
36515 * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
36516 instead of int and explicit bitmasks.
36517
365182004-03-15 Vincent Celier <celier@gnat.com>
36519
36520 * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
36521 equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
36522
36523 * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
36524 longer needed now that it is in the spec of
36525 System.Tasking.Task_Attributes.
36526
36527 * adaint.h, adaint.c: (__gnat_create_output_file): New function
36528
36529 * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
36530
36531 * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
36532
36533 * make.adb (Gnatmake): Do not check the executable suffix; it is being
36534 taken care of in Scan_Make_Arg.
36535 (Scan_Make_Arg): Add the executable suffix only if the argument
36536 following -o, in canonical case, does not end with the executable
36537 suffix. When in verbose mode and executable file name does not end
36538 with executable suffix, output the executable name, in canonical case.
36539
36540 * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
36541 to avoid warnings when instantiating Ada.Task_Attributes.
36542 Minor reformating.
36543
36544 * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
36545 in the correct order.
36546
36547 * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
36548 redirect standard output and error to a file for the invocation of the
36549 compiler, then read the file.
36550
36551 * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
36552 directory, instead of the Value.
36553 (Find_Source_Dirs): Remove useless code & comments.
36554
365552004-03-15 Ed Schonberg <schonberg@gnat.com>
36556
36557 * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
36558 tagged type is inherited, and the parent operation is not frozen yet,
36559 force generation of a freeze node for the inherited operation, so the
36560 corresponding dispatch entry is properly initialized.
36561 (Make_Predefined_Primitive_Specs): Check that return type is Boolean
36562 when looking for user-defined equality operation.
36563
36564 * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
36565 boolean when locating primitive equality of tagged component.
36566
36567 * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
36568 bit-aligned field and the right-hand side a string literal, introduce
36569 a temporary before expanding assignment into a loop.
36570
36571 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
36572 priority in full, to ensure that any expanded subepxressions of it are
36573 elaborated in the scope of the init_proc.
36574
36575 * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
36576 after object declaration, skipping over code that may have been
36577 generated for validity checks.
36578
36579 * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
36580 discriminants, ignore the known discriminants of its full view, if
36581 any, to check legality.
36582
36583 * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
36584 component if type has unknown discriminants.
36585 (Analyze_Private_Extension_Declaration): Discriminant constraint is
36586 null if type has unknown discriminants.
36587
36588 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
36589 for end label when present.
36590
36591 * s-fileio.adb (Open): When called with a C_Stream, use given name for
36592 temporary file, rather than an empty string.
36593
365942004-03-15 Ed Falis <falis@gnat.com>
36595
36596 * s-thread.adb: Removed, no longer used.
36597
365982004-03-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36599
36600 * decl.c (target.h): Now include.
36601 (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
36602 in new build_pointer_from_mode calls for non-fat/non-thin pointer.
36603 (validate_size): For POINTER_TYPE, get smallest size permitted on
36604 machine.
36605
36606 * fe.h: Sort Einfo decls and add Set_Mechanism.
36607
36608 * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
36609 (ada/decl.o): Depends on target.h.
36610
36611 * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
36612 FUNCTION_BOUNDARY; always use TYPE_ALIGN.
36613
366142004-03-15 Thomas Quinot <quinot@act-europe.fr>
36615
36616 * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
36617
36618 * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
36619 Insert_Dereference_Action when rewriting an implicit dereference into
36620 an explicit one, this will be taken care of during expansion of the
36621 explicit dereference.
36622 (Expand_N_Slice): Same. Always do the rewriting, even for the case
36623 of non-packed slices, since the dereference action generated by
36624 expansion of the explicit dereference is needed in any case.
36625 (Expand_N_Selected_Component): When rewriting an implicit dereference,
36626 analyze and resolve the rewritten explicit dereference so it is seen
36627 by the expander.
36628 (Insert_Dereference_Action): This procedure is now called only for the
36629 expansion of an N_Explcit_Dereference_Node. Do insert a check even for
36630 dereferences that do not come from source (including explicit
36631 dereferences resulting from rewriting implicit ones), but do not
36632 recursively insert a check for the dereference nodes contained within
36633 the check.
36634 (Insert_Dereference_Action): Clarify and correct comment.
36635
e4c9c075
PB
366362004-03-08 Paolo Bonzini <bonzini@gnu.org>
36637
36638 PR ada/14131
36639 Move language detection to the top level.
36640 * config-lang.in: Build by default.
36641
8a6a52dc
AC
366422004-03-05 Robert Dewar <dewar@gnat.com>
36643
36644 * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
36645
36646 * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
36647 i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
90afe2c9 36648 5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
8a6a52dc
AC
36649 5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
36650 unchecked conversion to spec to avoid warnings.
36651
36652 * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
36653 to Task_ID
36654
36655 * 7stpopsp.adb: Correct casing in To_Task_ID call
36656
36657 * a-strsea.ads, a-strsea.adb: Minor reformatting
36658
36659 * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
36660
36661 * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
36662 Adjust Max_Msg_Length to be clearly large enough.
36663
36664 * fe.h: Define In_Same_Source_Unit
36665
36666 * osint.adb: Add pragma Warnings Off to suppress warnings
36667 * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
36668 aliasing warnings.
36669
36670 * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
36671
36672 * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
36673
36674 * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
36675
36676 * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
36677
36678 * sem_prag.adb: Implement pragma No_Strict_Aliasing.
36679
36680 * sinfo.ads: Remove obsolete comment on validate unchecked conversion
36681 node. We now do generate them for gcc back end.
36682
36683 * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
36684 warning.
36685
36686 * sinput-c.adb: Fix bad name in header.
36687 Add pragma Warnings Off to suppress aliasing warning.
36688
36689 * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
36690
36691 * snames.h, snames.ads, snames.adb: Add entry for pragma
36692 No_Strict_Aliasing.
36693
366942004-03-05 Vincent Celier <celier@gnat.com>
36695
36696 * prj-com.ads: Add hash table Files_Htable to check when a file name
36697 is already a source of another project.
36698
36699 * prj-nmsc.adb (Record_Source): Before recording a new source, check
36700 if its file name is not already a source of another project. Report an
36701 error if it is.
36702
36703 * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
36704 source file name, call gnatpp with all the sources of the main project.
36705
36706 * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
36707 of file names.
36708
36709 * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
36710 NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
36711 /RUNTIME_SYSTEM=, converted to --RTS=
36712 /NOTABS, converted to -notabs
36713
367142004-03-05 Pascal Obry <obry@gnat.com>
36715
36716 * make.adb: Minor reformatting.
36717
367182004-03-05 Ed Schonberg <schonberg@gnat.com>
36719
36720 Part of implemention of AI-262.
36721 * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
36722
36723 * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
36724 procedure.
36725
36726 * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
36727 when component type is a partially constrained class-wide subtype.
36728 (Constrain_Discriminated_Type): If parent type has unknown
36729 discriminants, a constraint is illegal, even if full view has
36730 discriminants.
36731 (Build_Derived_Record_Type): Inherit discriminants when deriving a type
36732 with unknown discriminants whose full view is a discriminated record.
36733
36734 * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
36735 flag, to handle properly derivations of tagged types with unknown
36736 discriminants.
36737 (Analyze_Package_Spec, Analyze_Package_Body): Install
36738 Private_With_Clauses before analyzing private part or body.
36739
36740 * einfo.ads: Indicate that both Has_Unknown_Discriminants and
36741 Has_Discriminants can be true for a given type (documentation).
36742
367432004-03-05 Arnaud Charlet <charlet@act-europe.fr>
36744
36745 * s-restri.ads: Fix license (GPL->GMGPL).
36746
36747 * s-tassta.adb: Minor reformatting.
36748
36749 * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
36750 by calls to Exit_One_ATC_Level, since additional clean up is performed
36751 by this function.
36752
36753 * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
36754 by calls to Exit_One_ATC_Level, since additional clean up is performed
36755 by this function.
36756
367572004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36758
36759 * trans.c: Reflect GCC changes to fix bootstrap problem.
36760 Add warning for suspicious aliasing unchecked conversion.
36761
367622004-03-05 GNAT Script <nobody@gnat.com>
36763
36764 * Make-lang.in: Makefile automatically updated
36765
555360a5
AC
367662004-03-02 Emmanuel Briot <briot@act-europe.fr>
36767
36768 * ali.adb (Read_Instantiation_Instance): Do not modify the
36769 current_file_num when reading information about instantiations, since
36770 this corrupts files in later references.
36771
367722004-03-02 Vincent Celier <celier@gnat.com>
36773
36774 * bcheck.adb (Check_Consistency): Get the full path of an ALI file
36775 before checking if it is read-only.
36776
36777 * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
36778 of SRC_DIRS and eliminate duplicates.
36779
36780 * gprcmd.adb: Replace command "path" with command "path_sep" to return
36781 the path separator.
36782 (Usage): Document path_sep
36783
36784 * Makefile.generic: For Ada and GNU C++ cases, link directly with the
36785 C++ compiler. No need for a script.
36786 Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
36787 Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
36788 subst.
36789
36790 * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
36791 where there are Ada sources.
36792 (Set_Ada_Paths): Only add to the include path the source dirs of project
36793 with Ada sources.
36794 (Add_To_Path): Add the Display_Values of the directories, not their
36795 Values.
36796
36797 * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
36798 data.
36799
36800 * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
36801 is not No_Name.
36802 (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
36803 Value is canonicalized.
36804 (Language_Independent_Check): Do not copy Value to Display_Value when
36805 canonicalizing Value.
36806
36807 * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
36808 path to find limited with cycles.
36809 (Parse_Single_Project): Use canonical cased path to find the end of a
36810 with cycle.
36811
368122004-03-02 Ed Schonberg <schonberg@gnat.com>
36813
36814 * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
36815 and not a child unit.
36816
36817 * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
36818 appear in a with_clause.
36819
36820 * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
36821 only happen in type_annotate mode, do not try to elaborate it.
36822
36823 * exp_util.adb (Force_Evaluation): If expression is a selected
36824 component on the left of an assignment, use a renaming rather than a
36825 temporary to remove side effects.
36826
36827 * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
36828 inlined instance body, which is analyzed before the end of the
36829 enclosing scope.
36830
368312004-03-02 Robert Dewar <dewar@gnat.com>
36832
36833 * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
36834 sem_ch4.adb: Use new feature for substitution of keywords in VMS
36835
36836 * errout.ads, errout.adb: Implement new circuit for substitution of
36837 keywords in VMS.
36838
36839 * sem_case.adb (Analyze_Choices): Place message properly when case is
36840 a subtype reference rather than an explicit range.
36841
36842 * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
36843
368442004-03-02 Doug Rupp <rupp@gnat.com>
36845
36846 * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
36847
368482004-03-02 Thomas Quinot <quinot@act-europe.fr>
36849
36850 * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
36851
368522004-03-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36853
36854 * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
36855 BLKmode bitfield.
36856
8a7988f5
AC
368572004-02-25 Robert Dewar <dewar@gnat.com>
36858
36859 * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
36860 55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
36861 5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
36862 5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
36863 5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
36864 5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
36865 the defining instance of the type to avoid aliasing problems.
36866 Fix copyright header. Fix bad comments in package header.
36867
36868 * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
36869
368702004-02-25 Ed Schonberg <schonberg@gnat.com>
36871
36872 * exp_ch2.adb (Param_Entity): Handle properly formals that have been
36873 rewritten as references when aliased through an address clause.
36874
36875 * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
36876 whether call can be interpreted as an indirect call to the result of a
36877 parameterless function call returning an access subprogram.
36878
368792004-02-25 Arnaud Charlet <charlet@act-europe.fr>
36880
36881 Code clean up:
36882 * exp_ch7.adb (Make_Clean): Remove generation of calls to
36883 Unlock[_Entries], since this is now done by Service_Entries directly.
36884
36885 * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
36886
36887 * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
36888 Requeue_Call for better code readability. Change spec and update calls:
36889 PO_Service_Entries now unlock the PO on exit.
36890 (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
36891 PO_Service_Entries.
36892
36893 * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
36894
36895 * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
36896
368972004-02-25 Sergey Rybin <rybin@act-europe.fr>
36898
36899 * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
36900 protected subprogram call and analyzing the result of such expanding
36901 in case when the called protected subprogram is eliminated.
36902
36903 * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
36904 names.
36905
369062004-02-25 Jerome Guitton <guitton@act-europe.fr>
36907
36908 * Makefile.in: Clean ups.
36909
6871ba5f
AC
369102004-02-23 Ed Schonberg <schonberg@gnat.com>
36911
36912 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
36913 protected operations if original subprogram is flagged as eliminated.
36914 (Expand_N_Subprogram_Body): For a protected operation, create
36915 discriminals for next operation before checking whether the operation
36916 is eliminated.
36917
36918 * exp_ch9.adb (Expand_N_Protected_Body,
36919 Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
36920 for internal protected operations if the original subprogram is
36921 eliminated.
36922
36923 * sem_elim.adb (Check_Eliminated): Handle properly protected operations
36924 declared in a single protected object.
36925
369262004-02-23 Vincent Celier <celier@gnat.com>
36927
36928 * prj-attr.adb: Make attribute Builder'Executable an associative array,
36929 case insensitive if file names are case insensitive, instead of a
36930 standard associative array.
36931
36932 * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
36933 them as case insensitive on platforms where the file names are case
36934 sensitive.
36935
36936 * prj-part.adb (Parse_Single_Project): Make sure, when checking if
36937 project file has already been parsed that canonical path are compared.
36938
369392004-02-23 Robert Dewar <dewar@gnat.com>
36940
36941 * sinput-c.ads: Correct bad unit title in header
36942
36943 * freeze.adb: Minor reformatting
36944
369452004-02-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36946
36947 * trans.c (tree_transform, case N_Procedure_Call_Statement): For
36948 nonaddressable COMPONENT_REF that is removing padding that we are
36949 taking the address of, take the address of the padded record instead
36950 if item is variable size.
36951
6e059adb
AC
369522004-02-20 Robert Dewar <dewar@gnat.com>
36953
36954 * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
36955
369562004-02-20 Ed Schonberg <schonberg@gnat.com>
36957
36958 * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
36959 itype references for the constrained designated type of a component
36960 whose base type is already frozen.
36961
369622004-02-20 Arnaud Charlet <charlet@act-europe.fr>
36963
36964 * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
36965 avoid GCC warnings.
36966
369672004-02-20 Sergey Rybin <rybin@act-europe.fr>
36968
36969 * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
36970 identifier for a phantom package that rewrites the formal package
36971 declaration with a box. The Add semantic decorations for the defining
36972 identifier from the original node (that represents the formal package).
36973
88e3a2a3
MK
369742004-02-19 Matt Kraai <kraai@alumni.cmu.edu>
36975
36976 * Make-lang.in (ada/stamp-sdefault): Use the top level
36977 move-if-change.
36978
4221057e
RH
369792004-02-19 Richard Henderson <rth@redhat.com>
36980
36981 * misc.c (record_code_position): Add third build arg for RTL_EXPR.
36982
5c1c8a03
AC
369832004-02-18 Emmanuel Briot <briot@act-europe.fr>
36984
36985 * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
36986 Scan_ALI can be used for multiple ALI files without reinitializing
36987 between calls.
36988
369892004-02-18 Robert Dewar <dewar@gnat.com>
36990
36991 * debug.adb: Minor reformatting.
36992
369932004-02-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36994
36995 * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
36996 to zero if there is an address clause.
36997
369982004-02-18 Thomas Quinot <quinot@act-europe.fr>
36999
37000 * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
37001
370022004-02-18 Gary Dismukes <dismukes@gnat.com>
37003
37004 * layout.adb (Layout_Component_List): Revise generation of call to
37005 discriminant-checking function to pass selections of all of the type's
37006 discriminants rather than just the variant-controlling discriminant.
37007
370082004-02-18 Olivier Hainque <hainque@act-europe.fr>
37009
37010 * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
37011 fail in the current setup and triggers spurious system error messages.
37012 Pretend it occurred and failed instead.
37013
370142004-02-18 Vincent Celier <celier@gnat.com>
37015
37016 * bld.adb: Mark FLDFLAGS as saved
37017 (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
37018 it is not the root project. Put each directory to be
37019 extended between double quotes to prevent it to be expanded on Windows.
37020 (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
37021 the project file. Set them back to their initial values if they have not
37022 been set in the project file.
37023
37024 * gprcmd.adb: (Gprdebug, Debug): New global variables
37025 (Display_Command): New procedure
37026 (Usage): Document new command "linkopts"
37027 Call Display_Command when env var GPRDEBUG has the value "TRUE"
37028 Implement new command "linkopts"
37029 Remove quotes that may be around arguments for "extend"
37030 Always call Normalize_Pathname with arguments formatted for the platform
37031
37032 * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
37033 Change @echo to @$(display) in target clean to be able to clean silently
37034
37035 * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
37036
37037 * prj-part.adb (Project_Path_Name_Of): Do not put final result in
37038 canonical case.
37039
37040 * prj-part.adb (Parse_Single_Project): Always call with From_Extended
37041 = Extending_All when current project is an extending all project.
37042
37043 * vms_conv.adb (Output_File_Expected): New Boolean global variable,
37044 set to True only for LINK command, after Unix switch -o.
37045 (Process_Arguments): Set Output_File_Expected to True for LINK command
37046 after Unix switch -o. When Output_File_Expected is True, never add an
37047 extension to a file name.
37048
37049 * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
37050 option file name, only to the --for-linker= switch.
37051 (Option_File_Name): If option file name do not end with ".opt", append
37052 "/OPTIONS".
37053
370542004-02-18 GNAT Script <nobody@gnat.com>
37055
37056 * Make-lang.in: Makefile automatically updated
37057
80bcb4d2
MK
370582004-02-17 Matt Kraai <kraai@alumni.cmu.edu>
37059
37060 * Make-lang.in (stamp-sdefault): Do not depend on
37061 move-if-change.
37062
1daa84b6
ZW
370632004-02-12 Zack Weinberg <zack@codesourcery.com>
37064
37065 * config-lang.in: Disable Ada by default until probe logic for
37066 a bootstrap Ada compiler can be moved to the top level configure
37067 script.
37068
18c0ecbe
AC
370692004-02-12 Olivier Hainque <hainque@act-europe.fr>
37070
37071 * decl.c (components_to_record): Don't claim that the internal fields
37072 we make to hold the variant parts are semantically addressable, because
37073 they are not.
37074
37075 * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
37076 adjust the comment describing the modular type form when we can use it.
37077 (Install_PAT): Account for the Esiz renaming.
37078
37079 * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
37080 sc_onstack context indication before raising the exception to which
37081 the signal is mapped. Allows better handling of later signals possibly
37082 triggered by the resumed user code if the exception is handled.
37083
370842004-02-12 Arnaud Charlet <charlet@act-europe.fr>
37085
37086 * 5zinit.adb: Removed, no longer used.
37087
370882004-02-12 Robert Dewar <dewar@gnat.com>
37089
37090 * ali.adb: Remove separating space between parameters on R line. Makes
37091 format consistent with format used by the binder for Set_Globals call.
37092
37093 * atree.ads, atree.adb: Minor reformatting (new function header format)
37094
37095 * bindgen.adb: Add Run-Time Globals documentation section containing
37096 detailed documentation of the globals passed from the binder file to
37097 the run time.
37098
37099 * gnatls.adb: Minor reformatting
37100
37101 * init.c (__gnat_set_globals): Add note pointing to documentation in
37102 bindgen.
37103
37104 * lib-writ.ads, lib-writ.adb: Remove separating space between
37105 parameters on R line.
37106 Makes format consistent with format used by the binder for Set_Globals
37107 call.
37108
37109 * osint.ads: Add 2004 to copyright notice
37110 Minor reformatting
37111
37112 * snames.ads: Correct capitalization of FIFO_Within_Priorities
37113 Noticed during code reading, documentation issue only
37114
37115 * usage.adb: Remove junk line for obsolete C switch
37116 Noticed during code reading
37117
371182004-02-12 Vincent Celier <celier@gnat.com>
37119
37120 * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
37121 extend for each directory, so that multiple /** directories are
37122 extended individually.
37123 (Recursive_Process): Set the default for LANGUAGES to ada
37124
37125 * gprcmd.adb: Define new command "ignore", to do nothing.
37126 Implement new comment "path".
37127
37128 * Makefile.generic: Suppress output when SILENT is set
37129 Make sure that when compiler for C/C++ is gcc, the correct -x switch is
37130 used, so that the correct compiler is invoked.
37131 When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
37132 CXX_INCLUDE_PATH, to avoid failure with too long command lines.
37133
371342004-02-12 Jerome Guitton <guitton@act-europe.fr>
37135
37136 * Makefile.in: Clean ups and remove obsolete targets.
37137
371382004-02-12 Ed Schonberg <schonberg@gnat.com>
37139
37140 * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
37141 predicate declared in exp_util.
37142
37143 * exp_util.adb: Add comments.
37144
37145 * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
37146 visibility before compiling context of the subunit.
37147
37148 * sem_res.adb (Check_Parameterless_Call): If the context expects a
37149 value but the name is a procedure, do not attempt to analyze as a call,
37150 in order to obtain more telling diagnostics.
37151
37152 * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
37153 'Access on parameterless function calls.
37154 (Normalize_Actuals): For a parameterless function call with missing
37155 actuals, defer diagnostic until resolution of enclosing call.
37156
37157 * sem_util.adb (Wrong_Type): If the context type is an access to
37158 subprogram and the expression is a procedure name, suggest a missing
37159 'attribute.
37160
c1dcfa14
AC
371612004-02-10 Arnaud Charlet <charlet@act-europe.fr>,
37162 Nathanael Nerode <neroden@gcc.gnu.org>
37163
6f7f72f9
EB
37164 PR ada/6637
37165 PR ada/5911
c1dcfa14 37166 Merge with libada-branch:
90afe2c9 37167 * config-lang.in: Build libada only when ada is built.
c1dcfa14 37168
2e071734
AC
371692004-02-09 Ed Schonberg <schonberg@gnat.com>
37170
37171 * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
37172 for a tagged type, verify that both formals have the same type.
37173
37174 * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
37175 temporary when the formal is an in-parameter and the actual a possibly
37176 unaligned slice.
37177
37178 * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
37179 when expansion is disabled, to ensure proper name capture with
37180 overloaded literals. Condition can be of any boolean type, resolve
37181 accordingly.
37182
37183 * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
37184 renaming is for a formal subprogram with a default operator name, and
37185 there is a usable operator that is visible at the point of
37186 instantiation.
37187
371882004-02-09 Robert Dewar <dewar@gnat.com>
37189
37190 * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
37191 rewrite to ignore errors in ali files, intended to allow tools downward
37192 compatibility with new versions of ali files.
37193
37194 * ali.ads: Add new parameter Ignore_Errors
37195
37196 * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
37197 duplicating the error message giving the file with restrictions.
37198
37199 * debug.adb: Add debug flag I for gnatbind
37200
37201 * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
37202 operators for the case where the operator is a defining operator.
37203
37204 * exp_ch3.adb: Minor reformatting (new function spec format).
37205
37206 * exp_ch4.adb: Add comment for previous change, and make minor
37207 adjustment to loop to always check for improper loop termination.
37208 Minor reformatting throughout (new function spec format).
37209
37210 * gnatbind.adb: Implement -di debug flag for gnatbind
37211
37212 * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
37213
37214 * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
37215
37216 * lib-load.adb: Fix bad assertion.
37217 Found by testing and code reading.
37218 Minor reformatting.
37219
37220 * lib-load.ads: Minor reformatting.
37221
37222 * lib-writ.adb: There is only one R line now.
37223
37224 * lib-writ.ads: Add documentation on making downward compatible changes
37225 to ali files so old tools work with new ali files.
37226 There is only one R line now.
37227 Add documentation on format incompatibilities (with special GPS note)
37228
37229 * namet.ads, namet.adb: (Is_Operator_Name): New procedure
37230
37231 * par-load.adb: Minor reformatting
37232
37233 * sem_ch8.adb: Fix to error message from last update
37234 Minor reformatting and restructuring of code from last update
37235
37236 * par-prag.adb, snames.adb, snames.ads, snames.h,
37237 sem_prag.adb: Implement pragma Profile.
37238
37239 * stylesw.adb: Implement -gnatyN switch to turn off all style check
37240 options.
37241
37242 * usage.adb: Add line for -gnatyN switch
37243
37244 * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
37245
a41ea816
AC
372462004-02-09 Albert Lee <lee@gnat.com>
37247
37248 * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
37249
372502004-02-09 Ed Schonberg <schonberg@gnat.com>
37251
37252 * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
37253 slices.
37254
37255 * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
37256 is nested in an instance that is not frozen yet, to avoid
37257 order-of-elaboration problems in gigi.
37258
37259 * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
37260 body the attribute is legal.
37261
372622004-02-09 Robert Dewar <dewar@gnat.com>
37263
37264 * s-rident.ads: Minor comment correction
37265
37266 * targparm.adb: Remove dependence on uintp completely. There was
37267 always a bug in Make in that it called Targparm before initializing
37268 the Uint package. The old code appeared to get away with this, but
37269 the new code did not! This caused an assertion error in gnatmake.
37270
37271 * targparm.ads: Fix bad comment, restriction pragmas with parameters
37272 are indeed fully supported.
37273
725c60f8
AM
372742004-02-06 Alan Modra <amodra@bigpond.net.au>
37275
37276 * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
37277
136e64db
KH
372782004-02-05 Kazu Hirata <kazu@cs.umass.edu>
37279
37280 * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
37281 with targetm.calls.promote_prototypes.
37282
06effe87
AC
372832004-02-04 Robert Dewar <dewar@gnat.com>
37284
37285 * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
37286 ali.ads, gprcmd.adb: Minor reformatting
37287
37288 * bindgen.adb: Output restrictions string for new style restrictions
37289 handling
37290
37291 * impunit.adb: Add s-rident.ads (System.Rident) and
37292 s-restri (System.Restrictions)
37293
37294 * lib-writ.adb: Fix bug in writing restrictions string (last few
37295 entries wrong)
37296
37297 * s-restri.ads, s-restri.adb: Change name Restrictions to
37298 Run_Time_Restrictions to avoid conflict with package name.
37299 Add circuit to read and acquire run time restrictions.
37300
373012004-02-04 Jose Ruiz <ruiz@act-europe.fr>
37302
37303 * restrict.ads, restrict.adb: Use the new restriction
37304 No_Task_Attributes_Package instead of the old No_Task_Attributes.
37305
37306 * sem_prag.adb: No_Task_Attributes is a synonym of
37307 No_Task_Attributes_Package.
37308
37309 * snames.ads, snames.adb: New entry for proper handling of
37310 No_Task_Attributes.
37311
37312 * s-rident.ads: Adding restriction No_Task_Attributes_Package
37313 (AI-00249) that supersedes the GNAT specific restriction
37314 No_Task_Attributes.
37315
373162004-02-04 Ed Schonberg <schonberg@gnat.com>
37317
90afe2c9 37318 * sem_prag.adb:
06effe87
AC
37319 (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
37320 body, an identifier may be wrapped in an unchecked conversion.
37321
373222004-02-04 Vincent Celier <celier@gnat.com>
37323
37324 * lib-writ.ads: Comment update for the W lines
37325
37326 * bld.adb: (Expression): An empty string list is static
37327
37328 * fname-uf.adb: Minor comment update
37329
37330 * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
37331
37332 * gnatbind.adb: Initialize Cumulative_Restrictions with the
37333 restrictions on the target.
37334
2fb00d7f
KH
373352004-02-03 Kazu Hirata <kazu@cs.umass.edu>
37336
37337 * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
37338 gen_rtx.
37339
5ed23e25
AC
373402004-02-02 Arnaud Charlet <charlet@gnat.com>
37341
37342 * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
37343
6e937c1c
AC
373442004-02-02 Vincent Celier <celier@gnat.com>
37345
37346 * gprcmd.adb (Check_Args): If condition is false, print the invoked
37347 comment before the usage.
37348 Gprcmd: Fail when command is not recognized.
37349 (Usage): Document command "prefix"
37350
37351 * g-md5.adb (Digest): Process last block.
37352 (Update): Do not process last block. Store remaining characters and
37353 length in Context.
37354
37355 * g-md5.ads (Update): Document that several call to update are
37356 equivalent to one call with the concatenated string.
37357 (Context): Add fields to allow new Update behaviour.
37358
37359 * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
37360 defaulted to False.
37361 When May_Fail is True and no existing file can be found, return No_File.
37362
37363 * 6vcstrea.adb: Inlined functions are now wrappers to implementation
37364 functions.
37365
37366 * lib-writ.adb (Write_With_Lines): When body file does not exist, use
37367 spec file name instead on the W line.
37368
373692004-02-02 Robert Dewar <dewar@gnat.com>
37370
37371 * ali.adb: Read and acquire info from new format restrictions lines
37372
37373 * bcheck.adb: Add circuits for checking restrictions with parameters
37374
37375 * bindgen.adb: Output dummy restrictions data
37376 To be changed later
37377
37378 * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
37379 exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
37380 freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
37381 sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
37382 sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
37383
37384 * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
37385 the warning message on access to possibly uninitialized variable S)
37386 Minor changes for new restrictions handling.
37387
37388 * gnatbind.adb: Minor reformatting
37389 Minor changes for new restrictions handling
37390 Move circuit for -r processing here from bcheck (cleaner)
37391
37392 * gnatcmd.adb, gnatlink.adb: Minor reformatting
37393
37394 * lib-writ.adb: Output new format restrictions lines
37395
37396 * lib-writ.ads: Document new R format lines for new restrictions
37397 handling.
37398
37399 * s-restri.ads/adb: New files
37400
37401 * Makefile.rtl: Add entry for s-restri.ads/adb
37402
37403 * par-ch3.adb: Fix bad error messages starting with upper case letter
37404 Minor reformatting
37405
37406 * restrict.adb: Major rewrite throughout for new restrictions handling
37407 Major point is to handle restrictions with parameters
37408
37409 * restrict.ads: Major changes in interface to handle restrictions with
37410 parameters. Also generally simplifies setting of restrictions.
37411
37412 * snames.ads/adb: New entry for proper handling of No_Requeue
37413
37414 * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
37415 restriction counting.
37416 Other minor changes for new restrictions handling
37417
37418 * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
37419 Restriction_Warnings now allows full parameter notation
37420 Major rewrite of Restrictions for new restrictions handling
37421
374222004-02-02 Javier Miranda <miranda@gnat.com>
37423
37424 * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
37425 syntax rule for object renaming declarations.
37426 (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
37427 component definitions.
37428
37429 * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
37430 components.
37431 (Array_Type_Declaration): Give support to access components. In addition
37432 it was also modified to reflect the name of the object in anonymous
37433 array types. The old code did not take into account that it is possible
37434 to have an unconstrained anonymous array with an initial value.
37435 (Check_Or_Process_Discriminants): Allow access discriminant in
37436 non-limited types.
37437 (Process_Discriminants): Allow access discriminant in non-limited types
37438 Initialize the new Access_Definition field in N_Object_Renaming_Decl
37439 node. Change Ada0Y to Ada 0Y in comments
37440
37441 * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
37442 equality operators.
37443 Change Ada0Y to Ada 0Y in comments
37444
37445 * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
37446 renamings Change Ada0Y to Ada 0Y in comments
37447
37448 * sem_type.adb (Find_Unique_Type): Give support to the equality
37449 operators for universal access types
37450 Change Ada0Y to Ada 0Y in comments
37451
37452 * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
37453
37454 * sinfo.ads (N_Component_Definition): Addition of Access_Definition
37455 field.
37456 (N_Object_Renaming_Declaration): Addition of Access_Definition field
37457 Change Ada0Y to Ada 0Y in comments
37458
37459 * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
37460 component definition and object renaming nodes
37461 Change Ada0Y to Ada 0Y in comments
37462
374632004-02-02 Jose Ruiz <ruiz@act-europe.fr>
37464
37465 * restrict.adb: Use the new restriction identifier
37466 No_Requeue_Statements instead of the old No_Requeue for defining the
37467 restricted profile.
37468
37469 * sem_ch9.adb (Analyze_Requeue): Check the new restriction
37470 No_Requeue_Statements.
37471
37472 * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
37473 that supersedes the GNAT specific restriction No_Requeue. The later is
37474 kept for backward compatibility.
37475
374762004-02-02 Ed Schonberg <schonberg@gnat.com>
37477
37478 * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
37479 5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
37480 pragma and fix incorrect ones.
37481
37482 * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
37483 warning if the pragma is redundant.
37484
374852004-02-02 Thomas Quinot <quinot@act-europe.fr>
37486
37487 * 5staprop.adb: Add missing 'constant' keywords.
37488
37489 * Makefile.in: use consistent value for SYMLIB on
37490 platforms where libaddr2line is supported.
37491
374922004-02-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37493
37494 * utils.c (end_subprog_body): Do not call rest_of_compilation if just
37495 annotating types.
37496
374972004-02-02 Olivier Hainque <hainque@act-europe.fr>
37498
37499 * init.c (__gnat_install_handler): Setup an alternate stack for signal
37500 handlers in the environment thread. This allows proper propagation of
37501 an exception on stack overflows in this thread even when the builtin
37502 ABI stack-checking scheme is used without support for a stack reserve
37503 region.
37504
37505 * utils.c (create_field_decl): Augment the head comment about bitfield
37506 creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
37507 here, because the former is not accurate enough at this point.
37508 Let finish_record_type decide instead.
37509 Don't make a bitfield if the field is to be addressable.
37510 Always set a size for the field if the record is packed, to ensure the
37511 checks for bitfield creation are triggered.
37512 (finish_record_type): During last pass over the fields, clear
37513 DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
37514 not covered by the calls to layout_decl. Adjust DECL_NONADDRESSABLE_P
37515 from DECL_BIT_FIELD.
37516
71cbe2c1
KC
375172004-01-30 Kelley Cook <kcook@gcc.gnu.org>
37518
90afe2c9 37519 * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
71cbe2c1
KC
37520 (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
37521 (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
37522
7f996f90
RO
375232004-01-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
37524
37525 * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
37526
37527 * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
37528 (ZCX_By_Default): Likewise.
37529 (Front_End_ZCX_Support): Likewise.
37530
37531 * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
37532 (Initialize_Lock): Mark Level unreferenced.
37533 (Sleep): Mark Reason unreferenced.
37534 (Timed_Sleep): Likewise.
37535 (Wakeup): Likewise.
37536 (Exit_Task): Use Result.
37537 (Check_No_Locks): Mark Self_ID unreferenced.
90afe2c9 37538
7f996f90
RO
37539 * 5gtasinf.adb (New_Sproc): Make Attr constant.
37540 (Bound_Thread_Attributes): Make Sproc constant.
37541 (New_Bound_Thread_Attributes): Likewise.
37542
26fd4eae
AC
375432004-01-26 Ed Schonberg <schonberg@gnat.com>
37544
37545 * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
37546 one-dimensional array an slice assignments, when component type is
37547 controlled.
37548
37549 * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
37550 component type is controlled, and control_actions are in effect, use
37551 TSS procedure rather than generating inline code.
37552
37553 * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
37554 arrays with controlled components.
37555
375562004-01-26 Vincent Celier <celier@gnat.com>
37557
37558 * gnatcmd.adb (GNATCmd): Add specification of argument file on the
37559 command line for the non VMS case.
37560
37561 * gnatlink.adb (Process_Binder_File): When building object file, if
37562 GNU linker is used, put all object paths between quotes, to prevent ld
37563 error when there are unusual characters (such as '!') in the paths.
37564
37565 * Makefile.generic: When there are sources in Ada and the main is in
37566 C/C++, invoke gnatmake with -B, instead of -z.
37567
37568 * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
37569 from VMS_Conversion.
37570 (Process_Argument): New procedure, extracted from VMS_Conversion. Add
37571 specification of argument file on the command line.
37572
375732004-01-26 Bernard Banner <banner@gnat.com>
37574
37575 * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
37576
375772004-01-26 Ed Schonberg <schonberg@gnat.com>
37578
37579 * snames.adb: Update copyright notice.
37580 Add info on slice assignment for controlled arrays.
37581
b7e429ab
AC
375822004-01-23 Robert Dewar <dewar@gnat.com>
37583
37584 * exp_aggr.adb: Minor reformatting
37585
37586 * exp_ch9.adb: Minor code clean up
37587 Minor reformatting
37588 Fix bad character in comment
37589
37590 PR ada/13471
37591 * targparm.adb (Get_Target_Parameters): Give clean abort error on
37592 unexpected end of file, along with more detailed message.
37593
375942004-01-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37595
37596 * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
37597 PAT.
37598
37599 * decl.c (copy_alias_set): New function.
37600 (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
37601
376022004-01-23 Doug Rupp <rupp@gnat.com>
37603
37604 * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
37605 lib$${file} in case subsequent character is not a separator.
37606
376072004-01-23 Vincent Celier <celier@gnat.com>
37608
37609 * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
37610 when the GCC version is at least 3.
37611
37612 * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
37613 Remove all "Opt.", to prepare for opt split
37614
37615 * prj-part.adb (Parse_Single_Project): New Boolean out parameter
37616 Extends_All. Set to True when the project parsed is an extending all
37617 project. Fails for importing an extending all project only when the
37618 imported project is an extending all project.
37619 (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
37620 depending on the value of Extends_All returned.
37621
37622 * prj-proc.adb (Process): Check that no project shares its object
37623 directory with a project that extends it, directly or indirectly,
37624 including a virtual project.
37625 Check that no project extended by another project shares its object
37626 directory with another also extended project.
37627
37628 * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
37629 Kind = N_With_Clause
37630
37631 * prj-tree.ads: Minor reformatting
37632 Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
37633
376342004-01-23 Ed Schonberg <schonberg@gnat.com>
37635
37636 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
37637 applies to a type with an incomplete view, use full view in Name of
37638 clause, for consistency with uses of Get_Attribute_Definition_Clause.
37639
376402004-01-23 Arnaud Charlet <charlet@act-europe.fr>
37641
37642 * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
37643 SCHED_RR, since other values are not supported by this policy.
37644 (Initialize): Move initialization of mutex attribute to package
37645 elaboration, to prevent early access to this variable.
37646
37647 * Makefile.in: Remove mention of Makefile.adalib, unused.
37648
b291953f
AC
37649 * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
37650 1ssecsta.ads: Removed, unused.
b7e429ab 37651
adc04486
AC
376522004-01-21 Javier Miranda <miranda@gnat.com>
37653
37654 * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
37655 entity if already built in the current scope.
37656
37657 * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
37658 reminder in internal scopes. Required for nested limited aggregates.
37659
376602004-01-21 Doug Rupp <rupp@gnat.com>
37661
37662 * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
37663 VMS. Replace all occurences of libgnat- and libgnarl- with
37664 libgnat$(hyphen) and libgnarl$(hyphen).
37665 Fixed shared library build problem on VMS.
37666
376672004-01-21 Robert Dewar <dewar@gnat.com>
37668
37669 * mlib-prj.adb: Minor reformatting
37670
376712004-01-21 Thomas Quinot <quinot@act-europe.fr>
37672
37673 * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
37674 'constant' keywords for declaration of pointers that are not modified.
37675
37676 * exp_pakd.adb: Fix English in comment.
37677
376782004-01-21 Ed Schonberg <schonberg@gnat.com>
37679
37680 PR ada/10889
37681 * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
37682 copy all attributes of the parent, including the foreign language
37683 convention.
37684
376852004-01-21 Sergey Rybin <rybin@act-europe.fr>
37686
37687 PR ada/10565
37688 * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
37689 for 'delay until' statement.
37690
a541f69d
KC
376912004-01-20 Kelley Cook <kcook@gcc.gnu.org>
37692
37693 * Make-lang.in: Replace $(docdir) with doc.
37694 (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
37695 doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
37696 to use consistent MAKEINFO rule.
37697 (ada.man, ada.srcman): Dummy entry.
37698 (ADA_INFOFILES): Define.
37699 (ada.info, ada.srcinfo): New rules.
37700
c01a9391
AC
377012004-01-19 Arnaud Charlet <charlet@act-europe.fr>
37702
37703 * utils.c: Update copyright notice, missed in previous change.
37704
377052004-01-19 Vincent Celier <celier@gnat.com>
37706
37707 * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
37708 args if Bind is True. Set First_ALI, if not already done.
37709 (Build_Library): For Stand Alone Libraries, extract from one ALI file
37710 an eventual --RTS switch, for gnatbind, and all backend switches +
37711 --RTS, for linking.
37712
377132004-01-19 Robert Dewar <dewar@gnat.com>
37714
37715 * sem_attr.adb, memtrack.adb: Minor reformatting
37716
377172004-01-19 Ed Schonberg <schonberg@gnat.com>
37718
37719 * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
37720 that rename enumeration literals. This is properly done in sem_eval.
37721
37722 * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
37723 to functions that rename enumeration literals.
37724
37725 * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
37726 functions that rename enumeration literals.
37727
510d1e80
KH
377282004-01-16 Kazu Hirata <kazu@cs.umass.edu>
37729
37730 * Make-lang.in (utils.o): Depend on target.h.
37731 * utils.c: Include target.h.
37732 (process_attributes): Use targetm.have_named_sections instead
37733 of ASM_OUTPUT_SECTION_NAME.
37734
fbf3e0dd
AJ
377352004-01-16 Andreas Jaeger <aj@suse.de>
37736
37737 * Makefile.in: Add $(DESTDIR).
37738
acd47d2a
AC
377392004-01-15 Olivier Hainque <hainque@act-europe.fr>
37740
37741 * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
37742 also when not defining if a Size clause applies. That information is
37743 not to be ignored.
37744
377452004-01-15 Arnaud Charlet <charlet@act-europe.fr>
37746
37747 * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
37748 symbolic links for the shared gnat run time when needed.
37749
377502004-01-15 Vasiliy Fofanov <fofanov@act-europe.fr>
37751
37752 * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
37753 for writing, and terminate with an error message if not.
37754
377552004-01-15 Ed Schonberg <schonberg@gnat.com>
37756
37757 * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
37758 warning on an access to subprogram in an instance, when the target
37759 type is declared in the same generic unit.
37760 (Eval_Attribute): If 'access is known to fail accessibility check,
37761 rewrite as a raise statement.
37762
377632004-01-15 GNAT Script <nobody@gnat.com>
37764
37765 * Make-lang.in: Makefile automatically updated
37766
03787dfd
KC
377672004-01-15 Kelley Cook <kcook@gcc.gnu.org>
37768
37769 * Make-lang.in (ada.srcextra): Dummy entry.
37770
73e232f0
KC
377712004-01-14 Kelley Cook <kcook@gcc.gnu.org>
37772
37773 * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
37774
9bc43c53
AC
377752004-01-13 Ed Schonberg <schonberg@gnat.com>
37776
37777 * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
37778 components that are initialized with aggregates.
37779
377802004-01-13 Vincent Celier <celier@gnat.com>
37781
37782 * gnatlink.adb (Process_Binder_File): To find directory of shared
37783 libgcc, if "gcc-lib" is not a subdirectory, look for the last
37784 subdirectory "lib" in the path of the shared libgnat or libgnarl.
37785
37786 * make.adb (Gnatmake): If GCC version is at least 3, link with
37787 -shared-libgcc, when there is at least one shared library project.
37788
37789 * opt.ads (GCC_Version): New integer constant.
37790
37791 * adaint.c (get_gcc_version): New function.
37792
377932004-01-13 Robert Dewar <dewar@gnat.com>
37794
37795 * sem_dist.adb, sem_res.adb, sem_util.adb,
37796 sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
37797 exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
37798
377992004-01-13 Thomas Quinot <quinot@act-europe.fr>
37800
37801 * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
37802 g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
37803 declarations.
37804
8b52de7b
AC
378052004-01-12 Arnaud Charlet <charlet@act-europe.fr>
37806
f6ea0188
AC
37807 * misc.c: Remove trailing spaces.
37808 Update copyright notice missed in previous change.
37809
8b52de7b
AC
37810 PR ada/13572
37811 * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
37812 prefix/share/make
37813
37814 * Makefile.generic: Update copyright.
37815 Add license notice.
37816
37817 * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
37818 of prefix/share/make.
37819
37820 * Makefile.prolog: Update copyright.
37821 Add license notice.
37822
378232004-01-12 Laurent Pautet <pautet@act-europe.fr>
37824
37825 * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
37826 3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
37827 g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
37828 instead of String.
37829
37830 * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
37831 signature.
37832
378332004-01-12 Javier Miranda <miranda@gnat.com>
37834
37835 * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
37836 exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
37837 sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
37838 sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
37839 Component_Definition node.
37840
378412004-01-12 Ed Falis <falis@gnat.com>
37842
37843 * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
37844
378452004-01-12 Thomas Quinot <quinot@act-europe.fr>
37846
37847 * link.c: Change default libgnat kind to STATIC for FreeBSD.
37848
378492004-01-12 Bernard Banner <banner@gnat.com>
37850
37851 * Makefile.in: map 86numaux to a-numaux for x86_64
37852
378532004-01-12 Ed Schonberg <schonberg@gnat.com>
37854
37855 * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
37856 generated to rename a generic actual, go to the actual itself, the
37857 subtype is not a user-visible entity.
37858
37859 * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
37860 part is a private subtype, reset the visibility of its full view, if
37861 any, to be consistent.
37862
37863 PR ada/13417
37864 * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
37865 to use a generic package G as a formal package for another generic
37866 declared within G.
37867
378682004-01-12 Robert Dewar <dewar@gnat.com>
37869
37870 * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
37871
37872 * usage.adb: Remove mention of obsolete -gnatwb switch
37873 Noticed during code reading
37874
378752004-01-12 Jerome Guitton <guitton@act-europe.fr>
37876
37877 * 1ssecsta.adb: Minor changes for -gnatwa warnings
37878
378792004-01-12 GNAT Script <nobody@gnat.com>
37880
37881 * Make-lang.in: Makefile automatically updated
37882
0fab64a3
MM
378832004-01-09 Mark Mitchell <mark@codesourcery.com>
37884
37885 * misc.c (gnat_expand_expr): Add alt_rtl parameter.
37886
47527624
RO
378872004-01-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
37888
37889 * link.c [sgi] (shared_libgnat_default): Change to STATIC.
37890
dedebde1
KC
378912004-01-05 Kelley Cook <kcook@gcc.gnu.org>
37892
fbf3e0dd 37893 * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
dedebde1
KC
37894 Update comment and copyright date.
37895 * stamp-xgnatug: Delete.
37896
91b1417d
AC
378972004-01-05 Robert Dewar <dewar@gnat.com>
37898
37899 * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
37900 be modified by the binder generated main program if the -D switch is
37901 used.
37902
37903 * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
37904 imported functions (since now we expect this to be done for imported
37905 functions)
37906
37907 * 5vtaprop.adb: Add several ??? for sections requiring more comments
37908 Minor reformatting throughout
37909
37910 * 5zinit.adb: Minor reformatting
37911 Add 2004 to copyright date
37912 Minor changes to avoid -gnatwa warnings
37913 Correct some instances of using OR instead of OR ELSE (noted while
37914 doing reformatting)
37915
37916 * sprint.adb: Minor updates to avoid -gnatwa warnings
37917
fbf3e0dd 37918 * s-secsta.ads, s-secsta.adb:
91b1417d
AC
37919 (SS_Get_Max): New function to obtain high water mark for ss stack
37920 Default_Secondary_Stack is not a constant since it may be modified by
37921 the binder generated main program if the -D switch is used.
37922
37923 * switch-b.adb: New -Dnnn switch for binder
37924
fbf3e0dd 37925 * switch-c.adb:
91b1417d
AC
37926 Make -gnatg imply all warnings currently in -gnatwa
37927
37928 * vms_conv.adb: Minor reformatting
37929 Add 2004 to copyright notice
37930 Add 2004 to printed copyright notice
37931
37932 * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
37933 3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
37934 5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
37935 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
37936 5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
37937 5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
37938 5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
37939 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
37940 5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
37941 5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
37942 6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
37943 vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
37944 xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
37945 sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
37946 checks.adb, clean.adb, cstand.adb, einfo.ads,
37947 einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
37948 exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
37949 prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
37950 sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
37951 g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
37952 lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
37953 Minor reformatting and code clean ups.
37954 Minor changes to prevent -gnatwa warnings
37955
37956 * ali.adb: Minor reformatting and cleanup of code
37957 Acquire new SS indication of secondary stack use from ali files
37958
37959 * a-numaux.ads: Add Pure_Function pragmas for all imported functions
37960 (since now we expect this to be done for imported functions)
37961
37962 * bindgen.adb: Generate call to modify default secondary stack size if
37963 -Dnnn switch given
37964
37965 * bindusg.adb: Add line for new -D switch
37966
37967 * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
37968 replacement name for Type_May_Have_Non_Bit_Aligned_Components!
37969 Add circuitry for both records and arrays to avoid gigi
37970 processing if the type involved has non-bit-aligned components
37971
37972 * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
37973 N_String_Literal node always references an E_String_Literal_Subtype
37974 entity. This may not be true in the future.
37975 (Possible_Bit_Aligned_Component): Move processing of
37976 Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
37977
37978 * exp_ch6.adb (Expand_Thread_Body): Pick up
37979 Default_Secondary_Stack_Size as variable so that we get value modified
37980 by possible -Dnnn binder parameter.
37981
37982 * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
37983 (Type_May_Have_Bit_Aligned_Components): New function.
37984
37985 * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
37986 (Type_May_Have_Bit_Aligned_Components): New function.
37987
37988 * fe.h: (Set_Identifier_Casing): Fix prototype.
37989 Add declaration for Sem_Elim.Eliminate_Error_Msg.
37990 Minor reformatting.
37991
37992 * freeze.adb (Freeze_Entity): Add RM reference to error message about
37993 importing constant atomic/volatile objects.
37994 (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
37995 unless explicit Pure_Function pragma given, to avoid insidious bug of
37996 call to non-pure imported function getting eliminated.
37997
37998 * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
37999 gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
38000 gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
38001 Add 2004 to printed copyright notice
38002
38003 * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
38004 stack used.
38005
38006 * Makefile.rtl: Add entry for g-sestin.o
38007 g-sestin.ads: New file.
38008
38009 * mdll.adb: Minor changes to avoid -gnatwa warnings
38010
38011 * mlib-tgt.adb: Minor reformatting
38012
38013 * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
38014 New switch Sec_Stack_Used (GNAT, GNATBIND)
38015 Make Default_Secondary_Stack_Size a variable instead of a constant,
38016 so that it can be modified by the new -Dnnn bind switch.
38017
38018 * rtsfind.adb (Load_Fail): Give full error message in configurable
38019 run-time mode if all_errors mode is set. This was not done in the case
38020 of a file not found, which was an oversight.
38021 Note if secondary stack unit is used by compiler.
38022
38023 * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
38024 ineffective elaborate all pragmas on non-visible packages (this
38025 happened when a renamed subprogram was called). Now the elaborate all
38026 always goes on the package containing the renaming rather than the one
38027 containing the renamed subprogram.
38028
38029 * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
38030 (Process_Eliminate_Pragma): Add parameter to capture pragma location.
38031
38032 * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
38033 has an Etype that references an E_String_Literal.
38034 (Eval_String_Literal): Avoid assumption that N_String_Literal node
38035 always references an E_String_Literal_Subtype entity. This may not
38036 be true in the future.
38037
38038 * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
38039 pragma location.
38040
38041 * sem_res.adb (Resolve): Specialize msg for function name used in proc
38042 call.
38043
380442004-01-05 Ed Falis <falis@gnat.com>
38045
38046 * g-debuti.adb: Replaced direct boolean operator with short-circuit
38047 form.
38048
380492004-01-05 Vincent Celier <celier@gnat.com>
38050
38051 * bld.adb: Minor comment updates
38052 (Process_Declarative_Items): Correct incorrect name (Index_Name instead
38053 of Item_Name).
38054
38055 * make.adb (Gnatmake): Special process for files to compile/check when
38056 -B is specified. Fail when there are only foreign mains in attribute
38057 Main of the project file and -B is not specified. Do not skip bind/link
38058 steps when -B is specified.
38059
38060 * makeusg.adb: Document new switch -B
38061
38062 * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
38063
38064 * switch-m.adb: (Scan_Make_Switches): Process -B switch
38065
38066 * vms_data.ads: Add new GNAT PRETTY qualifier
38067 /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
38068
380692004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
38070
38071 * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
38072 case.
38073
38074 * misc.c (gnat_printable_name): If VERBOSITY is 2, call
38075 Set_Identifier_Casing.
38076
38077 * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
38078 has size that overflows.
38079
380802004-01-05 Gary Dismukes <dismukes@gnat.com>
38081
38082 * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
38083 -gnatwa warning on static condition.
38084
380852004-01-05 Doug Rupp <rupp@gnat.com>
38086
38087 * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
38088
380892004-01-05 Arnaud Charlet <charlet@act-europe.fr>
38090
38091 * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
38092 all attributes, including read-only attribute.
38093
380942004-01-05 Pascal Obry <obry@gnat.com>
38095
38096 * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
38097 library naming scheme.
38098
38099 * mlib-prj.adb (Build_Library): Generate different names for the static
38100 or dynamic version of the GNAT runtime. This is needed to support the
38101 new shared library naming scheme.
38102 (Process_Binder_File): Add detection of shared library in binder file
38103 based on the new naming scheme.
38104
38105 * gnatlink.adb (Process_Binder_File): Properly detect the new naming
38106 scheme for the shared runtime libraries.
38107
38108 * Makefile.in:
38109 (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
38110 scheme.
38111 (install-gnatlib): Do not create symlinks for shared libraries.
38112 (gnatlib-shared-default): Idem.
38113 (gnatlib-shared-dual-win32): New target. Not used for now as the
38114 auto-import feature does not support arrays/records.
38115 (gnatlib-shared-win32): Do not create copy for the shared libraries.
38116 (gnatlib-shared-vms): Fix shared runtime libraries names.
38117
38118 * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
38119 dependent runtime shared library name.
38120
381212004-01-05 Vasiliy Fofanov <fofanov@act-europe.fr>
38122
38123 * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
38124 than the object.
38125
381262004-01-05 Ed Schonberg <schonberg@gnat.com>
38127
38128 * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
38129 protected objects when allocator has a subtype indication, not a
38130 qualified expression. Note that qualified expressions may have to be
38131 checked when limited aggregates are implemented.
38132
38133 * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
38134 pure, emit warning.
38135 (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
38136 subprogram is imported, remove warning.
38137
381382004-01-05 Geert Bosch <bosch@gnat.com>
38139
38140 * s-poosiz.adb: Update copyright notice.
38141 (Allocate): Use Task_Lock to protect against concurrent access.
38142 (Deallocate): Likewise.
38143
381442004-01-05 Joel Brobecker <brobecker@gnat.com>
38145
38146 * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
38147 comment.
38148
2ab127f3
KC
381492003-12-23 Kelley Cook <kcook@gcc.gnu.org>
38150
38151 * gnat_ug.texi: Force a CVS commit by updating copyright.
38152 * gnat_ug_vxw.texi: Regenerate.
38153 * gnat_ug_wnt.texi: Regenerate.
38154 * gnat_ug_vms.texi: Regenerate.
38155 * gnat_ug_unx.texi: Regenerate.
38156
aed8bfdc
KH
381572003-12-20 Kazu Hirata <kazu@cs.umass.edu>
38158
38159 * trans.c: Remove uses of "register" specifier in
38160 declarations of local variables.
38161
90c2f1de
KC
381622003-12-18 Kelley Cook <kcook@gcc.gnu.org>
38163
38164 * stamp-xgnatug: New stamp file.
38165 * Make-lang.in (stamp-xgnatug): New stamp file and comment.
38166 (ada/doctools/xgnatug): Add $(build_exeext).
38167 (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
38168 ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
38169
891a6e79
AC
381702003-12-17 Ed Falis <falis@gnat.com>
38171
38172 * a-elchha.adb (Tailored_Exception_Information): made Info constant to
38173 eliminate warning.
38174
38175 * a-exextr.adb: Add context clause for
38176 Ada.Exceptions.Last_Chance_Handler.
38177
381782003-12-17 Sergey Rybin <rybin@act-europe.fr>
38179
38180 * cstand.adb (Create_Standard): Change the way how the declaration of
38181 the Duration type is created (making it the same way as it is for all
38182 the other standard types).
38183
381842003-12-17 Robert Dewar <dewar@gnat.com>
38185
38186 * s-crtl.ads: Fix header format
38187 Change Pure to Preelaborate
38188
381892003-12-17 Ed Schonberg <schonberg@gnat.com>
38190
38191 * checks.adb (Selected_Length_Checks): Generate an Itype reference for
38192 the expression type only if it is declared in the current unit.
38193
38194 * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
38195 are universal and already analyzed, as can occur in constrained
38196 subcomponents that depend on discriminants, when one constraint is a
38197 subtype mark.
38198
38199 * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
38200 type Any_Fixed is legal as the argument of a conversion, if only one
38201 fixed-point type is in context.
38202
382032003-12-17 GNAT Script <nobody@gnat.com>
38204
38205 * Make-lang.in: Makefile automatically updated
38206
209db2bf
AC
382072003-12-15 Robert Dewar <dewar@gnat.com>
38208
38209 * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
38210 sec stack size.
38211
382122003-12-15 Vincent Celier <celier@gnat.com>
38213
38214 * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
38215 (Gnatchop): Do not set failure status when reporting the number of
38216 warnings.
38217
382182003-12-15 Doug Rupp <rupp@gnat.com>
38219
38220 * s-ctrl.ads: New file.
38221
38222 * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
38223
38224 * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
38225 (GNATBIND_OBJS): Add ada/s-crtl.o.
38226
38227 * Makefile.in [VMS]: Clean up ifeq rules.
38228
38229 * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
38230 a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
38231 g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
38232 s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
38233 s-tasdeb.adb: Update copyright.
38234 Import System.CRTL.
38235 Make minor modifications to use System.CRTL declared functions instead
38236 of importing locally.
38237
382382003-12-15 GNAT Script <nobody@gnat.com>
38239
38240 * Make-lang.in: Makefile automatically updated
38241
a9f4e3d2
AC
382422003-12-11 Ed Falis <falis@gnat.com>
38243
38244 * 5zinit.adb: Clean up.
38245
38246 * 5zintman.adb (Notify_Exception): replaced case statement with a call
38247 to __gnat_map_signal, imported from init.c to support
38248 signal -> exception mappings that depend on the vxWorks version.
38249
fbf3e0dd 38250 * init.c:
a9f4e3d2
AC
38251 Created and exported __gnat_map_signal to support signal -> exception
38252 mapping that is dependent on the VxWorks version.
38253 Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
38254
382552003-12-11 Vasiliy Fofanv <fofanov@act-europe.fr>
38256
38257 * 5wosinte.ads: Link with -mthreads switch.
38258
382592003-12-11 Arnaud Charlet <charlet@act-europe.fr>
38260
38261 * init.c (__gnat_install_handler [NetBSD]): Set
38262 __gnat_handler_installed, as done on all other platforms.
38263 Remove duplicated code.
38264
382652003-12-11 Jerome Guitton <guitton@act-europe.fr>
38266
38267 * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
38268
382692003-12-11 Thomas Quinot <quinot@act-europe.fr>
38270
38271 * sinfo.ads: Fix inconsistent example code in comment.
38272
382732003-12-11 Robert Dewar <dewar@gnat.com>
38274
38275 * a-tiinau.adb: Add a couple of comments
38276
38277 * sem_ch3.adb: Minor reformatting
38278
fbf3e0dd 38279 * sem_prag.adb:
a9f4e3d2
AC
38280 Fix bad prototype of Same_Base_Type in body (code reading cleanup)
38281 Minor reformatting throughout
38282
382832003-12-11 Ed Schonberg <schonberg@gnat.com>
38284
38285 * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
38286 bounds of a loop, create a separate block in order to generate proper
38287 cleanup actions to prevent memory leaks.
38288
38289 * sem_res.adb (Resolve_Call): After a call to
38290 Establish_Transient_Scope, the call may be rewritten and relocated, in
38291 which case no further processing is needed.
38292
38293 * sem_util.adb: (Wrong_Type): Refine previous fix.
38294 Fixes ACATS regressions.
38295
38296 PR ada/13353
a9f4e3d2
AC
38297 * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
38298 be inlined.
38299
c45b6ae0
AC
383002003-12-08 Jerome Guitton <guitton@act-europe.fr>
38301
38302 * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
38303 i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
38304 obsolete files.
38305
38306 * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
38307 (rts-zfp): Ditto.
38308
383092003-12-08 Robert Dewar <dewar@gnat.com>
38310
38311 * 7sintman.adb: Minor reformatting
38312
38313 * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
38314 standard linker options to get standard libraries linked. We now plan
38315 to provide dummy versions of these libraries to match the appropriate
38316 configurable run-time (e.g. if a library is not needed at all, provide
38317 a dummy empty library).
38318
38319 * targparm.ads: Configurable_Run_Time mode no longer affects linker
38320 options (-L parameters and standard libraries). What we plan to do is
38321 to provide dummy libraries where the libraries are not required.
38322
38323 * gnatbind.adb: Minor comment improvement
38324
383252003-12-08 Javier Miranda <miranda@gnat.com>
38326
38327 * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
38328 aggregate in the parent. Otherwise constants with limited aggregates
38329 are not supported. Add new formal to pass the component type (Ctype).
38330 It is required to call the corresponding IP subprogram in case of
38331 default initialized components.
38332 (Gen_Assign): In case of default-initialized component, generate a
38333 call to the IP subprogram associated with the component.
38334 (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
38335 of aggregate with default initialized components.
38336 (Has_Default_Init_Comps): Improve implementation to recursively check
38337 all the present expressions.
38338
38339 * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
38340 to indicate that the initialization call corresponds to a
38341 default-initialized component of an aggregate.
38342 In case of default initialized aggregate with tasks this parameter is
38343 used to generate a null string (this is just a workaround that must be
38344 improved later). In case of discriminants, this parameter is used to
38345 generate a selected component node that gives access to the discriminant
38346 value.
38347
38348 * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
38349 subprogram, based on Build_Task_Allocate_Block, but adapted to expand
38350 allocated aggregates with default-initialized components.
38351
38352 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
38353 the box notation is used in positional aggregates.
38354
383552003-12-08 Samuel Tardieu <tardieu@act-europe.fr>
38356
38357 * lib.ads: Fix typo in comment
38358
383592003-12-08 Vincent Celier <celier@gnat.com>
38360
38361 * prj.adb (Project_Empty): New component Unkept_Comments
38362 (Scan): Remove procedure; moved to Prj.Err.
38363
38364 * prj.ads (Project_Data): New Boolean component Unkept_Comments
38365 (Scan): Remove procedure; moved to Prj.Err.
38366
38367 * prj-dect.adb: Manage comments for the different declarations.
38368
38369 * prj-part.adb (With_Record): New component Node
38370 (Parse): New Boolean parameter Store_Comments, defaulted to False.
38371 Set the scanner to return ends of line and comments as tokens, if
38372 Store_Comments is True.
38373 (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
38374 comments are associated with these nodes. Store the node IDs in the
38375 With_Records.
38376 (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
38377 With_Records.
38378 (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
38379 the N_Project node. Call Tree.Save and Tree.Reset before scanning the
38380 current project. Call Tree.Restore afterwards. Set the various nodes
38381 for comment storage (Next_End, End_Of_Line, Previous_Line,
38382 Previous_End).
38383
38384 * prj-part.ads (Parse): New Boolean parameter Store_Comments,
38385 defaulted to False.
38386
38387 * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
38388 to False. When Truncated is True, truncate the string, never go to the
38389 next line.
38390 (Write_End_Of_Line_Comment): New procedure
38391 (Print): Process comments for nodes N_With_Clause,
38392 N_Package_Declaration, N_String_Type_Declaration,
38393 N_Attribute_Declaration, N_Typed_Variable_Declaration,
38394 N_Variable_Declaration, N_Case_Construction, N_Case_Item.
38395 Process nodes N_Comment.
38396
38397 * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
38398 without comments and there are some comments, set the flag
38399 Unkept_Comments to True.
38400 (Scan): If there are comments, set the flag Unkept_Comments to True and
38401 clear the comments.
38402 (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
38403 (Next_End_Nodes: New table
38404 (Comment_Zones_Of): New function
38405 (Scan): New procedure; moved from Prj. Accumulate comments in the
38406 Comments table and set end of line comments, comments after, after end
38407 and before end.
38408 (Add_Comments): New procedure
38409 (Save, Restore, Seset_State): New procedures
38410 (There_Are_Unkept_Comments): New function
38411 (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
38412 (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
38413 procedures.
38414 (First_Comment_After, First_Comment_After_End): New functions
38415 (First_Comment_Before, First_Comment_Before_End): New functions
38416 (Next_Comment): New function
38417 (End_Of_Line_Comment, Follows_Empty_Line,
38418 Is_Followed_By_Empty_Line): New functions
38419 (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
38420 (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
38421 (Set_Next_Comment): New procedure
38422 (Default_Project_Node): Associate comment before if the node can store
38423 comments.
38424
38425 * scans.ads (Token_Type): New enumeration value Tok_Comment
38426 (Comment_Id): New global variable
38427
38428 * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
38429 defaulted to False.
38430 (Scan): Store position of start of comment. If comments are tokens, set
38431 Comment_Id and set Token to Tok_Comment when scanning a comment.
38432 (Set_Comment_As_Token): New procedure
38433
38434 * sinput-p.adb: Update Copyright notice
38435 (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
38436 that no longer exists.
38437
384382003-12-08 Javier Miranda <miranda@gnat.com>
38439
38440 * sem_aggr.adb: Add dependence on Exp_Tss package
38441 Correct typo in comment
38442 (Resolve_Aggregate): In case of array aggregates set the estimated
38443 type of the aggregate before calling resolve. This is needed to know
38444 the name of the corresponding IP in case of limited array aggregates.
38445 (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
38446 in case of default initialized array components.
38447
38448 * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
38449 types. Required to give support to limited aggregates in generic
38450 formals.
38451
384522003-12-08 Ed Schonberg <schonberg@gnat.com>
38453
38454 * sem_ch3.adb (Check_Initialization): For legality purposes, an
38455 inlined body functions like an instantiation.
38456 (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
38457 until bounds are analyzed, to diagnose premature use of type.
38458
38459 * sem_util.adb (Wrong_Type): Improve error message when the type of
38460 the expression is used prematurely.
38461
384622003-12-08 GNAT Script <nobody@gnat.com>
38463
38464 * Make-lang.in: Makefile automatically updated
38465
0875a894
AC
384662003-12-08 Arnaud Charlet <charlet@act-europe.fr>
38467
7618d510
AC
38468 * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
38469 they are automatically generated by Make-lang.in and cause nothing but
0875a894
AC
38470 maintenance troubles.
38471
5b4994bc
AC
384722003-12-05 Thomas Quinot <quinot@act-europe.fr>
38473
38474 * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
38475 version of this unit).
38476
384772003-12-05 Olivier Hainque <hainque@act-europe.fr>
38478
38479 * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
38480 5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
38481 5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
38482 the body of System.Interrupt_Management common to several targets.
38483 Update copyright notice when appropriate.
38484
38485 * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
38486 constant.
38487
38488 * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
38489 to ensure that the kernel fills in the interrupted context structure
38490 before calling a signal handler, which is necessary to be able to
38491 unwind past it. Update the copyright notice.
38492
384932003-12-05 Jerome Guitton <guitton@act-europe.fr>
38494
38495 * a-elchha.ads: New file.
38496
38497 * a-elchha.adb: New default last chance handler. Contents taken from
38498 Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
38499
38500 * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
38501 is moved to a-elchha.adb to provide a target-independent default last
38502 chance handler.
38503
38504 * Makefile.rtl: Add a-elchha.o
38505
38506 * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
38507
385082003-12-05 Ed Schonberg <schonberg@gnat.com>
38509
38510 * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
38511 declared in an instance, do not inline the call if the instance is not
38512 frozen yet, to prevent order of elaboration problems.
38513
38514 * sem_prag.adb: Add comments for previous fix.
38515
385162003-12-05 Samuel Tardieu <tardieu@act-europe.fr>
38517
38518 * g-table.adb: Use the right variable in Set_Item.
38519 Update copyright notice.
38520
385212003-12-05 Arnaud Charlet <charlet@act-europe.fr>
38522
38523 * Makefile.in: Remove unused rules.
38524
385252003-12-05 Vincent Celier <celier@gnat.com>
38526
38527 * switch-c.adb (Scan_Front_End_Switches): Remove processing of
38528 -nostdlib. Not needed here after all.
38529
efdfd311
AC
385302003-12-03 Thomas Quinot <quinot@act-europe.fr>
38531
38532 PR ada/11724
fbf3e0dd 38533 * adaint.h, adaint.c, g-os_lib.ads:
efdfd311
AC
38534 Do not assume that the offset argument to lseek(2) is a 32 bit integer,
38535 on some platforms (including FreeBSD), it is a 64 bit value.
38536 Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
38537
385382003-12-03 Arnaud Charlet <charlet@act-europe.fr>
38539
38540 * gnatvsn.ads (Library_Version): Now contain only the relevant
38541 version info.
38542 (Verbose_Library_Version): New constant.
38543
38544 * g-spipat.adb, g-awk.adb, g-debpoo.adb,
38545 g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
38546 s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
38547
38548 * gnatlbr.adb: Clean up: replace Library_Version by
38549 Verbose_Library_Version.
38550
fbf3e0dd 38551 * make.adb, lib-writ.adb, exp_attr.adb:
efdfd311
AC
38552 Clean up: replace Library_Version by Verbose_Library_Version.
38553
38554 * 5lintman.adb: Removed.
38555
fbf3e0dd 38556 * Makefile.in:
efdfd311
AC
38557 Update and simplify computation of LIBRARY_VERSION.
38558 Fix computation of GSMATCH_VERSION.
38559 5lintman.adb is no longer used: replaced by 7sintman.adb.
38560
385612003-12-03 Robert Dewar <dewar@gnat.com>
38562
fbf3e0dd 38563 * exp_ch5.adb:
efdfd311
AC
38564 (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
38565 name. Modified to consider small non-bit-packed arrays as troublesome
38566 and in need of component-by-component assigment expansion.
38567
385682003-12-03 Vincent Celier <celier@gnat.com>
38569
38570 * lang-specs.h: Process nostdlib as nostdinc
38571
38572 * back_end.adb: Update Copyright notice
38573 (Scan_Compiler_Arguments): Process -nostdlib directly.
38574
385752003-12-03 Jose Ruiz <ruiz@act-europe.fr>
38576
fbf3e0dd 38577 * Makefile.in:
efdfd311
AC
38578 When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
38579 redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
38580 included in HIE_NONE_TARGET_PAIRS.
38581
385822003-12-03 Ed Schonberg <schonberg@gnat.com>
38583
fbf3e0dd 38584 * sem_attr.adb:
efdfd311
AC
38585 (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
38586 is legal in an instance, because legality is cheched in the template.
38587
fbf3e0dd 38588 * sem_prag.adb:
efdfd311
AC
38589 (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
38590 appplied to an unchecked conversion of a formal parameter.
38591
fbf3e0dd 38592 * sem_warn.adb:
efdfd311
AC
38593 (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
38594 variables.
38595
385962003-12-03 Olivier Hainque <hainque@act-europe.fr>
38597
38598 * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
38599 routines. The second one is new functionality to deal with backtracing
38600 through signal handlers.
38601 (unwind): Split into the two separate subroutines above.
38602 Update the documentation, and deal properly with sizeof (REG) different
38603 from sizeof (void*).
38604
08aa9a4a
AC
386052003-12-01 Nicolas Setton <setton@act-europe.fr>
38606
38607 * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
38608 so that the debugger can reliably access the value of the parameter,
38609 and therefore is able to display the exception name when an exception
38610 breakpoint is reached.
38611
386122003-12-01 Thomas Quinot <quinot@act-europe.fr>
38613
38614 * fmap.adb: Fix typo in warning message.
38615
38616 * g-socket.ads, g-socket.adb: Make Free a visible instance of
38617 Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
38618
386192003-12-01 Vincent Celier <celier@gnat.com>
38620
38621 * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
38622 ther is no Afile.
38623 (Build_Library): Get the switches only if Default_Switches is declared
38624 in package Binder.
38625
386262003-12-01 Ed Schonberg <schonberg@gnat.com>
38627
38628 * exp_ch6.adb (Expand_Actuals): When applying validity checks to
38629 actuals that are indexed components, reanalyze actual to ensure that
38630 packed array references are properly expanded.
38631
38632 * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
38633 attempted assignment to a discriminant.
38634
386352003-12-01 Robert Dewar <dewar@gnat.com>
38636
38637 * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
38638 reformatting.
38639
38640 * switch-c.adb: Minor reformatting of comments
38641
386422003-12-01 Arnaud Charlet <charlet@act-europe.fr>
38643
38644 * Makefile.in: Clean ups.
38645
386462003-12-01 GNAT Script <nobody@gnat.com>
38647
38648 * Make-lang.in: Makefile automatically updated
38649
c6135994
AC
386502003-12-01 Arnaud Charlet <charlet@act-europe.fr>
38651
38652 * 5wsystem.ads: Disable zero cost exception, not ready yet.
38653
51a30506
UW
386542003-11-29 Ulrich Weigand <uweigand@de.ibm.com>
38655
38656 * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
38657 to force serialization.
38658
81a5b587
AC
386592003-11-26 Thomas Quinot <quinot@act-europe.fr>
38660
fbf3e0dd 38661 * g-socket.ads, g-socket.adb:
81a5b587
AC
38662 Clarify documentation of function Stream. Introduce a Free procedure
38663 to release the returned Stream once it becomes unused.
38664
38665 * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
38666
386672003-11-26 Arnaud Charlet <charlet@act-europe.fr>
38668
38669 (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
38670 since NT 4 cannot handle timeout values that are too large,
38671 e.g. DWORD'Last - 1.
38672
386732003-11-26 Ed Schonberg <schonberg@gnat.com>
38674
fbf3e0dd 38675 * exp_ch4.adb:
81a5b587
AC
38676 (Expand_N_Slice): Recognize all cases of slices that appear as actuals
38677 in procedure calls and whose expansion must be deferred.
38678
38679 * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
38680 is in exp_ch4.
38681
fbf3e0dd 38682 * sem_ch3.adb:
81a5b587
AC
38683 (Build_Derived_Array_Type): Create operator for unconstrained type
38684 if ancestor is unconstrained.
38685
386862003-11-26 Vincent Celier <celier@gnat.com>
38687
38688 * make.adb (Project_Object_Directory): New global variable
38689 (Change_To_Object_Directory): New procedure
38690 (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
38691 of Change_Dir directly. Do not change working directory to object
38692 directory of main project after each compilation.
38693 (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
38694 directly.
38695 Change to object directory of main project before binding step.
38696 (Initialize): Initialize Project_Object_Directory to No_Project
38697
fbf3e0dd 38698 * mlib-prj.adb:
81a5b587
AC
38699 (Build_Library): Take into account Builder'Default_Switches ("Ada") when
38700 binding a Stand-Alone Library.
38701
38702 * output.adb: Update Copyright notice
38703 (Write_Char): Output buffer when full
38704
387052003-11-26 Robert Dewar <dewar@gnat.com>
38706
38707 * sem_ch13.adb: (Check_Size): Reset size if size is too small
38708
fbf3e0dd 38709 * sem_ch13.ads:
81a5b587
AC
38710 (Check_Size): Fix documentation to include bit-packed array case
38711
38712 * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
38713
38714 * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
38715
38716 * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
38717
9e94c78f 387182003-11-24 Arnaud Charlet <charlet@act-europe.fr>
d4c47b51
AC
38719
38720 PR ada/13142
38721 * utils.c (init_gigi_decls): Change name of built-in setjmp to
38722 __builtin_setjmp, since this is apparently needed by recent
38723 non Ada changes.
38724
7677e9e0
RO
387252003-11-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
38726
d4c47b51 38727 * adadecode.c: Only include ctype.h if not IN_GCC.
7677e9e0
RO
38728 (__gnat_decode): Use ISDIGIT from safe-ctype.h.
38729
6c1e24d3
AC
387302003-11-24 Jose Ruiz <ruiz@act-europe.fr>
38731
fbf3e0dd 38732 * Makefile.in:
6c1e24d3
AC
38733 Use 5zintman.ads for VxWorks targets. This file avoid confusion between
38734 signals and interrupts.
38735
38736 * 5zintman.ads: New File.
38737
38738 * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
38739 add exception signals to the set of unmasked signals.
38740
fbf3e0dd 38741 * 5ztaprop.adb:
6c1e24d3
AC
38742 Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
38743 between signals and interrupts.
38744 Add to Unblocked_Signal_Mask the set of signals that are in
38745 Keep_Unmasked.
38746
fbf3e0dd 38747 * 7sinmaop.adb:
6c1e24d3
AC
38748 Adding a check to see whether the Interrupt_ID we want to unmask is in
38749 the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
38750 reason is that the index type of the Keep_Unmasked array is not always
38751 Interrupt_ID; it may be a subtype of Interrupt_ID.
38752
387532003-11-24 Gary Dismukes <dismukes@gnat.com>
38754
fbf3e0dd 38755 * exp_util.adb:
6c1e24d3
AC
38756 (Remove_Side_Effects): Condition constantness of object created for a
38757 an unchecked type conversion on the constantness of the expression
38758 to ensure the correct value for 'Constrained when passing components
38759 of view-converted class-wide objects.
38760
387612003-11-24 Robert Dewar <dewar@gnat.com>
38762
38763 * par-load.adb (Load): Improve handling of misspelled and missing units
38764 Removes several cases of compilation abandoned messages
38765
38766 * lib.adb: (Remove_Unit): New procedure
38767
38768 * lib.ads: (Remove_Unit): New procedure
38769
38770 * lib-load.adb: Minor reformatting
38771
387722003-11-24 Vincent Celier <celier@gnat.com>
38773
fbf3e0dd 38774 * make.adb:
6c1e24d3
AC
38775 (Gnatmake, Initialize): Call Usage instead of Makeusg directly
38776 (Marking_Label): Label to mark processed source files. Incremented for
38777 each executable.
38778 (Gnatmake): Increase Marking_Labet for each executable
38779 (Is_Marked): Compare against marking label
38780 (Mark): Mark with marking label
38781
387822003-11-24 Jerome Guitton <guitton@act-europe.fr>
38783
fbf3e0dd 38784 * s-thread.ads:
6c1e24d3
AC
38785 Move the declaration of the TSD for System.Threads to System.Soft_Links.
38786 Add some comments.
38787
38788 * Makefile.in: Added target pair for s-thread.adb for cert runtime.
38789 (rts-cert): build a single relocatable object for the run-time lib.
38790 Fix perms.
38791
387922003-11-24 Vasiliy Fofanov <fofanov@act-europe.fr>
38793
fbf3e0dd 38794 * Make-lang.in:
6c1e24d3
AC
38795 Use gnatls rather than gcc to obtain the location of GNAT RTL for
38796 crosstools build.
38797
387982003-11-24 Sergey Rybin <rybin@act-europe.fr>
38799
38800 * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
38801 can not use it as before (that is, as a variable) when dumping it into
38802 the tree file. Add a local variable to store the result of this
38803 function and to be used as the string to be written into the tree.
38804
38805 * scn.adb (Initialize_Scanner): Add comments explaining the recent
38806 changes.
38807
38808 * sinput.adb (Source_First, Source_Last): In case of
38809 Internal_Source_File, replace returning attributes of
38810 Internal_Source_Ptr (which is wrong) with returning attributes of
38811 Internal_Source.
38812
388132003-11-24 Ed Schonberg <schonberg@gnat.com>
38814
fbf3e0dd 38815 * sem_ch3.adb:
6c1e24d3
AC
38816 (New_Concatenation_Op): Proper name for New_Binary_Operator, only
38817 used for implicit concatenation operators.
38818 Code cleanup.
38819
fbf3e0dd 38820 * sem_elab.adb:
6c1e24d3
AC
38821 (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
38822 task bodies that are in the scope of a Suppress pragma.
38823 (Check_A Call): Use the flag to prevent spurious elaboration checks.
38824
fbf3e0dd 38825 * sinfo.ads, sinfo.adb:
6c1e24d3
AC
38826 New flag No_Elaboration_Check on function/procedure calls, to properly
38827 suppress checks on calls in task bodies that are within a local suppress
38828 pragma.
38829
fbf3e0dd 38830 * exp_ch4.adb:
6c1e24d3
AC
38831 (Expand_Concatenate_Other): Use the proper integer type for the
38832 expression for the upper bound, to avoid universal_integer computations
38833 when possible.
38834
6f2aeb72
KC
388352003-11-21 Kelley Cook <kcook@gcc.gnu.org>
38836
38837 * .cvsignore: Delete.
38838
e9f85cd6
AS
388392003-11-21 Andreas Schwab <schwab@suse.de>
38840
38841 * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
38842
4e074baf
VF
388432003-11-21 Vasiliy Fofanov <fofanov@act-europe.fr>
38844
38845 * 5wsystem.ads: Enable zero cost exception.
38846
f1f9fe30
AC
388472003-11-21 Jerome Guitton <guitton@act-europe.fr>
38848
38849 * 5ztiitho.adb: Remove an unreferenced variable.
38850
388512003-11-21 Thomas Quinot <quinot@act-europe.fr>
38852
38853 * adaint.c: For FreeBSD, use mkstemp.
38854
388552003-11-21 Arnaud Charlet <charlet@act-europe.fr>
38856
38857 * gnatlbr.adb: Now reference Gnat_Static_Version_String.
38858
388592003-11-21 Robert Dewar <dewar@gnat.com>
38860
38861 * bld.adb: Remove useless USE of gnatvsn
38862
38863 * gnatchop.adb: Minor reformatting
38864 Clean up version handling to be more consistent
38865
38866 * gnatxref.adb: Minor reformatting
38867
38868 * gprcmd.adb: Minor reformatting
38869 Fix output of copyright to be more consistent with other tools
38870
388712003-11-21 Vincent Celier <celier@gnat.com>
38872
38873 * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
38874
388752003-11-21 Sergey Rybin <rybin@act-europe.fr>
38876
38877 * atree.adb (Initialize): Add initializations for global variables
38878 used in New_Copy_Tree.
38879
38880 * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
38881 Internal_Source_File as the actual).
38882 Put the set of statements creating Any_Character before the set of
38883 statements creating Any_Array to have Any_Character fully initialized
38884 when it is used in creating Any_Array.
38885
38886 * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
38887 not call Scan in case if the actual is Internal_Source_File
38888 Add 2003 to copyright note.
38889
38890 * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
38891 processing Internal_Source_File.
38892
38893 * types.ads: Add the constant Internal_Source_File representing the
38894 source buffer for artificial source-code-like strings created within
38895 the compiler (the definition of Source_File_Index is changed).
38896
c5b2a8ae
AC
388972003-11-20 Arnaud Charlet <charlet@act-europe.fr>
38898
38899 * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
38900 56system.ads: New file, FreeBSD version.
38901
a03ad584
JM
389022003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
38903
38904 * Make-lang.in (ada.extraclean): Delete.
38905
19f0526a
AC
389062003-11-19 Arnaud Charlet <charlet@act-europe.fr>
38907
38908 * gnatmem.adb: Clean up verbose output.
38909
38910 * gprcmd.adb: Change copyright to FSF.
38911
389122003-11-19 Vincent Celier <celier@gnat.com>
38913
38914 * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
38915 and Version (ignored).
38916
38917 * symbols.ads: (Policy): New type
38918 (Initialize): New parameter Reference, Symbol_Policy and
38919 Library_Version.
38920 Remove parameter Force.
38921 Minor reformatting.
38922
38923 * snames.ads, snames.adbadb: New standard names
38924 Library_Reference_Symbol_File and Library_Symbol_Policy
38925
fbf3e0dd 38926 * mlib-prj.adb:
19f0526a
AC
38927 (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
38928 project.
38929
fbf3e0dd 38930 * mlib-tgt.adb:
19f0526a
AC
38931 (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
38932
38933 * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
38934
38935 * prj.adb: (Project_Empty): New component Symbol_Data
38936
38937 * prj.ads: (Policy, Symbol_Record): New types
38938 (Project_Data): New component Symbol_Data
38939
fbf3e0dd 38940 * prj-attr.adb:
19f0526a
AC
38941 New attributes Library_Symbol_File, Library_Symbol_Policy and
38942 Library_Reference_Symbol_File.
38943
fbf3e0dd 38944 * prj-nmsc.adb:
19f0526a
AC
38945 (Ada_Check): When project is a Stand-Alone library project, process
38946 attribute Library_Symbol_File, Library_Symbol_Policy and
38947 Library_Reference_Symbol_File.
38948
38949 * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
38950 5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
38951 5sml-tgt.adb (Build_Dynamic_Library): New parameter
38952 Symbol_Data (ignored).
38953
38954 * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
38955 (Build_Dynamic_Library): New parameter Symbol_Data. New internal
38956 functions Option_File_Name and Version_String. Set new options of
38957 gnatsym related to symbol file, symbol policy and reference symbol
38958 file.
38959
fbf3e0dd 38960 * 5vsymbol.adb:
19f0526a
AC
38961 Extensive modifications to take into account the reference symbol file,
38962 the symbol policy, the library version and to put in the symbol file the
38963 minor and major IDs.
38964
38965 * bld.adb (Process_Declarative_Items): Put second argument of
38966 gprcmd to_absolute between single quotes, to avoid problems with
38967 Windows.
38968
38969 * bld-io.adb: Update Copyright notice.
38970 (Flush): Remove last character of a line, if it is a back slash, to
38971 avoid make problems.
38972
fbf3e0dd 38973 * gnatsym.adb:
19f0526a
AC
38974 Implement new scheme with reference symbol file and symbol policy.
38975
38976 * g-os_lib.ads: (Is_Directory): Clarify comment
38977
389782003-11-19 Robert Dewar <dewar@gnat.com>
38979
38980 * atree.adb: Move New_Copy_Tree global variables to head of package
38981
38982 * errout.adb: Minor reformatting
38983
389842003-11-19 Javier Miranda <miranda@gnat.com>
38985
38986 * sem_ch4.adb: (Diagnose_Call): Improve error message.
38987 Add reference to Ada0Y (AI-50217)
38988
38989 * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
38990 sem_util.adb: Add reference to AI-50217
38991
38992 * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
38993
38994 * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
38995
38996 * sem_aggr.adb: Complete documentation of AI-287 changes
38997
38998 * par-ch4.adb: Document previous changes.
38999
39000 * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
39001 sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
39002 Ada0Y (AI-50217)
39003
39004 * exp_aggr.adb: Add references to AI-287 in previous changes
39005
390062003-11-19 Ed Schonberg <schonberg@gnat.com>
39007
fbf3e0dd 39008 * exp_ch6.adb:
19f0526a
AC
39009 (Add_Call_By_Copy_Node): Do not original node of rewritten expression
39010 in the rewriting is the result of an inlined call.
39011
39012 * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
39013 parameter is a type conversion, use original node to construct the
39014 post-call assignment, because expression may have been rewritten, e.g.
39015 if it is a packed array.
39016
fbf3e0dd 39017 * sem_attr.adb:
19f0526a
AC
39018 (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
39019 body, just as it is in an instance.
39020 Categorization routines
39021
39022 * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
39023 Instantiate_Object): Set proper sloc reference for message on missing
39024 actual.
39025
390262003-11-19 Thomas Quinot <quinot@act-europe.fr>
39027
39028 * Makefile.in: Add FreeBSD libgnat pairs.
39029
39030 * usage.adb: Fix typo in usage message.
39031
390322003-11-19 Jerome Guitton <guitton@act-europe.fr>
39033
39034 * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
39035 s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
39036 pragma Thread_Body.
39037 Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
39038
39039 * s-thread.adb: This file is now a dummy implementation of
39040 System.Thread.
39041
390422003-11-19 Sergey Rybin <rybin@act-europe.fr>
39043
39044 * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
39045
390462003-11-19 Emmanuel Briot <briot@act-europe.fr>
39047
39048 * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
39049 instanciation references in the parent type description.
39050
0d77ab84
AC
390512003-11-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39052
39053 * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
39054
39055 * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
39056 TYPE_PRECISION directly from esize.
39057
390582003-11-18 Thomas Quinot <quinot@act-europe.fr>
39059
fbf3e0dd 39060 * cstreams.c:
0d77ab84
AC
39061 Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
39062
39063 * init.c: Initialization routines for FreeBSD
39064
39065 * link.c: Link info for FreeBSD
39066
39067 * sysdep.c: Add the case of FreeBSD
39068
cb7a5092
AC
390692003-11-17 Jerome Guitton <guitton@act-europe.fr>
39070
39071 * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
39072 already called in System.Threads.
39073
39074 * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
39075 environment task, as it has been moved to System.Threads.Initialization.
39076
390772003-11-17 Arnaud Charlet <charlet@act-europe.fr>
39078
39079 * adaint.c (__gnatlib_install_locks): Only reference
39080 __gnat_install_locks on VMS, since other platforms can avoid using
39081 --enable-threads=gnat
39082
390832003-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39084
39085 * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
39086
39087 * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
39088 TYPE_PACKED_ARRAY_TYPE_P.
39089 (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
39090
39091 Part of PR ada/12806
39092 * utils.c (float_type_for_precision): Renamed from float_type_for_size.
39093 Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
39094
390952003-11-17 Vincent Celier <celier@gnat.com>
39096
39097 * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
39098 to False.
39099 Do not set exit status to Failure when Warning is True.
39100 (Gnatchop): Make errors "no compilation units found" and
39101 "no source files written" warnings only.
39102
39103 * make.adb (Gnatmake): When using a project file, set
39104 Look_In_Primary_Dir to False.
39105 (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
39106 and Local_Configuration_Pragmas in the project where they are declared
39107 not an extending project which might have inherited them.
39108
39109 * osint.adb (Locate_File): If Name is already an absolute path, do not
39110 look for a directory.
39111
39112 * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
39113 -gnats (Check_Syntax) is used, issue only a warning, not an error.
39114
39115 * prj.adb (Register_Default_Naming_Scheme): Add new component Project
39116 in objects of type Variable_Value.
39117
39118 * prj.ads: (Variable_Value): New component Project
39119
39120 * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
39121 is in a project extended by Project.
39122
39123 * prj-proc.adb (Add_Attributes): New parameter Project. Set component
39124 Project of Variable_Values to this new parameter value.
39125 (Expression): Set component Project of Variable_Values.
39126 (Process_Declarative_Items): Call Add_Attributes with parameter Project.
39127 Set the component Project in array elements.
39128
391292003-11-17 Sergey Rybin <rybin@act-europe.fr>
39130
39131 * errout.adb: (Initialize): Add initialization for error nodes.
39132
39133 * sem_ch12.adb (Initialize): Add missing initializations for
39134 Exchanged_Views and Hidden_Entities.
39135
391362003-11-17 Ed Schonberg <schonberg@gnat.com>
39137
39138 * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
39139 already instantiated tree for use in subsequent inlining.
39140 (Analyze_Associations, Instantiate_Formal_Subprogram,
39141 Instantiate_Object): improve error message for mismatch in
39142 instantiations.
39143
39144 * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
39145 instantiations of subprograms declared in instances.
39146
391472003-11-17 Javier Miranda <miranda@gnat.com>
39148
39149 * sem_ch4.adb (Analyze_Allocator): Previous modification must be
39150 executed only under the Extensions_Allowed flag.
39151
391522003-11-17 Robert Dewar <dewar@gnat.com>
39153
39154 * a-exexda.adb (Address_Image): Fix documentation to indicate leading
39155 zeroes suppressed.
39156 (Address_Image): Fix bug of returning 0x instead of 0x0
39157 Minor reformatting (function specs).
39158
39159 * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
39160 (missed case of 33-63)
39161
39162 * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
39163
39164 * s-thread.adb: Add comments for pragma Restriction
39165
39166 * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
39167 sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
39168
391692003-11-17 Ed Falis <falis@gnat.com>
39170
39171 * s-thread.adb: Added No_Tasking restriction for this implementation.
39172
391732003-11-17 Emmanuel Briot <briot@act-europe.fr>
39174
39175 * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
39176 instanciation references in the parent type description.
39177
391782003-11-17 GNAT Script <nobody@gnat.com>
39179
39180 * Make-lang.in: Makefile automatically updated
39181
7d60db05
JM
391822003-11-16 Jason Merrill <jason@redhat.com>
39183
39184 * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
39185 and TAGS files that include them for each front end.
39186
c0040397
AJ
391872003-11-14 Andreas Jaeger <aj@suse.de>
39188
a477ab83 39189 * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
fbf3e0dd 39190 is the canonical version.
a477ab83
AJ
39191 * misc.c (gnat_handle_option): Likewise.
39192
c0040397
AJ
39193 * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
39194
39195 * 5nsystem.ads: New file for x86_64-linux-gnu.
39196
95a6aaf9
AC
391972003-11-14 Arnaud Charlet <charlet@act-europe.fr>
39198
262cc585 39199 * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
95a6aaf9 39200
4a4fe537
AC
39201 * comperr.adb: Fix logic in previous change.
39202
65356e64
AC
392032003-11-13 Vincent Celier <celier@gnat.com>
39204
39205 * 5bml-tgt.adb (Build_Dynamic_Library): Use
39206 Osint.Include_Dir_Default_Prefix instead of
39207 Sdefault.Include_Dir_Default_Name.
39208
39209 * gnatlbr.adb: Update Copyright notice
39210 (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
39211 Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
39212 instead of Sdefault.Object_Dir_Default_Name
39213
c0040397 39214 * gnatlink.adb:
65356e64
AC
39215 (Process_Binder_File): Never suppress the option following -Xlinker
39216
c0040397 39217 * mdll-utl.adb:
65356e64
AC
39218 (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
39219 Sdefault.Object_Dir_Default_Name.
39220
c0040397 39221 * osint.ads, osint.adb:
65356e64
AC
39222 (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
39223 Minor reformatting.
39224
39225 * vms_conv.ads: Minor reformating
39226 Remove GNAT STANDARD and GNAT PSTA
39227
c0040397 39228 * vms_conv.adb:
65356e64
AC
39229 Allow GNAT MAKE to have several files on the command line.
39230 (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
39231 Sdefault.Object_Dir_Default_Name.
39232 Minor Reformating
39233 Remove data for GNAT STANDARD
39234
c0040397 39235 * vms_data.ads:
65356e64
AC
39236 Add new compiler qualifier /PRINT_STANDARD (-gnatS)
39237 Remove data for GNAT STANDARD
39238 Remove options and documentation for -gnatwb/-gnatwB: these warning
39239 options no longer exist.
39240
392412003-11-13 Ed Falis <falis@gnat.com>
39242
39243 * 5zthrini.adb: (Init_RTS): Made visible
39244
c0040397 39245 * 5zthrini.adb:
65356e64
AC
39246 (Register): Removed unnecessary call to taskVarGet that checked whether
39247 an ATSD was already set as a task var for the argument thread.
39248
c0040397 39249 * s-thread.adb:
65356e64
AC
39250 Updated comment to reflect that this is a VxWorks version
39251 Added context clause for System.Threads.Initialization
39252 Added call to System.Threads.Initialization.Init_RTS
39253
392542003-11-13 Jerome Guitton <guitton@act-europe.fr>
39255
c0040397 39256 * 5zthrini.adb:
65356e64
AC
39257 (Init_RTS): New procedure, for the initialization of the run-time lib.
39258
c0040397 39259 * s-thread.adb:
65356e64
AC
39260 Remove dependancy on System.Init, so that this file can be used in the
39261 AE653 sequential run-time lib.
39262
392632003-11-13 Robert Dewar <dewar@gnat.com>
39264
39265 * bindgen.adb: Minor reformatting
39266
392672003-11-13 Ed Schonberg <schonberg@gnat.com>
39268
c0040397 39269 * checks.adb:
65356e64
AC
39270 (Apply_Discriminant_Check): Do no apply check if target type is derived
39271 from source type with no applicable constraint.
39272
c0040397 39273 * lib-writ.adb:
65356e64
AC
39274 (Ensure_System_Dependency): Do not apply the style checks that may have
39275 been specified for the main unit.
39276
c0040397 39277 * sem_ch8.adb:
65356e64
AC
39278 (Find_Selected_Component): Further improvement in error message, with
39279 RM reference.
39280
c0040397 39281 * sem_res.adb:
65356e64
AC
39282 (Resolve): Handle properly the case of an illegal overloaded protected
39283 procedure.
39284
392852003-11-13 Javier Miranda <miranda@gnat.com>
39286
c0040397 39287 * exp_aggr.adb:
65356e64
AC
39288 (Has_Default_Init_Comps): New function to check the presence of
39289 default initialization in an aggregate.
39290 (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
39291 extension aggregate of a limited record. In addition, a new formal
39292 was added to do not initialize the record controller (if any) during
39293 this recursive expansion of ancestors.
39294 (Init_Controller): Add support for limited record components.
39295 (Expand_Record_Aggregate): In case of default initialized components
39296 convert the aggregate into a set of assignments.
39297
39298 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
39299 describing the new syntax.
39300 Nothing else needed to be done because this subprogram delegates part of
39301 its work to P_Precord_Or_Array_Component_Association.
39302 (P_Record_Or_Array_Component_Association): Give support to the new
39303 syntax for default initialization of components.
39304
c0040397 39305 * sem_aggr.adb:
65356e64
AC
39306 (Resolve_Aggregate): Relax the strictness of the frontend in case of
39307 limited aggregates.
39308 (Resolve_Record_Aggregate): Give support to default initialized
39309 components.
39310 (Get_Value): In case of default initialized components, duplicate
39311 the corresponding default expression (from the record type
39312 declaration). In case of default initialization in the *others*
39313 choice, do not check that all components have the same type.
39314 (Resolve_Extension_Aggregate): Give support to limited extension
39315 aggregates.
39316
c0040397 39317 * sem_ch3.adb:
65356e64
AC
39318 (Check_Initialization): Relax the strictness of the front-end in case
39319 of aggregate and extension aggregates. This test is now done in
39320 Get_Value in a per-component manner.
39321
39322 * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
39323 expression corresponds to a limited aggregate. This test is now done
39324 in Get_Value.
39325
39326 * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
39327 Box_Present flag.
39328
39329 * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
39330 present in an N_Component_Association node
39331
393322003-11-13 Thomas Quinot <quinot@act-europe.fr>
39333
39334 * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
39335 type-conformant entry only if they are homographs.
39336
393372003-11-13 GNAT Script <nobody@gnat.com>
39338
39339 * Make-lang.in: Makefile automatically updated
39340
49add53f
RO
393412003-11-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
39342
39343 * adadecode.c: Use <> form of include for ctype.h.
39344 * sysdep.c [IN_RTS]: Use <> form of include for time.h.
39345
94bae1cc
RO
393462003-11-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
39347
39348 * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
39349 Works around PR middle-end/6552.
39350
463f452c
AC
393512003-11-10 Ed Falis <falis@gnat.com>
39352
39353 * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
39354
39355 * 5zinit.adb: (Install_Handler): Moved back to spec
39356 (Install_Signal_Handlers): Deleted
39357
39358 * 5zthrini.adb: Added context clause for System.Storage_Elements
39359 (Register): Only handles creation of taskVar; initialization moved to
39360 Thread_Body_Enter.
39361 (Reset_TSD): Deleted; replaced by Thread_Body_Enter
39362 Added declaration of environment task secondary stack and
39363 initialization.
39364
39365 * s-thread.adb: Implement bodies for thread body processing
39366
c0040397 39367 * s-thread.ads:
463f452c
AC
39368 Added comment identifying supported targets for pragma Thread_Body.
39369
393702003-11-10 Pascal Obry <obry@gnat.com>
39371
39372 * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
39373 GNAT_MAX_PATH_LEN.
39374
c0040397 39375 * s-fileio.adb:
463f452c
AC
39376 (Open): Properly check for string length before copying into the buffer.
39377 Raises Name_Error if buffer is too small. Note that this was a potential
39378 buffer overflow.
39379
393802003-11-10 Romain Berrendonner <berrendo@act-europe.fr>
39381
39382 * bindgen.adb, comperr.adb: Code clean ups.
39383 * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
39384
393852003-11-10 Sergey Rybin <rybin@act-europe.fr>
39386
39387 * gnat1drv.adb: Add call to Sem_Elim.Initialize.
39388
393892003-11-10 Vincent Celier <celier@gnat.com>
39390
c0040397 39391 * gprcmd.adb:
463f452c
AC
39392 (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
39393 installation.
39394
39395 * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
39396
39397 * prj.adb: (Project_Empty): Add new boolean component Virtual
39398
39399 * prj.ads: (Virtual_Prefix): New constant string
39400 (Project_Data): New boolean component Virtual
39401
39402 * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
39403 a library project is extended by a virtual extending project.
39404
c0040397 39405 * prj-part.adb:
463f452c
AC
39406 Modifications throughout to implement extending-all project, including:
39407 (Virtual_Hash, Processed_Hash): New hash tables
39408 (Create_Virtual_Extending_Project): New procedure
39409 (Look_For_Virtual_Projects_For): New procedure
39410
c0040397 39411 * prj-proc.adb:
463f452c
AC
39412 (Process): After checking the projects, if main project is an
39413 extending-all project, set the object directory of all virtual extending
39414 project to the object directory of the main project.
39415 Adjust error message when a virtual extending project has the same
39416 object directory as an project being extended.
39417 (Recursive_Process): If name starts with the virtual prefix, set Virtual
39418 to True in the project data.
39419
c0040397 39420 * prj-tree.adb:
463f452c
AC
39421 (Default_Project_Node): Add new boolean component Extending_All
39422 (Is_Extending_All): New function
39423 (Set_Is_Extending_All): New procedure
39424
39425 * prj-tree.ads: (Is_Extending_All): New function
39426 (Set_Is_Extending_All): New procedure
39427 (Project_Node_Record): New boolean component Extending_All
39428
39429 * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
39430
c0040397 39431 * vms_data.ads:
463f452c
AC
39432 Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
39433
39434 * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
39435 "gprcmd prefix" to define it.
39436
394372003-11-10 Thomas Quinot <quinot@act-europe.fr>
39438
39439 * einfo.ads: Fix a typo and remove an extraneous word in comments.
39440
c0040397 39441 * lib-load.adb:
463f452c
AC
39442 (Create_Dummy_Package_Unit): Set the scope of the entity for the
39443 created dummy package to Standard_Standard, not to itself, to
39444 defend other parts of the front-end against encoutering a cycle in
39445 the scope chain.
39446
c0040397 39447 * sem_ch10.adb:
463f452c
AC
39448 (Analyze_With_Clause): When setting the entities for the successive
39449 N_Expanded_Names that constitute the name of a child unit, do not
39450 attempt to go further than Standard_Standard in the chain of scopes.
39451 This case arises from the placeholder units created by
39452 Create_Dummy_Package_Unit in the case of a with_clause for a
39453 nonexistent child unit.
39454
394552003-11-10 Ed Schonberg <schonberg@gnat.com>
39456
c0040397 39457 * exp_ch6.adb:
463f452c
AC
39458 (Expand_Thread_Body): Place subprogram on scope stack, so that new
39459 declarations are given the proper scope.
39460
c0040397 39461 * sem_ch13.adb:
463f452c
AC
39462 (Check_Expr_Constants): Reject an expression that contains a constant
39463 created during expansion, and that appears after the object to which
39464 the address clause applies.
39465
39466 * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
39467 Analyze_Iteration_Scheme, to rewrite a loop parameter specification
39468 that uses 'Range of a function call with controlled components, so
39469 that the function result can be finalized before starting the loop.
39470
c0040397 39471 * sem_ch8.adb:
463f452c
AC
39472 (Find_Selected_Component): Improve error message when prefix is
39473 an implicit dereference of an incomplete type.
39474
394752003-11-10 Robert Dewar <dewar@gnat.com>
39476
39477 * opt.ads: New Print_Standard flag for -gnatS switch
39478
39479 * sem_ch13.adb: Remove some additional checks for unaligned arrays
39480
39481 * cstand.adb (Create_Standard): Print out package standard if -gnatS
39482 switch set
39483
39484 * debug.adb: Update doc for -gnatds to discuss relationship with new
39485 -gnatS flag
39486
39487 * sinfo.adb: Add new field Entity_Or_Associated_Node
39488
39489 * sinfo.ads: Add new field Entity_Or_Associated_Node
39490 Update documentation for Associated_Node and Entity fields to clarify
39491 relationship and usage.
39492
c0040397 39493 * sprint.adb:
463f452c
AC
39494 (Write_Id): Properly process Associated_Node field in generic template
39495
c0040397 39496 * switch-c.adb:
463f452c
AC
39497 Recognize new -gnatS switch for printing package Standard
39498 This replaces gnatpsta
39499
c0040397 39500 * usage.adb:
463f452c
AC
39501 Add line for new -gnatS switch for printing package Standard
39502 This replaces gnatpsta
39503
c77c5f2e
AJ
395042003-11-10 Andreas Jaeger <aj@suse.de>
39505
39506 * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
39507 integer.
39508
5c90f17f
AC
395092003-11-10 Arnaud Charlet <charlet@act-europe.fr>
39510
39511 * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
39512 by gnat1.
39513
139f0d1e
AC
395142003-11-10 Arnaud Charlet <charlet@act-europe.fr>
39515
39516 * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
39517 no longer needed.
39518
39519 * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
39520
39521 * sysdep.c: Add handling of cygwin.
39522
f3e4c05c
GS
395232003-11-10 GNAT Script <nobody@gnat.com>
39524
39525 * Make-lang.in: Makefile automatically updated
39526
2cdc8909
AC
395272003-11-10 Arnaud Charlet <charlet@act-europe.fr>
39528
39529 PR 12950
39530 * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
39531 functions. Used to handle dynamic prefix relocation, via set_std_prefix.
39532 Replace GNAT_ROOT by GCC_ROOT.
39533
39534 * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
39535
37783865
ZW
395362003-11-06 Zack Weinberg <zack@codesourcery.com>
39537
39538 * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
39539 and update for changed meaning of GET_MODE_BITSIZE.
39540
6bc1c519
AC
395412003-11-04 Doug Rupp <rupp@gnat.com>
39542
39543 * sysdep.c: Problem discovered during IA64 VMS port.
39544 [VMS] #include <unixio.h> to get proper prototypes.
39545
37783865 39546 * adaint.c:
6bc1c519
AC
39547 Issues discovered/problems fixed during IA64 VMS port.
39548 [VMS] #define _POSIX_EXIT for proper semantics.
39549 [VMS] #include <unixio.h> for proper prototypes.
39550 [VMS] (fork): #define IA64 version.
39551 (__gnat_os_exit): Remove unnecessary VMS specific code.
39552
395532003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39554
39555 Part of PR ada/12806
6bc1c519
AC
39556 * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
39557 tree, not integer.
39558
37783865 39559 * decl.c:
6bc1c519
AC
39560 (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
39561 not integer.
39562
39563 * targtyps.c, decl.c, misc.c,
39564 gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
39565 routines to work around change in FP sizing semantics in GCC.
39566
37783865 39567 * utils.c:
6bc1c519
AC
39568 (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
39569
39570 * gigi.h: (enumerate_modes): New function.
39571
39572 * Make-lang.in: (ada/misc.o): Add real.h.
39573
39574 * misc.c: (enumerate_modes): New function.
39575
395762003-11-04 Robert Dewar <dewar@gnat.com>
39577
39578 * 3vtrasym.adb: Minor reformatting
39579 Use terminology encoded/decoded name, rather than C++ specific notion
39580 of mangling (this is the terminology used throughout GNAT).
39581
39582 * einfo.h: Regenerated
39583
39584 * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
39585
37783865 39586 * exp_ch6.adb:
6bc1c519
AC
39587 (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
39588
39589 * par-prag.adb: Add dummy entry for Thread_Body pragma
39590
37783865 39591 * rtsfind.ads:
6bc1c519
AC
39592 Add entries for System.Threads entities for thread body processing
39593
37783865 39594 * sem_attr.adb:
6bc1c519
AC
39595 (Analyze_Pragma, Access attributes): Check these are not applied to a
39596 thread body, since this is not permitted
39597
39598 * sem_prag.adb: Add processing for Thread_Body pragma.
39599 Minor comment fix.
39600
37783865 39601 * sem_res.adb:
6bc1c519
AC
39602 (Resolve_Call): Check for incorrect attempt to call a thread body
39603 procedure with a direct call.
39604
39605 * snames.ads, snames.adb: Add entry for Thread_Body pragma
39606 Add names associated with thread body expansion
39607
39608 * snames.h: Add entry for Thread_Body pragma
39609
39610 * s-thread.adb: Add entries for thread body processing
39611 These are dummy bodies so far
39612
39613 * s-thread.ads: Add documentation on thread body handling.
39614 Add entries for thread body processing.
39615
396162003-11-04 Javier Miranda <miranda@gnat.com>
39617
37783865 39618 * sem_ch10.adb:
6bc1c519
AC
39619 (Build_Limited_Views): Return after posting an error in case of limited
39620 with_clause on subprograms, generics, instances or generic renamings
39621 (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
39622 on subprograms, generics, instances or generic renamings
39623
396242003-11-04 Arnaud Charlet <charlet@act-europe.fr>
39625
39626 * raise.c (setup_to_install): Correct mistake in last revision; two
39627 arguments out of order.
39628
39629 * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
39630 gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
39631 notice, missed in previous change.
39632 Remove trailing blanks and other style errors introduced in previous
39633 change.
39634
396352003-11-04 Olivier Hainque <hainque@act-europe.fr>
39636
39637 * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
39638 rid of the wrapper for a LJM type, ensuring we don't do that if the
39639 field is addressable. This avoids potential low level type view
39640 mismatches later on, for instance in a by-reference argument passing
39641 process.
39642
396432003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39644
39645 * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
39646 aligned at byte boundary.
39647
396482003-11-04 Joel Brobecker <brobecker@gnat.com>
39649
39650 * decl.c (components_to_record): Do not delete the empty variants from
39651 the end of the union type.
39652
396532003-11-04 Ed Schonberg <schonberg@gnat.com>
39654
39655 * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
39656 operation for a derived type, an explicit declaration may use a local
39657 subtype of Boolean.
39658
396592003-11-04 Vincent Celier <celier@gnat.com>
39660
39661 * make.adb (Gnatmake): Allow main sources on the command line with a
39662 library project when it is only for compilation (no binding or
39663 linking).
39664
487e9fff
RO
396652003-11-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
39666
39667 * Makefile.in: Remove many duplicate variables.
39668
63069342
KC
396692003-11-03 Kelley Cook <kcook@gcc.gnu.org>
39670
39671 * Make-lang.in (dvi): Move targets to $(docobjdir).
39672 (gnat_ug_vms.dvi): Simplify rule and adjust target.
39673 (gnat_ug_wnt.dvi): Likewise.
39674 (gnat_ug_unx.dvi): Likewise.
39675 (gnat_ug_vxw.dvi): Likewise.
39676 (gnat_rm.dvi): Likewise.
39677 (gnat-style.dvi): Likewise.
39678
c2edc52b
KC
396792003-10-31 Kelley Cook <kcook@gcc.gnu.org>
39680
39681 * gigi.h: Missed commit from update for C90.
39682
14df9585
KC
396832003-10-31 Kelley Cook <kcook@gcc.gnu.org>
39684
39685 * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
39686
acd8e984
AS
396872003-10-31 Andreas Schwab <schwab@suse.de>
39688
39689 * raise.c (get_action_description_for): Fix typo in last change.
39690
b2c62c45
NN
396912003-10-31 Nathanael Nerode <neroden@gcc.gnu.org>
39692
39693 PR ada/12761
39694 * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
39695 T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
39696
9373164a
KC
396972003-10-30 Kelley Cook <kcook@gcc.gnu.org>
39698
39699 * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
39700 ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
39701 gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
39702 sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
39703 trans.c, utils.c, utils2.c: Convert function prototypes to C90.
39704
bde58e32
AC
397052003-10-30 Vasiliy Fofanov <fofanov@act-europe.fr>
39706
37783865 39707 * 3vtrasym.adb:
bde58e32
AC
39708 Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
39709 numbers when symbol name is too long.
39710
397112003-10-30 Ed Falis <falis@gnat.com>
39712
39713 * g-signal.ads, g-signal.adb: New files
39714
39715 * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
39716
39717 * Makefile.rtl: Introduce GNAT.Signals
39718
397192003-10-30 Robert Dewar <dewar@gnat.com>
39720
39721 * freeze.adb: Minor reformatting
39722
39723 * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
39724
37783865
ZW
39725 * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
39726 par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
bde58e32
AC
39727 New handling of Id_Check parameter to improve recognition of keywords
39728 used as identifiers.
39729 Update copyright notice to include 2003
39730
657a9dd9
AC
397312003-10-29 Robert Dewar <dewar@gnat.com>
39732
39733 * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
39734 sem_ch10.adb: Minor reformatting
39735
39736 * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
39737 (Expand_Assign_Record): Test right hand side for bit unaligned as well
39738
397392003-10-29 Vasiliy Fofanov <fofanov@act-europe.fr>
39740
37783865 39741 * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
657a9dd9
AC
39742 Support for TBK$SYMBOLIZE-based symbolic traceback.
39743
397442003-10-29 Jose Ruiz <ruiz@act-europe.fr>
39745
37783865 39746 * exp_disp.adb:
657a9dd9
AC
39747 Revert previous change, that did not work well when pragma No_Run_Time
39748 was used in conjunction with a run-time other than ZFP.
39749
397502003-10-29 Vincent Celier <celier@gnat.com>
39751
37783865 39752 * make.adb:
657a9dd9
AC
39753 (Gnatmake): When there are no Ada mains in attribute Main, disable the
39754 bind and link steps only is switch -z is not used.
39755
397562003-10-29 Arnaud Charlet <charlet@act-europe.fr>
39757
39758 * Makefile.generic: Remove duplicated setting of CC.
39759
39760 * Makefile.prolog: Set CC to gcc by default, to override make's
39761 default (cc).
39762
39763 * einfo.h: Regenerated.
39764
397652003-10-29 Ed Schonberg <schonberg@gnat.com>
39766
39767 * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
39768 current body, after compiling subunit.
39769
39770 * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
39771 when in deleted code, because gigi needs properly ordered freeze
39772 actions to annotate types.
39773
39774 * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
39775 prevent the premature freezing of record type that contains
39776 subcomponents with a private type that does not yet have a completion.
39777
397782003-10-29 Javier Miranda <miranda@gnat.com>
39779
37783865 39780 * sem_ch12.adb:
657a9dd9
AC
39781 (Analyze_Package_Instantiation): Check that instances can not be used in
39782 limited with_clauses.
39783
37783865 39784 * sem_ch8.adb:
657a9dd9
AC
39785 (Analyze_Package_Renaming): Check that limited withed packages cannot
39786 be renamed. Improve text on error messages related to limited
39787 with_clauses.
39788
39789 * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
39790
39791 * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
39792 Update copyright notice.
39793
39794 * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
39795 (Install_Limited_Context_Clauses): New subprogram that isolates all the
39796 checks required for limited context_clauses and installs the limited
39797 view.
39798 (Install_Limited_Withed_Unit): Complete its documentation.
39799 (Analyze_Context): Check that limited with_clauses are only allowed in
39800 package specs.
39801 (Install_Context): Call Install_Limited_Context_Clauses after the
39802 parents have been installed.
39803 (Install_Limited_Withed_Unit): Add documentation. Mark the installed
39804 package as 'From_With_Type'; this mark indicates that the limited view
39805 is installed. Used to check bad usages of limited with_clauses.
39806 (Build_Limited_Views): Do not add shadow entities to the scope's list
39807 of entities. Do not add real entities to the Non_Limited_Views chain.
39808 Improve error notification.
39809 (Remove_Context_Clauses): Remove context clauses in two phases:
39810 limited views first and regular views later (to maintain the
39811 stack model).
39812 (Remove_Limited_With_Clause): If the package is analyzed then reinstall
39813 its visible entities.
39814
398152003-10-29 Thomas Quinot <quinot@act-europe.fr>
39816
39817 * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
39818 with any type that Is_Fixed_Point_Type.
39819
39820 * sinfo.ads: Fix documentation for Associated_Node attribute.
39821
398222003-10-29 Sergey Rybin <rybin@act-europe.fr>
39823
39824 * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
39825 both '-gnatc' and '-gnatt' are specified.
39826
39827 * atree.adb (Initialize): Add initialization for Node_Count (set to
39828 zero).
39829
398302003-10-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39831
39832 * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
39833 do not consider as Pure.
39834
39835 Part of implementation of function-at-a-time:
39836
39837 * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
39838 (tree_transform): Add new argument to build_component_ref.
39839 (tree_transform, case N_Assignment_Statement): Make and return an
39840 EXPR_STMT.
39841 (tree_transform): If result IS_STMT, set flags and return it.
39842 (gnat_expand_stmt, set_lineno_from_sloc): New functions.
39843
39844 * utils2.c (build_simple_component_ref, build_component_ref): Add new
39845 arg, NO_FOLD_P.
39846 (build_binary_op, case EQ_EXPR): Pass additional arg to it.
39847 (build_allocator): Likewise.
39848
39849 * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
39850 Add new arg to build_component_ref.
39851 (maybe_unconstrained_array, unchecked_convert): Likewise.
39852
39853 * ada-tree.def (EXPR_STMT): New code.
39854
39855 * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
39856
39857 * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
39858 build_component_ref calls.
39859
39860 * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
39861
39862 * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
39863 (build_component_ref): Add new argument, NO_FOLD_P.
39864
ecad994d
AC
398652003-10-27 Arnaud Charlet <charlet@act-europe.fr>
39866
39867 * Makefile.generic: Add missing substitution on object_deps handling.
39868
6f7f72f9 39869 PR ada/5909
ecad994d
AC
39870 * Make-lang.in (check-ada): Enable ACATS test suite.
39871
398722003-10-27 Robert Dewar <dewar@gnat.com>
39873
37783865 39874 * exp_ch3.adb:
ecad994d
AC
39875 (Freeze_Array_Type): We do not need an initialization routine for types
39876 derived from String or Wide_String. They should be treated the same
39877 as String and Wide_String themselves. This caused problems with the
39878 use of Initialize_Scalars.
39879
37783865 39880 * exp_ch5.adb:
ecad994d
AC
39881 (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
39882 composites. This allows use of component clauses that are not byte
39883 aligned.
39884
37783865 39885 * sem_prag.adb:
ecad994d
AC
39886 (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
39887 is an attempt to pack an array of atomic objects.
39888
39889 * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
39890
398912003-10-27 Pascal Obry <obry@gnat.com>
39892
37783865 39893 * g-dirope.adb:
ecad994d
AC
39894 (Basename): Check for drive letters in a pathname only on DOS based OS.
39895
398962003-10-27 Vincent Celier <celier@gnat.com>
39897
37783865 39898 * make.adb:
ecad994d
AC
39899 (Gnatmake): When unable to change dir to the object dir, display the
39900 content of the parent dir of the obj dir, to try to understand why this
39901 happens.
39902
399032003-10-27 GNAT Script <nobody@gnat.com>
39904
39905 * Make-lang.in: Makefile automatically updated
39906
399072003-10-27 Ed Schonberg <schonberg@gnat.com>
39908
37783865 39909 * sem_ch12.adb:
ecad994d
AC
39910 (Inline_Instance_Body): Indicate that the save/restore of use_clauses
39911 should not be done in Save/Restore_Scope_Stack, because it is performed
39912 locally.
39913
37783865 39914 * sem_ch8.adb:
ecad994d
AC
39915 (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
39916 whether use clauses should be removed/restored.
39917
37783865 39918 * sem_ch8.ads:
ecad994d
AC
39919 (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
39920 whether use clauses should be removed/restored.
39921
b6b3c138
AJ
399222003-10-26 Andreas Jaeger <aj@suse.de>
39923
39924 * Makefile.in: Remove duplicated lines.
39925
b6d83931
AC
399262003-10-24 Arnaud Charlet <charlet@act-europe.fr>
39927
39928 * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
39929 minimize the differences with ACT tree.
39930
39931 * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
39932 gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
39933 Gnatvsn.Gnat_Static_Version_String to reduce differences between
39934 ACT and FSF trees.
39935
399362003-10-24 Pascal Obry <obry@gnat.com>
39937
6f7f72f9 39938 PR ada/12014
b6d83931
AC
39939 * adadecode.c (ostrcpy): New function.
39940 (__gnat_decode): Use ostrcpy of strcpy.
39941 (has_prefix): Set first parameter a const.
39942 (has_suffix): Set first parameter a const.
39943 Update copyright notice. Fix source name in header.
39944 Removes a trailing space.
b6d83931
AC
39945
399462003-10-24 Jose Ruiz <ruiz@act-europe.fr>
39947
b6b3c138 39948 * exp_disp.adb:
b6d83931
AC
39949 Remove the test against being in No_Run_Time_Mode before generating a
39950 call to Register_Tag. It is redundant with the test against the
39951 availability of the function Register_Tag.
39952
399532003-10-24 Vincent Celier <celier@gnat.com>
39954
39955 * g-catiio.adb: (Month_Name): Correct spelling of February
39956
39957 * make.adb: (Mains): New package
39958 (Initialize): Call Mains.Delete
39959 (Gnatmake): Check that each main on the command line is a source of a
39960 project file and, if there are several mains, each of them is a source
39961 of the same project file.
39962 (Gnatmake): When a foreign language is specified in attribute Languages,
39963 no main is specified on the command line and attribute Mains is not
39964 empty, only build the Ada main. If there is no Ada main, just compile
39965 the Ada sources and their closure.
39966 (Gnatmake): If a main is specified on the command line with directory
39967 information, check that the source exists and, if it does, that the path
39968 is the actual path of a source of a project.
39969
b6b3c138 39970 * prj-env.adb:
b6d83931
AC
39971 (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
39972 Full_Path is True, return the full path instead of the simple file name.
39973 (Project_Of): New function
39974
b6b3c138 39975 * prj-env.ads:
b6d83931
AC
39976 (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
39977 defaulted to False.
39978 (Project_Of): New function
39979
399802003-10-24 Arnaud Charlet <charlet@act-europe.fr>
39981
b6b3c138 39982 * Makefile.generic:
b6d83931
AC
39983 Ensure objects of main project are always checked and rebuilt if needed.
39984 Set CC to gcc by default.
39985 Prepare new handling of link by creating a global archive (not activated
39986 yet).
39987
39988 * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
39989 stringt.h: Update copyright notice. Remove trailing blanks.
39990 Fix source name in header.
39991
399922003-10-24 Robert Dewar <dewar@gnat.com>
39993
39994 * sem_ch12.adb: Minor reformatting
39995
b6b3c138 39996 * sem_ch3.adb:
b6d83931
AC
39997 Minor reformatting (including new function return style throughout)
39998
b6b3c138 39999 * sem_ch3.ads:
b6d83931
AC
40000 Minor reformatting (including new function return style throughout)
40001
400022003-10-24 Arnaud Charlet <charlet@act-europe.fr>
40003
40004 * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
40005 stringt.h: Update copyright notice. Remove trailing blanks.
40006 Fix source name in header.
40007
400082003-10-24 GNAT Script <nobody@gnat.com>
40009
40010 * Make-lang.in: Makefile automatically updated
40011
b4e2d709
NN
400122003-10-23 Nathanael Nerode <neroden@gcc.gnu.org>
40013
40014 * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
40015 stringt.h: Convert to ISO C90 declarations and definitions.
40016
9d7d51be
AC
400172003-10-23 Thomas Quinot <quinot@act-europe.fr>
40018
6f7f72f9 40019 PR ada/11978
9d7d51be
AC
40020 * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
40021 External_Tag attribute definition clauses.
40022
400232003-10-23 Ed Schonberg <schonberg@gnat.com>
40024
6f7f72f9 40025 PR ada/7613
9d7d51be
AC
40026 * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
40027 child unit, generate a fully qualified name to avoid spurious errors
40028 when the context contains renamings of different child units with
40029 the same simple name.
40030
40031 * exp_dbug.ads: Add documentation on name qualification for renamings
40032 of child units.
40033
400342003-10-23 Robert Dewar <dewar@gnat.com>
40035
40036 * g-regpat.ads, g-regpat.adb: Minor reformatting
40037
400382003-10-23 Jose Ruiz <ruiz@act-europe.fr>
40039
40040 * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
40041
400422003-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
40043
40044 * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
40045 Machine call.
40046
40047 * urealp.h: (Machine): Update to proper definition.
40048
6d244bbe
AC
400492003-10-23 Arnaud Charlet <charlet@act-europe.fr>
40050
40051 * init.c, adaint.c: Minor reformatting.
40052
8f4eb34b
DS
400532003-10-23 Danny Smith <dannysmith@users.sourceforge.net>
40054
6d244bbe 40055 * adaint.c (w32_epoch_offset): Define static const at file level.
8f4eb34b
DS
40056 (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
40057 rather than t_create, t_access in call to GetFileTime. Use union
40058 to convert between FILETIME and unsigned long long.
40059 (__gnat_file_time_name): Test for invalid file handle.
40060 (__gnat_set_filetime_name): Support win32 targets using
40061 w32api SetFileTime.
40062
25412599
DS
400632003-10-22 Danny Smith <dannysmith@users.sourceforge.net>
40064
40065 * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
40066
40067 * ctrl_c.c (__gnat_int_handler): Remove declaration.
40068
40069 * decl.c (creat_concat_name): Const-ify prefix.
40070
40071 * adaint.c: Include ctype.h if __MINGW32__.
40072 (__gnat_readlink): Mark arguments as possibly unused.
40073 (__gnat_symlink): Likewise.
40074 (__gnat_is_symbolic_link): Likewise.
40075 (__gnat_portable_spawn): Likewise. Cast last arg of spawnvp to match
40076 declaration
b6b3c138 40077 (__gnat_file_time_name): Don't declare struct stat statbuf when
25412599
DS
40078 not needed.
40079 (__gnat_is_absolute_path): Add parenthesis around condition of
40080 'if' statement to avoid warning.
40081 (__gnat_plist_init): Specify void as parameter.
40082 (plist_enter): Likewise.
40083 (plist_leave): Likewise.
40084 (remove_handle): Make static. Initialize prev.
40085
698a5e79
AC
400862003-10-22 Arnaud Charlet <charlet@act-europe.fr>
40087
6f7f72f9
EB
40088 PR ada/10110
40089 * Makefile.in: Disable build of gnatpsta.
698a5e79
AC
40090 * cstreams.c (__gnat_full_name): Minor improvements and clean up
40091 of previous change.
40092
e97c30aa
RO
400932003-10-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
40094
40095 * tracebak.c (MAX): Avoid redefinition warning.
40096
40097 * init.c [sgi] (__gnat_error_handler): Remove i, unused.
40098 Change msg to const char *.
40099 (__gnat_install_handler): Remove ss, unused.
40100 [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
40101 to const char *.
40102 * cstreams.c (__gnat_full_name): Declare p only when used.
40103 (__gnat_full_name) [sgi] Return buffer.
40104
65f1ebd1
AC
401052003-10-22 Arnaud Charlet <charlet@act-europe.fr>
40106
40107 * mingw32.h: New file.
0c644933
AC
40108 * gnat_wrapper.adb: New file.
40109
6d244bbe 401102003-10-22 Jerome Roussel <roussel@act-europe.fr>
0c644933
AC
40111
40112 * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
40113 string match a pre compiled regular expression (the corresponding
40114 version of the function working on a raw regular expression)
40115 Fix typos in various comments
40116 Update copyright notice in spec
40117
6d244bbe 401182003-10-21 Gary Dismukes <dismukes@gnat.com>
0c644933 40119
b6b3c138 40120 * exp_ch3.adb:
0c644933
AC
40121 (Component_Needs_Simple_Initialization): Return False when the type is a
40122 packed bit array. Revise spec comments to document this case.
40123
b6b3c138 40124 * exp_prag.adb:
0c644933
AC
40125 (Expand_Pragma_Import): Set any expression on the imported object to
40126 empty to avoid initializing imported objects (in particular this
40127 covers the case of zero-initialization of bit arrays).
40128 Update copyright notice.
40129
6d244bbe 401302003-10-21 Ed Schonberg <schonberg@gnat.com>
0c644933 40131
b6b3c138 40132 * sem_ch12.adb:
0c644933
AC
40133 (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
40134 a subunit is missing.
40135 (Instantiate_Subprogram_Body): If body of function is missing, set type
40136 of return expression explicitly in dummy body, to prevent cascaded
40137 errors when a subunit is missing.
40138 Fixes PR 5677.
40139
b6b3c138 40140 * sem_ch3.adb:
0c644933
AC
40141 (Access_Subprogram_Declaration): Verify that return type is valid.
40142 Fixes PR 8693.
40143
b6b3c138 40144 * sem_elab.adb:
0c644933
AC
40145 (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
40146 generic.
40147 Fixes PR 12318.
40148
b6b3c138 40149 * sem_util.adb:
0c644933
AC
40150 (Corresponding_Discriminant): If the scope of the discriminant is a
40151 private type without discriminant, use its full view.
40152 Fixes PR 8247.
65f1ebd1 40153
fbf5a39b
AC
401542003-10-21 Arnaud Charlet <charlet@act-europe.fr>
40155
40156 * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
40157 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
40158 3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
40159 55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
40160 56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
40161 59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
40162 5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
40163 5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
40164 5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
40165 5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
40166 5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
40167 5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
40168 5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
40169 5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
40170 7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
40171 a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
40172 a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
40173 a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
40174 bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
40175 erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
40176 err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
40177 g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
40178 g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
40179 g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
40180 g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
40181 g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
40182 g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
40183 gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
40184 g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
40185 g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
40186 i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
40187 prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
40188 prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
40189 s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
40190 s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
40191 s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
40192 s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
40193 s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
40194 s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
40195 s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
40196 s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
40197 socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
40198 s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
40199 s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
40200 s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
40201 styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
40202 s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
40203 tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
40204 vms_conv.ads, vms_conv.adb, vms_data.ads,
40205 vxaddr2line.adb: Files added. Merge with ACT tree.
40206
40207 * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
40208 5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
40209 5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
40210 5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
40211 g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
40212 s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
40213 s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
40214 s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
40215 s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
40216 s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
40217
40218 * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
40219 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
40220 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
40221 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
40222 4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
40223 4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
40224 4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
40225 4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
40226 51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
40227 53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
40228 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
40229 5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
40230 5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
40231 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
40232 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
40233 5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
40234 5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
40235 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
40236 5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
40237 5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
40238 5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
40239 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
40240 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
40241 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
40242 5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
40243 5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
40244 5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
40245 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
40246 5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
40247 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
40248 5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
40249 5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
40250 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
40251 5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
40252 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
40253 7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
40254 7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
40255 a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
40256 a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
40257 a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
40258 a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
40259 a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
40260 ali.adb, ali.ads, ali-util.adb, ali-util.ads,
40261 a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
40262 a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
40263 a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
40264 a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
40265 a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
40266 a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
40267 a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
40268 a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
40269 a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
40270 a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
40271 a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
40272 a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
40273 atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
40274 a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
40275 a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
40276 bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
40277 checks.adb, checks.ads, cio.c, comperr.adb,
40278 comperr.ads, csets.adb, cstand.adb, cstreams.c,
40279 debug_a.adb, debug_a.ads, debug.adb, decl.c,
40280 einfo.adb, einfo.ads, errout.adb, errout.ads,
40281 eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
40282 expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
40283 exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
40284 exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
40285 exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
40286 exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
40287 exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
40288 exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
40289 exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
40290 fe.h, fmap.adb, fmap.ads, fname.adb,
40291 fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
40292 freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
40293 g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
40294 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
40295 g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
40296 g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
40297 g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
40298 g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
40299 g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
40300 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
40301 g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
40302 g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
40303 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
40304 g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
40305 gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
40306 gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
40307 gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
40308 gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
40309 gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
40310 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
40311 g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
40312 g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
40313 g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
40314 g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
40315 g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
40316 g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
40317 g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
40318 i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
40319 i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
40320 inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
40321 itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
40322 layout.adb, lib.adb, lib.ads, lib-list.adb,
40323 lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
40324 lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
40325 link.c, live.adb, make.adb, make.ads,
40326 Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
40327 mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
40328 mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
40329 misc.c, mkdir.c, mlib.adb, mlib.ads,
40330 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
40331 mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
40332 namet.adb, namet.ads, namet.h, nlists.ads,
40333 nlists.h, nmake.adt, opt.adb, opt.ads,
40334 osint.adb, osint.ads, osint-b.adb, osint-c.adb,
40335 par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
40336 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
40337 par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
40338 par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
40339 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
40340 prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
40341 prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
40342 prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
40343 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
40344 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
40345 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
40346 prj-util.adb, prj-util.ads, raise.c, raise.h,
40347 repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
40348 rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
40349 s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
40350 s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
40351 scans.ads, scn.adb, scn.ads, s-crc32.adb,
40352 s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
40353 sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
40354 sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
40355 sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
40356 sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
40357 sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
40358 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
40359 sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
40360 sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
40361 sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
40362 sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
40363 sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
40364 s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
40365 s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
40366 s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
40367 s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
40368 s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
40369 s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
40370 s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
40371 sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
40372 sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
40373 sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
40374 s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
40375 s-memory.adb, s-memory.ads, snames.adb, snames.ads,
40376 snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
40377 s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
40378 s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
40379 s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
40380 s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
40381 s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
40382 s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
40383 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
40384 s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
40385 s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
40386 s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
40387 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
40388 s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
40389 s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
40390 s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
40391 s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
40392 s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
40393 stringt.adb, stringt.ads, stringt.h, style.ads,
40394 stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
40395 s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
40396 s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
40397 switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
40398 s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
40399 table.adb, table.ads, targparm.adb, targparm.ads,
40400 targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
40401 trans.c, tree_io.adb, treepr.adb, treeprs.adt,
40402 ttypes.ads, types.ads, types.h, uintp.adb,
40403 uintp.ads, uintp.h, uname.adb, urealp.adb,
40404 urealp.ads, urealp.h, usage.adb, utils2.c,
40405 utils.c, validsw.adb, validsw.ads, widechar.adb,
40406 xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
40407 xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
40408 einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
40409 gnatvsn.ads: Merge with ACT tree.
40410
40411 * gnatvsn.adb: Rewritten in a simpler and more efficient way.
40412
97ae108d
MM
404132003-10-20 Mark Mitchell <mark@codesourcery.com>
40414
de696511
MM
40415 * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
40416 (gnat_ug_vmx.info): Likewise.
40417 (gnat_ug_vxw.info): Likewise.
40418 (gnat_ug_wnt.info): Likewise.
40419 (gnat_rm.info): Likewise.
40420 (gnat-style.info): Likewise.
40421
97ae108d
MM
40422 * Make-lang.in (ada.install-info): Remove target.
40423 (info): New target.
40424 (install-info): Likewise.
40425 (gnat_ug_unx.info): Simplify rule.
40426 (gnat_ug_vmx.info): Likewise.
40427 (gnat_ug_vxw.info): Likewise.
40428 (gnat_ug_wnt.info): Likewise.
40429 (gnat_rm.info): Likewise.
40430 (gnat-style.info): Likewise.
40431
43aba518
NN
404322003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
40433
40434 * Make-lang.in: Replace uses of $(target_alias) with
40435 $(target_noncanonical).
40436 * ada/Makefile.in: Remove unused mention of $(target_alias).
40437
62b81e45
MM
404382003-10-06 Mark Mitchell <mark@codesourcery.com>
40439
40440 * Make-lang.in (ada.info): Replace with ...
40441 (info): ... this.
40442 (ada.dvi): Replace with ...
40443 (dvi): ... this.
40444
783be936
ZW
404452003-09-29 Zack Weinberg <zack@codesourcery.com>
40446
40447 * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
40448 initialize dconstp5 and dconstmp5.
40449
177560b2
RH
404502003-09-28 Richard Henderson <rth@redhat.com>
40451
40452 * trans.c (tree_transform): Update call to expand_asm_operands.
40453
f31686a3
RH
404542003-09-21 Richard Henderson <rth@redhat.com>
40455
40456 * trans.c, utils.c: Revert.
40457
7e2af53a
RH
404582003-09-21 Richard Henderson <rth@redhat.com>
40459
40460 * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
40461 change to const.
40462
5f1e32fa
MM
404632003-09-04 Michael Matz <matz@suse.de>
40464
40465 * misc.c: Include "target.h".
40466 * Make-lang.in (misc.o): Add dependency on target.h.
40467
61f71b34
DD
404682003-09-03 DJ Delorie <dj@redhat.com>
40469
40470 * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
40471 hook.
40472
2ed26f6b
ZW
404732003-08-30 Zack Weinberg <zack@codesourcery.com>
40474
40475 * Makefile.in: Update substitutions to match changes to
40476 configure. Use include directives instead of @-insertions
40477 to read in host and target fragments. Add a rule to
40478 regenerate ada/Makefile.
40479
b2e608ca
NB
404802003-07-18 Neil Booth <neil@daikokuya.co.uk>
40481
40482 * lang-options.h: Remove.
40483 * lang.opt: Add help text.
40484
0cea056b
NS
404852003-07-07 Nathan Sidwell <nathan@codesourcery.com>
40486
40487 * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
40488 calls.
40489
cb66e385
NB
404902003-07-06 Neil Booth <neil@daikokuya.co.uk>
40491
40492 * misc.c (gnat_handle_option): Don't handle filenames.
40493
9e94c78f 404942003-07-04 H.J. Lu <hongjiu.lu@intel.com>
8c90b13a
L
40495
40496 * Make-lang.in: Replace PWD with PWD_COMMAND.
40497 * Makefile.adalib: Likewise.
40498 * Makefile.in: Likewise.
40499
9c286213
MK
405002003-07-04 Matt Kraai <kraai@alumni.cmu.edu>
40501
40502 * misc.c (gnat_argv): Revert last change.
40503 (gnat_handle_option, gnat_init_options): Copy arguments.
40504
b9add449
NB
405052003-07-03 Neil Booth <neil@daikokuya.co.uk>
40506
9c286213 40507 * misc.c (gnat_argv): Make const.
b9add449 40508
836d77a9
NB
405092003-07-02 Neil Booth <neil@daikokuya.co.uk>
40510
40511 * misc.c (save_argc, save_argv): Keep non-static!
40512
b86f6cd9
NB
405132003-07-02 Neil Booth <neil@daikokuya.co.uk>
40514
40515 * misc.c (save_argc, save_argv): Make static.
40516 (gnat_init_options): New prototype.
40517 (gnat_init_options): Update.
40518
6344b1f1
MK
405192003-07-01 Matt Kraai <kraai@alumni.cmu.edu>
40520
40521 * gnat_ug.texi: Remove unlikely characters from @vars.
40522 * gnat_ug_vms.texi: Regenerate.
40523
2e040219
NS
405242003-06-27 Nathan Sidwell <nathan@codesourcery.com>
40525
40526 * misc.c (record_code_position): Adjust emit_note call.
40527
9eee5e72
NB
405282003-06-26 Neil Booth <neil@daikokuya.co.uk>
40529
40530 * misc.c (gnat_handle_option): Don't check for missing arguments.
40531
1f9cc6db
NS
405322003-06-20 Nathan Sidwell <nathan@codesourcery.com>
40533
40534 * utils.c (end_subprog_body): Adjust expand_function_end call.
40535
23d6baa3
MK
405362003-06-16 Matt Kraai <kraai@alumni.cmu.edu>
40537
40538 * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
40539 Bind_Main_Program.
40540
be43ab4e
NB
405412003-06-15 Neil Booth <neil@daikokuya.co.uk>
40542
40543 * lang.opt: Declare Ada.
40544 * misc.c (gnat_init_options): Update.
40545
ee6b0296
NS
405462003-06-14 Nathan Sidwell <nathan@codesourcery.com>
40547
40548 * utils.c (begin_subprog_body): Adjust init_function_start call.
40549
d7b42618
NB
405502003-06-14 Neil Booth <neil@daikokuya.co.uk>
40551
40552 * Make-lang.in: Update to use options.c and options.h.
40553 * misc.c: Include options.h not aoptions.h.
40554 (gnat_handle_option): Abort on unrecognized switch.
40555 (gnat_init_options): Request Ada switches.
40556
57eb6503
NB
405572003-06-14 Neil Booth <neil@daikokuya.co.uk>
40558
40559 * lang.opt: Add -Wall.
40560 * misc.c (gnat_handle_option): Handle it.
40561
70fd6569
NB
405622003-06-12 Neil Booth <neil@daikokuya.co.uk>
40563
40564 * misc.c (gnat_handle_option): Fix warnings.
40565
8cdea5a1
MK
405662003-06-11 Matt Kraai <kraai@alumni.cmu.edu>
40567
40568 * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
40569
3c900cb5
NB
405702003-06-11 Neil Booth <neil@daikokuya.co.uk>
40571
40572 * Make-lang.in: Update to handle command-line options.
40573 * lang.opt: New file.
40574 * misc.c: Include aoptions.h.
40575 (cl_options_count, cl_options): Remove.
40576 (gnat_handle_option): New.
40577 (gnat_decode_option): Remove.
40578 (LANG_HOOKS_DECODE_OPTION): Remove.
40579 (LANG_HOOKS_HANDLE_OPTION): Override.
40580
e8face4c
NN
405812003-06-10 Nathanael Nerode <neroden@gcc.gnu.org>
40582
40583 * init.c, misc.c, trans.c, utils.c: Remove dead code.
40584
4665e56c
NN
405852003-06-09 Nathanael Nerode <neroden@gcc.gnu.org>
40586
40587 * Makefile.in: Replace "host_canonical" with "host" for autoconf
40588 substitution.
40589
a165c302
NB
405902003-06-08 Neil Booth <neil@daikokuya.co.uk>
40591
40592 * Make-lang.in: Update.
40593 * misc.c: Include opts.h. Define cl_options_count and cl_options.
40594
2772ef3e
NB
405952003-06-07 Neil Booth <neil@daikokuya.co.uk>
40596
40597 * misc.c (gnat_init_options): Update.
40598
d8277a55
MK
405992003-06-05 Matt Kraai <kraai@alumni.cmu.edu>
40600
40601 * Make-lang.in (ada/b_gnatb.o-warn): Remove.
40602 * bindgen.adb (Gen_Main_C): Mark ensure_reference with
40603 __attribute__ ((__unused__)).
40604
602a82f3 406052003-06-05 Jan Hubicka <jh@suse.cz>
8f231b5d
JH
40606
40607 * Make-lang.in: Add support for stageprofile and stagefeedback
40608
3aa07c6d
MK
406092003-06-05 Matt Kraai <kraai@alumni.cmu.edu>
40610
40611 * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
40612 (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
40613
f1093866
MK
406142003-06-04 Matt Kraai <kraai@alumni.cmu.edu>
40615
40616 * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
40617 Remove non-VMS directive.
40618 (Switches for gnatlbr, Optimization Levels): Remove non-VMS
40619 alternatives.
40620 (Examples of gnatls Usage): Remove VMS alternative.
dee2df72
OH
40621
406222003-06-04 Olivier Hainque <hainque@act-europe.fr>
40623
6f7f72f9 40624 PR ada/9953
2ed26f6b
ZW
40625 * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
40626 and turn ZCX_By_Default back to False since the underlying support
40627 is not quite there yet.
dee2df72 40628
80eaf415
AJ
406292003-06-01 Andreas Jaeger <aj@suse.de>
40630
40631 * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
40632 and ROUND_TYPE_SIZE_UNIT.
40633
9e94c78f 406342003-05-22 Geert Bosch <bosch@gnat.com>
36f9020c
GB
40635
40636 * gnat_rm.texi : Remove reference to Ada Core Technologies.
40637
e7b5f0c9
NS
406382003-05-03 Nathan Sidwell <nathan@codesourcery.com>
40639
40640 * trans.c (tree_transform): Use location_t and input_location
40641 directly.
40642 (build_unit_elab): Likewise.
40643 * utils.c (create_label_decl): Likewise.
40644
d479d37f
NS
406452003-05-01 Nathan Sidwell <nathan@codesourcery.com>
40646
561712fe
NS
40647 * trans.c (tree_transform, build_unit_elab,
40648 set_lineno): Rename lineno to input_line.
d479d37f
NS
40649 * utils.c (pushdecl, create_label_decl, begin_subprog_body,
40650 end_subprog_body): Likewise.
40651 * utils2.c (build_call_raise): Likewise.
40652
9e94c78f 406532003-05-01 Laurent Guerby <guerby@acm.org>
4f9335cd 40654
2ed26f6b
ZW
40655 PR ada/10546
40656 * 5iosinte.ads: Increase pthread_cond_t size to match recent
40657 LinuxThread and NPTL version, merge from ACT.
80eaf415 40658
0864034e
ZW
406592003-04-28 Zack Weinberg <zack@codesourcery.com>
40660
40661 * utils.c (convert): No need to clear TREE_CST_RTL.
40662
9e94c78f 406632003-04-23 Geert Bosch <bosch@gnat.com>
bcea76b6
GB
40664
40665 * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
40666 1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
40667 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
40668 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
40669 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
40670 4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
40671 4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
40672 4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
40673 4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
40674 4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
40675 4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
40676 4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
40677 52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
40678 5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
40679 5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
40680 5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
40681 5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
40682 5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
40683 5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
40684 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
40685 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
40686 5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
40687 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
40688 5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
40689 5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
40690 5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
40691 5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
40692 5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
40693 5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
40694 5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
40695 5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
40696 5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
40697 5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
40698 5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
40699 5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
40700 5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
40701 5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
40702 5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
40703 5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
40704 5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
40705 5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
40706 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
40707 5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
40708 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
40709 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
40710 7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
40711 7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
40712 9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
40713 a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
40714 a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
40715 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
40716 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
40717 a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
40718 a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
40719 a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
40720 a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
40721 a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
40722 a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
40723 a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
40724 a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
40725 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
40726 a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
40727 a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
40728 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
40729 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
40730 a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
40731 a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
40732 a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
40733 a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
40734 a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
40735 a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
40736 a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
40737 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
40738 a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
40739 a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
40740 a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
40741 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
40742 a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
40743 a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
40744 a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
40745 a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
40746 a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
40747 a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
40748 a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
40749 a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
40750 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
40751 a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
40752 a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
40753 a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
40754 a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
40755 a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
40756 a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
40757 a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
40758 a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
40759 a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
40760 a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
40761 a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
40762 a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
40763 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
40764 a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
40765 a-wttest.ads, ada-tree.h, ada.ads, ada.h,
40766 adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
40767 ali.adb, ali.ads, alloc.ads, argv.c,
40768 atree.adb, atree.ads, atree.h, aux-io.c,
40769 back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
40770 binde.adb, binde.ads, binderr.adb, binderr.ads,
40771 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
40772 butil.adb, butil.ads, cal.c, calendar.ads,
40773 casing.adb, casing.ads, ceinfo.adb, checks.adb,
40774 checks.ads, cio.c, comperr.adb, comperr.ads,
40775 config-lang.in, csets.adb, csets.ads, csinfo.adb,
40776 cstand.adb, cstand.ads, cuintp.c, debug.adb,
40777 debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
40778 dec-io.ads, dec.ads, deftarg.c, directio.ads,
40779 einfo.adb, einfo.ads, elists.adb, elists.ads,
40780 elists.h, errno.c, errout.adb, errout.ads,
40781 eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
40782 exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
40783 exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
40784 exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
40785 exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
40786 exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
40787 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
40788 exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
40789 exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
40790 exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
40791 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
40792 exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
40793 exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
40794 exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
40795 exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
40796 fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
40797 fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
40798 freeze.adb, freeze.ads, frontend.adb, frontend.ads,
40799 g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
40800 g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
40801 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
40802 g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
40803 g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
40804 g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
40805 g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
40806 g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
40807 g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
40808 g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
40809 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
40810 g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
40811 g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
40812 g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
40813 g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
40814 g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
40815 g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
40816 g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
40817 g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
40818 g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
40819 g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
40820 g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
40821 get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
40822 gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
40823 gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
40824 gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
40825 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
40826 gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
40827 gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
40828 gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
40829 hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
40830 i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
40831 i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
40832 i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
40833 i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
40834 i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
40835 i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
40836 inline.adb, inline.ads, interfac.ads, ioexcept.ads,
40837 itypes.adb, itypes.ads, krunch.adb, krunch.ads,
40838 layout.adb, layout.ads, lib-list.adb, lib-load.adb,
40839 lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
40840 lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
40841 lib.adb, lib.ads, live.adb, live.ads,
40842 machcode.ads, make.adb, make.ads, makeusg.adb,
40843 makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
40844 mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
40845 memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
40846 mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
40847 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
40848 mlib.ads, namet.adb, namet.ads, nlists.adb,
40849 nlists.ads, opt.adb, opt.ads, osint-b.adb,
40850 osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
40851 osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
40852 osint.ads, output.adb, output.ads, par-ch10.adb,
40853 par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
40854 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
40855 par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
40856 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
40857 par-tchk.adb, par-util.adb, par.adb, par.ads,
40858 prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
40859 prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
40860 prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
40861 prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
40862 prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
40863 prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
40864 prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
40865 prj.adb, prj.ads, repinfo.adb, repinfo.ads,
40866 restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
40867 rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
40868 s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
40869 s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
40870 s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
40871 s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
40872 s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
40873 s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
40874 s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
40875 s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
40876 s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
40877 s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
40878 s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
40879 s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
40880 s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
40881 s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
40882 s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
40883 s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
40884 s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
40885 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
40886 s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
40887 s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
40888 s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
40889 s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
40890 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
40891 s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
40892 s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
40893 s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
40894 s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
40895 s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
40896 s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
40897 s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
40898 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
40899 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
40900 s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
40901 s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
40902 s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
40903 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
40904 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
40905 s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
40906 s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
40907 s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
40908 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
40909 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
40910 s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
40911 s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
40912 s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
40913 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
40914 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
40915 s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
40916 s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
40917 s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
40918 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
40919 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
40920 s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
40921 s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
40922 s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
40923 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
40924 s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
40925 s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
40926 s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
40927 s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
40928 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
40929 s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
40930 s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
40931 s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
40932 s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
40933 s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
40934 s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
40935 s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
40936 s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
40937 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
40938 s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
40939 s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
40940 s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
40941 s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
40942 s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
40943 s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
40944 s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
40945 s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
40946 s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
40947 s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
40948 s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
40949 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
40950 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
40951 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
40952 s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
40953 s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
40954 s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
40955 s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
40956 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
40957 s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
40958 s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
40959 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
40960 s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
40961 scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
40962 sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
40963 sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
40964 sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
40965 sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
40966 sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
40967 sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
40968 sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
40969 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
40970 sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
40971 sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
40972 sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
40973 sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
40974 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
40975 sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
40976 sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
40977 sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
40978 sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
40979 sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
40980 sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
40981 sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
40982 snames.ads, sprint.adb, sprint.ads, stand.adb,
40983 stand.ads, stringt.adb, stringt.ads, style.adb,
40984 style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
40985 switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
40986 switch-m.ads, switch.adb, switch.ads, system.ads,
40987 table.adb, table.ads, targparm.adb, targparm.ads,
40988 tbuild.adb, tbuild.ads, text_io.ads, trans.c,
40989 tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
40990 tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
40991 ttypef.ads, ttypes.ads, types.adb, types.ads,
40992 uintp.adb, uintp.ads, uname.adb, uname.ads,
40993 unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
40994 usage.adb, usage.ads, validsw.adb, validsw.ads,
40995 widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
40996 xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
40997 xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
40998 formatting and other trivial changes from ACT.
40999
dcf92453
ZW
410002003-04-12 Zack Weinberg <zack@codesourcery.com>
41001
41002 * gigi.h, utils2.c (build_constructor):
41003 Rename gnat_build_constructor. Use build_constructor.
41004 * decl.c (gnat_to_gnu_entity)
41005 * trans.c (tree_transform, pos_to_constructor, extract_values)
41006 * ada/utils.c (build_template, convert_to_fat_pointer, convert)
41007 (unchecked_convert)
41008 * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
41009 (fill_vms_descriptor):
41010 Update to match.
41011
d78e771d
ZW
410122003-04-06 Zack Weinberg <zack@codesourcery.com>
41013
41014 * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
41015 * misc.c (gnat_tree_size): New function.
41016 (LANG_HOOKS_TREE_SIZE): Override.
41017
78d55cc8
JM
410182003-04-03 Jason Merrill <jason@redhat.com>
41019
41020 * misc.c (gnat_adjust_rli): #if 0.
41021
9e94c78f 410222003-03-31 Geert Bosch <bosch@gnat.com>
b174e2d4
GB
41023
41024 PR ada/10020
41025 * link.c : Fix misspelled "const" keyword
41026
f29a2bd1
MM
410272003-03-23 Mark Mitchell <mark@codesourcery.com>
41028
41029 PR c++/7086
41030 * utils2.c: Adjust calls to put_var_into_stack.
41031
08e247b1
NN
410322003-03-12 Nathanael Nerode <neroden@gcc.gnu.org>
41033
41034 * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
41035
4bfec483
NB
410362003-03-08 Neil Booth <neil@daikokuya.co.uk>
41037
41038 * misc.c (gnat_init): Update for new prototype.
41039
3d713bb8
GB
410402003-03-05 Olivier Hainque <hainque@gnat.com>
41041
41042 ada/9961
78d55cc8
JM
41043 * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
41044 warning, and fix return type for the IN_RTS && !SJLJ case.
3d713bb8 41045
8b89fcdf
TT
410462003-03-04 Tom Tromey <tromey@redhat.com>
41047
41048 * Make-lang.in (ada.tags): New target.
41049
3d713bb8 410502003-03-04 Olivier Hainque <hainque@act-europe.fr>
23cae84f
OH
41051
41052 ada/9911
41053 * a-except.adb (Unwind_RaiseException): Import a GNAT specific
41054 wrapper, which name remains constant whatever underlying GCC
41055 scheme.
41056
41057 * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
41058 the stable interface needed for a-except.
41059
f4ae98be
AJ
410602003-03-02 Andreas Jaeger <aj@suse.de>
41061
41062 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41063 gnat_ug_wnt.texi: Regenerate.
41064
9e94c78f 410652003-03-02 Laurent Guerby <guerby@acm.org>
5348742b 41066
f4ae98be 41067 * Makefile.in (install-gnatlib): Match previous change there
5348742b 41068 so it works.
f4ae98be 41069
8c108db2
AS
410702003-02-28 Andreas Schwab <schwab@suse.de>
41071
41072 * Make-lang.in (install-gnatlib): Change to ada directory before
41073 running make instead of using ada/Makefile directly.
41074
601d71bc
BE
410752003-02-18 Ben Elliston <bje@redhat.com>
41076
6f7f72f9 41077 Part of PR ada/9406
601d71bc
BE
41078 * gnat_ug.texi (Binder output file): Grammar fix.
41079
bf7c02dd
BE
410802003-02-18 Ben Elliston <bje@redhat.com>
41081
41082 PR other/7350
41083 * 5qtaprop.adb (Sleep): Fix typo in comment.
41084
b3a8389d
JM
410852003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
41086
41087 * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
41088 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41089 gnat_ug_wnt.texi: Regenerate.
41090
9e94c78f 410912003-02-03 Christian Cornelssen <ccorn@cs.tu-berlin.de>
5da14cb5
CC
41092
41093 * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
41094 be created if necessary.
41095 (ada.install-common): Let $(DESTDIR)$(bindir) be created
41096 if necessary. Remove erroneous and redundant gnatchop
41097 installation commands. Test for gnatdll before attempting
41098 to install it.
41099 (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
41100 and gnatdll from all plausible locations.
41101
271bd540
RS
411022003-02-01 Richard Sandiford <rsandifo@redhat.com>
41103
41104 * utils2.c (build_unary_op): Don't check flag_volatile.
41105 * gnat_ug.texi: Remove -fvolatile from example.
41106 * gnat_ug_vxw.texi: Likewise.
41107
9e94c78f 411082003-01-29 Laurent Guerby <guerby@acm.org>
c1cc6a51 41109
d78e771d
ZW
41110 PR ada/8344
41111 * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
41112 * Makefile.in: match previous change.
41113 * Make-lang.in: match previous change.
c1cc6a51 41114
9e94c78f 411152003-01-29 Joel Sherrill <joel@OARcorp.com>
c4039eb0
JS
41116
41117 * 5rosinte.ads: Add SIGXCPU.
41118 * 5rtpopsp.adb: New file.
41119 * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
41120 * Makefile.in: Recognize more RTEMS targets and add the RTEMS
41121 specific file 5rtpopsp.adb.
41122 * adaint.h: Add include of <stdio.h> when target is RTEMS. This
41123 is likely needed for all newlib targets.
41124 * init.c: Add RTEMS specific version of __gnat_initialize().
41125
00d29f7d
RO
411262003-01-28 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41127
41128 * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
41129
437026ef
RO
411302003-01-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41131
41132 * init.c (__gnat_error_handler): Make msg const.
41133
41134 * gmem.c (convert_addresses): Move declaration ...
41135 * adaint.h: ... here.
41136 * adaint.c (convert_addresses): Adapt addrs type to match
41137 prototype.
41138
41139 * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
41140
e12825cd
AS
411412003-01-24 Andreas Schwab <schwab@suse.de>
41142
41143 * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
41144 size_t to avoid warning.
41145
a8729406
ZW
411462003-01-21 Zack Weinberg <zack@codesourcery.com>
41147
b09b91b9 41148 * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
a8729406 41149
17211ab5
GK
411502003-01-09 Geoffrey Keating <geoffk@apple.com>
41151
41152 * gnat_rm.texi: Remove RCS version number.
41153
41154 * ada-tree.h (union lang_tree_node): Add chain_next option.
41155
1d27195c
CC
411562003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
41157
41158 * Make-lang.in (ada.install-info, ada.install-common,
41159 ada.uninstall): Prepend $(DESTDIR) to the destination
41160 directory in all (un)installation commands.
41161 * Makefile.in (install-gnatlib, install-rts): Ditto.
41162
bdefb2ab
JM
411632002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
41164
41165 * gnat_rm.texi, gnat_ug.texi: Use @copying.
41166 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41167 gnat_ug_wnt.texi: Regenerate.
41168
46d40353
JM
411692002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
41170
41171 * gnat_rm.texi: Include gcc-common.texi. Use GCC version number
41172 only.
41173 * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
41174 $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
41175 $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
41176 ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
41177 ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
41178 $(srcdir)/doc/include/gcc-common.texi.
41179
9e94c78f 411802002-12-15 Geert Bosch <bosch@gnat.com>
d2f97d3e
GB
41181
41182 * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
41183
9e94c78f 411842002-12-14 Geert Bosch <bosch@gnat.com>
93a81b02 41185
6f7f72f9 41186 PR ada/5690
4977bab6
ZW
41187 * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
41188 case of a body created for a Renaming_As_Body, on which
6f7f72f9 41189 conformance checks are not performed.
4977bab6
ZW
41190
411912002-11-30 Zack Weinberg <zack@codesourcery.com>
41192
41193 * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
41194 utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
41195 not already included.
41196 * Make-lang.in: Update dependencies.
93a81b02 41197
dfc15546
NN
411982002-11-18 Nathanael Nerode <neroden@gcc.gnu.org>
41199 * adaint.c (__gnat_tmp_name): Better, but good enough for now,
4977bab6 41200 solution to buffer overflow bug on GNU/Linux.
dfc15546 41201
8b54424d 412022002-11-14 Nathanael Nerode <neroden@gcc.gnu.org>
6f7f72f9
EB
41203
41204 PR ada/5856
41205 PR ada/6919
8b54424d
NN
41206 * bindgen.adb: Remove all references to Public_Version.
41207 * comperr.adb: Remove all references to Public_Version and
41208 GNATPRO_Version; correct bug reporting instructions.
41209 * comperr.ads: Change to match bug box.
41210 * gnatvsn.ads: Remove all references to Public version and
41211 GNATPRO version.
41212
cc41268d 412132002-11-13 Nathanael Nerode <neroden@gcc.gnu.org>
6f7f72f9 41214
1a083c0e
NN
41215 PR ada/6919
41216 * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
41217 GNU/Linux.
41218
cc41268d
NN
41219 PR ada/6558
41220 * config-lang.in: Remove diff_excludes.
41221
1c7b0712 412222002-11-05 Graham Stott <graham.stott@btinternet.com>
6f7f72f9 41223
1c7b0712
GS
41224 PR ada/8358
41225 * trans.c (gnu_pending_elaboration_lists): New GC root.
4977bab6 41226 (build_unit_elab): Use..
1c7b0712 41227
9e94c78f 412282002-10-30 Geert Bosch <bosch@gnat.com>
6f7f72f9 41229
1c4048ca
GB
41230 PR ada/6558
41231 * misc.c : Include optabs.h
41232
41233 * Make-lang.in (misc.o): Add dependency on optabs.h
41234
9e94c78f 412352002-10-29 Geert Bosch <bosch@gnat.com>
6f7f72f9 41236
4977bab6 41237 PR ada/6558
f0d96f9c
GB
41238 * Make-lang.in (gnatbind): Depend on CONFIG_H
41239
a7512dec 412402002-10-29 Geert bosch <bosch@gnat.com>
6f7f72f9 41241
4977bab6
ZW
41242 PR ada/6558
41243 * misc.c: Unrevert misc.c (1.13)
a7512dec 41244
c6362f4f
NN
412452002-10-28 Nathanael Nerode <neroden@gcc.gnu.org>
41246
41247 * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
41248 maintainership comments.
41249
412502002-09-25 Nathanael Nerode <neroden@gcc.gnu.org>
6f7f72f9 41251
91ed4b19 41252 PR ada/5904
4977bab6
ZW
41253 * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
41254 5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
41255 5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
41256 7staprop.adb: Correct statements in comments about
91ed4b19
NN
41257 maintainership of GNAT.
41258
1f02b6af 41259 PR ada/5904
4977bab6
ZW
41260 * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
41261 gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
41262 osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
41263 osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
41264 s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
41265 s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
41266 sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
1f02b6af
NN
41267 switch-c.ads switch-m.adb switch-m.ads: Correct statements in
41268 comments about maintainership of GNAT.
41269
71ff80dc 41270 PR ada/6919 (forward port of patch for PR ada/5904)
4977bab6
ZW
41271 * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
41272 4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
41273 4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
41274 4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
41275 4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
41276 4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
41277 4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
41278 52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
41279 5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
41280 5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
41281 5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
41282 5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
41283 5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
41284 5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
41285 5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
41286 5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
41287 5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
41288 5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
41289 5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
41290 5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
41291 5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
41292 5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
41293 5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
41294 5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
41295 5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
41296 5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
41297 5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
41298 5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
41299 7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
41300 a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
41301 a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
41302 a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
41303 a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
41304 a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
41305 a-except.adb a-except.ads a-excpol.adb a-exctra.adb
41306 a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
41307 a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
41308 a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
41309 a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
41310 a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
41311 a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
41312 a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
41313 a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
41314 a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
41315 a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
41316 a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
41317 a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
41318 a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
41319 a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
41320 a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
41321 a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
41322 a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
41323 a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
41324 a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
41325 a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
41326 a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
41327 a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
41328 a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
41329 a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
41330 a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
41331 a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
41332 a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
41333 a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
41334 a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
41335 a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
41336 a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
41337 a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
41338 a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
41339 adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
41340 alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
41341 back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
41342 binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
41343 bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
41344 ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
41345 csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
41346 cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
41347 debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
41348 einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
41349 errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
41350 exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
41351 exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
41352 exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
41353 exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
41354 exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
41355 exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
41356 exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
41357 exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
41358 exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
41359 exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
41360 exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
41361 exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
41362 exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
41363 final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
41364 fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
41365 freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
41366 g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
41367 g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
41368 gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
41369 gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
41370 gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
41371 gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
41372 gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
41373 gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
41374 i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
41375 i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
41376 i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
41377 i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
41378 impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
41379 itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
41380 lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
41381 lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
41382 lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
41383 lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
41384 makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
41385 namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
41386 nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
41387 osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
41388 par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
41389 par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
41390 par-endh.adb par-labl.adb par-load.adb par-prag.adb
41391 par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
41392 prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
41393 prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
41394 prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
41395 prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
41396 prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
41397 prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
41398 repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
41399 rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
41400 s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
41401 s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
41402 s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
41403 s-direio.adb s-direio.ads s-except.ads s-exctab.adb
41404 s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
41405 s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
41406 s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
41407 s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
41408 s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
41409 s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
41410 s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
41411 s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
41412 s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
41413 s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
41414 s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
41415 s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
41416 s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
41417 s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
41418 s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
41419 s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
41420 s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
41421 s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
41422 s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
41423 s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
41424 s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
41425 s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
41426 s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
41427 s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
41428 s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
41429 s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
41430 s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
41431 s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
41432 s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
41433 s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
41434 s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
41435 s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
41436 s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
41437 s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
41438 s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
41439 s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
41440 s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
41441 s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
41442 s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
41443 s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
41444 s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
41445 s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
41446 s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
41447 s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
41448 s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
41449 s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
41450 s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
41451 s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
41452 s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
41453 s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
41454 s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
41455 s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
41456 s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
41457 s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
41458 s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
41459 s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
41460 s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
41461 s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
41462 s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
41463 s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
41464 s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
41465 s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
41466 s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
41467 s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
41468 s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
41469 s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
41470 s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
41471 s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
41472 s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
41473 s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
41474 s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
41475 s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
41476 s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
41477 s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
41478 s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
41479 s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
41480 s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
41481 s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
41482 scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
41483 sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
41484 sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
41485 sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
41486 sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
41487 sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
41488 sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
41489 sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
41490 sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
41491 sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
41492 sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
41493 sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
41494 sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
41495 sem_type.adb sem_type.ads sem_util.adb sem_util.ads
41496 sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
41497 sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
41498 sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
41499 sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
41500 snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
41501 stringt.ads stringt.h style.adb style.ads stylesw.adb
41502 stylesw.ads switch.adb switch.ads sysdep.c system.ads
41503 table.adb table.ads targparm.adb targparm.ads targtyps.c
41504 tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
41505 tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
41506 treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
41507 types.adb types.ads types.h uintp.adb uintp.ads uintp.h
41508 uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
41509 usage.ads utils.c utils2.c validsw.adb validsw.ads
41510 widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
41511 xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
71ff80dc
NN
41512 xtreeprs.adb: Correct statements in comments about maintainership
41513 of GNAT.
41514
b4f94ac1
ZW
415152002-09-23 Zack Weinberg <zack@codesourcery.com>
41516
41517 * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
41518 * Makefile.in (TOOLS_LIBS): Add ../../version.o.
41519 * gnatvsn.ads: Gnat_Version_String is now a function.
41520 * gnatvsn.adb: New file. When asked for Gnat_Version_String,
41521 copy the C version_string into a String and return it.
41522 * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
41523 gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
41524 Remove pragma Ident (Gnat_Version_String). If this was the
41525 sole use of package Gnatvsn, remove the with statement too.
41526 * gnat1drv.adb: Tweak -gnatv output.
41527
eaff3bf8
RH
415282002-09-17 Richard Henderson <rth@redhat.com>
41529
41530 * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
41531 * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
41532 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
41533 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
41534 * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
41535 and real_2expN instead of a loop.
41536 * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
41537 (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
41538
9e94c78f
EB
415392002-08-25 Andre Leis <a.leis@gmx.net>
41540 David Billinghurst <David.Billinghurst@riotinto.com>
d241f75b 41541
f4ae98be 41542 * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
d241f75b 41543
4320085a
RO
415442002-08-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41545
41546 * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
41547 Remove $(CONFIG_H) dependency.
41548
22aa533e
NS
415492002-08-08 Nathan Sidwell <nathan@codesourcery.com>
41550
41551 * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
41552
1dcd444b
KG
415532002-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41554
41555 * adadecode.c (ada_demangle): Use xstrdup in lieu of
41556 xmalloc/strcpy.
41557 * misc.c (gnat_decode_option): Likewise.
41558
7bc7d27b
FW
415592002-07-15 Florian Weimer <fw@deneb.enyo.de>
41560
41561 * make.adb (Add_Switch): Make Generic_Position a procedure. The
41562 function approach did not work well because of a side effect (the
41563 function call could reallocate the table which was being indexed
41564 using its result). Fixes ada/4851. [RESURRECTED]
41565
6a2dd09a
RS
415662002-07-01 Roger Sayle <roger@eyesopen.com>
41567
41568 * ada/utils.c (builtin_function): Accept an additional parameter.
41569
c168bbd7
AJ
415702002-06-28 Andreas Jaeger <aj@suse.de>
41571
41572 PR ada/7144
41573 * Makefile.in: Fix typo in comment, patch by Adrian Knoth
41574 <adi@thur.de>.
41575
b41e09a7
KG
415762002-06-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41577
41578 * Makefile.in (SHELL): Set to @SHELL@.
41579
62c71f4b
KG
415802002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41581
41582 * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
41583 array size calculation.
41584
94213cff
AJ
415852002-06-04 Andreas Jaeger <aj@suse.de>
41586
41587 * Make-lang.in (gnatbind): Readd rule that has been lost in last
41588 patch.
41589
e2500fed
GK
415902002-06-03 Geoffrey Keating <geoffk@redhat.com>
41591
41592 Merge from pch-branch:
41593
41594 * config-lang.in (gtfiles): Add ada-tree.h.
41595 * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
41596 (SET_TYPE_MODULUS): New.
41597 (SET_TYPE_INDEX): New.
41598 (SET_TYPE_DIGITS_VALUE): New.
41599 (SET_TYPE_RM_SIZE): New.
41600 (SET_TYPE_UNCONSTRAINED_ARRAY): New.
41601 (SET_TYPE_ADA_SIZE): New.
41602 (SET_TYPE_ACTUAL_BOUNDS): New.
41603 (SET_DECL_CONST_CORRESPONDING_VAR): New.
41604 (SET_DECL_ORIGINAL_FIELD): New.
41605 (TREE_LOOP_ID): Correct typo.
41606 * decl.c: Use new macros.
41607 * utils.c: Include debug.h, use new macros.
94213cff 41608 * utils2.c: Use new macros.
e2500fed
GK
41609
41610 * ada-tree.h: Update all macros for new tree description.
41611 (struct tree_loop_id): New.
41612 (union lang_tree_node): New.
41613 (struct lang_decl): New.
41614 (struct lang_type): New.
41615 * misc.c (gnat_mark_tree): Delete.
41616 (LANG_HOOKS_MARK_TREE): Delete.
41617 * trans.c (tree_transform): No longer any need to cast
41618 for TREE_LOOP_ID.
41619
41620 * utils.c (struct language_function): New dummy structure.
41621
41622 * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
41623 (misc.o): Likewise.
41624 (utils.o): Likewise; also gtype-ada.h.
41625 * Make-lang.in (gnat1): Add dependency on s-gtype.
41626 (gnatbind): Add dependency on $(CONFIG_H).
41627 * utils.c: Correct last #include.
41628 (stuct e_stack): Remove unnecessary 'static'.
41629 (mark_e_stack): Remove unused prototype.
41630
41631 * scn-nlit.adb: Remove whitespace after version number to
41632 keep lines under 80 chars.
41633 * snames.adb: Likewise.
41634 * treepr.ads: Likewise.
94213cff 41635
e2500fed
GK
41636 * Makefile.in (decl.o): Include gt-ada-<filename>.h.
41637 (misc.o): Likewise.
41638 (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
41639 * config-lang.in (gtfiles): New.
41640 * decl.c: Use gengtype for roots.
41641 * gigi.h: Use gengtype for roots.
41642 * trans.c: Use gengtype for roots.
41643 * utils.c: Use gengtype for roots, marking. Include gtype-ada.h.
41644
27e511e0
GDR
416452002-06-02 Gabriel Dos Reis <gdr@codesourcery.com>
41646
41647 * misc.c (gnat_init): Adjust setting of internal_error_function.
41648
113dc143
JM
416492002-06-01 Joseph S. Myers <jsm28@cam.ac.uk>
41650
41651 * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
41652 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41653 gnat_ug_wnt.texi: Regenerate.
41654
5321fb3e
FW
416552002-05-31 Florian Weimer <fw@deneb.enyo.de>
41656
15e6136e
FW
41657 * 5ntaprop.adb (with System.OS_Primitives): Remove.
41658
019310ac
FW
41659 * cstreams.c (max_path_len): Move from here ...
41660 * adaint.c (__gnat_max_path_len): ... to here.
41661 * adaint.c (__gnat_max_path_len): Declare.
41662 * g-dirope.adb (Max_Path): Adjust.
41663 * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
94213cff 41664 * i-cstrea.ads (max_path_len): Adjust.
019310ac
FW
41665 * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
41666 * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
41667
5321fb3e
FW
41668 * Makefile.in, Make-lang.in: Documentation is now built in
41669 Make-lang.in. Store Info and generated Texinfo files in the
41670 source directory.
41671 * gnat_ug.texi: Remove CVS keywords, correct version number.
41672 Set file name correctly.
41673
41674 * gnat_ug_*.texi: Add.
41675 * .cvsignore: Ignore generated Texinfo files.
41676
b1c12c4b
ZW
416772002-05-30 Zack Weinberg <zack@codesourcery.com>
41678
41679 * ada.h: Add MI guard macro.
41680 (SUBTYPE): Define constants with an anonymous enum, not static
41681 const variables.
41682 (IN): Cast constants to appropriate type before use.
41683
ead33da9
JM
416842002-05-26 Joseph S. Myers <jsm28@cam.ac.uk>
41685
41686 * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
41687 (experimental)".
41688
7d600178
RO
416892002-05-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41690
41691 * Make-lang.in (CP, ECHO): Copy from Makefile.in.
41692 (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
41693 (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
41694 (ALL_ADA_CFLAGS): Likewise.
41695 (ADA_INCLUDES): Likewise.
41696 Adapt for new working dir.
41697 (GNATBIND): Use Makefile.in version.
41698 (.SUFFIXES): Copy from Makefile.in.
41699 (ada-warn): Define.
41700 (.adb.o, .ads.o): Copy from Makefile.in.
41701 Added $(OUTPUT_OPTION).
41702 (GNAT1_C_OBJS): Moved from Makefile.in.
41703 Prefix with ada subdir.
41704 (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
41705 (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
41706 Adapt for new working dir.
41707 (EXTRA_GNATBIND_OBJS): Likewise.
41708 (ADA_BACKEND): Moved from Makefile.in.
41709 Renamed to avoid conflict with global BACKEND.
41710 Use that one.
41711 (TARGET_ADA_SRCS): Moved from Makefile.in.
41712 (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
41713 Use ADA_BACKEND.
41714 (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
41715 (ada_extra_files): Moved from Makefile.in.
41716 Prefix with ada subdir.
41717 (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
41718 (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
41719 (ada/nmake.ads): Likewise.
41720 (update-sources): Moved from Makefile.in.
41721 Prefix with ada subdir.
41722 (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
41723 (ADA_TREE_H): Likewise.
41724 (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
41725 (ada/memtrack.o): Likewise.
41726 (ada/adadecode.o): Likewise.
41727 Update dependencies.
41728 (ada/adaint.o): New.
41729 (ada/argv.o): Moved from Makefile.in.
41730 Prefix with ada subdir.
94213cff 41731 Update dependencies.
7d600178
RO
41732 (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
41733 (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
41734 (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
41735 Prefix with ada subdir.
41736 (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
41737 (GNAT DEPENDENCIES): Regenerate.
41738 * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
41739 toplevel Makefile.in.
41740 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
41741 (TARGET_ADA_SRCS): Removed.
41742 (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
41743 (GNATBIND_OBJS): Likewise.
41744 (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
41745 (BACKEND): Removed.
41746 (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
41747 (TREE_H): Likewise.
41748 (ada_extra_files): Likewise.
41749 (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
41750 (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
41751 (update-sources): Likewise.
41752 (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
41753 (ADA_TREE_H): Likewise.
41754 (adadecoce.o): Likewise.
41755 (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
41756 (GNAT DEPENDENCIES): Likewise.
41757
1e6347d8
RO
417582002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41759
41760 * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
41761 * Makefile.in: Likewise.
41762
db80834f
RO
417632002-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41764
41765 * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
41766 Restore $(CONFIG_H) and prefix.o dependencies.
41767 (ada.stage[1-4]): Depend on stage?-start.
41768
41769 * Makefile.in (b_gnatb.c): Depend on interfac.o.
41770
ac293f98
JW
417712002-05-02 Jim Wilson <wilson@redhat.com>
41772
41773 * utils.c (finish_record_type): Change record_size to record_type.
41774
b303008e
JDA
417752001-05-02 John David Anglin <dave@hiauly1.hia.nrc.ca>
41776
41777 * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
41778 (ALL_ADA_CFLAGS): Define. Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
41779 ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
94213cff 41780
ff45c01e
NB
417812002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
41782
41783 * misc.c (gnat_parse_file): Update.
41784
349ae713
NB
417852002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
41786
41787 * misc.c (gnat_init): Don't set lang_attribute_common.
41788
ace133aa
JM
417892002-04-21 Joseph S. Myers <jsm28@cam.ac.uk>
41790
41791 * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
41792
5c558dd9
FW
417932002-04-21 Florian Weimer <fw@deneb.enyo.de>
41794
b4f94ac1 41795 * gnat_ug.texi: New file.
88e1739c 41796
5c558dd9
FW
41797 * gnat_rm.texi: Do not include texiplus.texi. Include fdl.texi
41798 instead of gfdl.texi
41799
41800 * xgnatug.adb, ug_words: New files.
41801
41802 * Makefile.in (doc, dvi): New targets. Build gnat_ug_*,
b4f94ac1 41803 gnat_rm and gnat-style manuals.
5c558dd9 41804
7a228918
NB
418052002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
41806
41807 * gigi.h (incomplete_type_error): Remove.
41808 * utils.c (incomplete_type_error): Remove.
41809
b2123dc0
MM
418102002-04-16 Mark Mitchell <mark@codesourcery.com>
41811
41812 * trans.c (tree_transform): Add has_scope argument to
41813 expand_start_stmt_expr.
41814
78ef5b89
NB
418152002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
41816
41817 * gigi.h (truthvalue_conversion): Rename.
41818 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
41819 * trans.c (tree_transform): Update.
41820 * utils2.c (truthvalue_conversion): Rename, update.
41821 (build_binary_op, build_unary_op): Update.
41822
a71742a8
LG
418232002-04-04 Laurent Guerby <guerby@acm.org>
41824
41825 * make.adb: Implement -margs, remove restriction about file name placement.
41826 * makeusg.adb: Documentation update.
41827 * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
41828 * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
41829
82a4b025
NB
418302002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
41831
41832 * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
41833 (builtin_function): Similarly.
41834
dffd7eb6
NB
418352002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
41836
41837 * decl.c (gnat_to_gnu_entity): Update.
41838 * gigi.h (mark_addressable): Rename.
41839 * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
41840 * trans.c (tree_transform): Update.
41841 * utils.c (create_var_decl): Update.
41842 * util2.c (build_binary_op, build_unary_op,
41843 fill_vms_descriptor): Update.
41844 (mark_addressable): Rename, update.
41845
ceef8ce4
NB
418462002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
41847
41848 * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
41849 Rename.
41850 * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
41851 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
41852 * trans.c (tree_transform, convert_with_check): Update.
41853 * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
41854 Rename.
41855
48a7a235
NB
418562002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
41857
41858 * gigi.h (finish_incomplete_decl): Rename.
41859 * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
41860 * utils.c (gnat_init_decl_processing): Don't set hook.
41861 (finish_incomplete_decl): Rename.
41862
1d5af871
AS
418632002-03-29 Andreas Schwab <schwab@suse.de>
41864
41865 * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
41866 directory.
41867
9e94c78f 418682001-03-28 Robert Dewar <dewar@gnat.com>
8cbb664e
MG
41869
41870 * checks.ads:
41871 (Remove_Checks): New procedure
41872
41873 * checks.adb:
41874 (Remove_Checks): New procedure
41875
41876 * exp_util.adb:
41877 Use new Duplicate_Subexpr functions
41878 (Duplicate_Subexpr_No_Checks): New procedure
41879 (Duplicate_Subexpr_No_Checks_Orig): New procedure
41880 (Duplicate_Subexpr): Restore original form (checks duplicated)
41881 (Duplicate_Subexpr): Call Remove_Checks
41882
82a4b025 41883 * exp_util.ads:
8cbb664e
MG
41884 (Duplicate_Subexpr_No_Checks): New procedure
41885 (Duplicate_Subexpr_No_Checks_Orig): New procedure
41886 Add 2002 to copyright notice
41887
41888 * sem_util.adb: Use new Duplicate_Subexpr functions
41889
82a4b025 41890 * sem_eval.adb:
8cbb664e
MG
41891 (Eval_Indexed_Component): This is the place to call
41892 Constant_Array_Ref and to replace the value. We simply merge
41893 the code of this function in here, since it is now no longer
41894 used elsewhere. This fixes the problem of the back end not
41895 realizing we were clever enough to see that this was
41896 constant.
41897 (Expr_Val): Remove call to Constant_Array_Ref
41898 (Expr_Rep_Val): Remove call to Constant_Array_Ref
41899 Minor reformatting
41900 (Constant_Array_Ref): Deal with string literals (patch
41901 suggested by Zack Weinberg on the gcc list)
41902
9e94c78f 419032001-03-28 Ed Schonberg <schonber@gnat.com>
8cbb664e 41904
82a4b025 41905 * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
8cbb664e
MG
41906 Duplicate_Subexpr_Move_Checks.
41907
82a4b025 41908 * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
8cbb664e
MG
41909 Duplicate_Subexpr_Move_Checks.
41910
82a4b025
NB
41911 * sem_eval.adb: (Constant_Array_Ref): Verify that constant
41912 value of array exists before retrieving it (it may a private
8cbb664e
MG
41913 protected component in a function).
41914
9e94c78f 419152002-03-28 Geert Bosch <bosch@gnat.com>
792c4e74
GB
41916
41917 * prj-pp.adb : New file.
41918
41919 * prj-pp.ads : New file.
41920
915e8bad
AJ
419212002-03-28 Andreas Jaeger <aj@suse.de>
41922
41923 * Makefile.in (stamp-sdefault): Fix path for Makefile.
41924
0840811c
NB
419252002-03-28 Neil Booth <neil@daikokuya.demon.co.uk>
41926
41927 * misc.c (gnat_expand_expr): Move prototype.
41928
7ffb4fd2
NB
419292002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
41930
41931 * misc.c (insert_default_attributes): Remove.
41932
c9d892a8
NB
419332002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
41934
41935 * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
41936 (gnat_init): Don't set hook.
41937 (gnat_expand_expr): Fix prototype.
41938
31c816cf
NB
419392002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
41940
41941 * misc.c (ggc_p): Remove.
41942
ef83161c
GB
419432002-03-27 Geert Bosch <bosch@gnat.com>
41944
41945 * prj-makr.ads, prj-makr.adb : New files.
41946
4f0ade92
NB
419472002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
41948
41949 * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
41950 (lang_mark_tree): Make static, rename.
41951
c88770e9
NB
419522002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
41953
41954 * misc.c (maybe_build_cleanup): Remove.
41955
05671968
NB
419562002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
41957
41958 * gigi.h (yyparse): Remove.
41959
ad42149c
FW
419602002-03-23 Florian Weimer <fw@deneb.enyo.de>
41961
9e94c78f 41962 From Ben Brosgol <brosgol@gnat.com>
82a4b025 41963 * gnat_rm.texi: Sync with ACT version.
ad42149c 41964
7afff7cf
NB
419652002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
41966
41967 * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
41968 (gnat_init): Remove old hook.
41969
52dabb6c
NB
419702002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
41971
41972 * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
41973 (yyparse): Rename gnat_parse_file.
41974
6cbcc541
GK
419752002-03-14 Geoffrey Keating <geoffk@redhat.com>
41976
41977 Delete all lines containing "$Revision:".
41978 * xeinfo.adb: Don't look for revision numbers.
41979 * xnmake.adb: Likewise.
41980 * xsinfo.adb: Likewise.
41981 * xsnames.adb: Likewise.
41982 * xtreeprs.adb: Likewise.
41983
2f9834e8
KG
419842002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41985
41986 * misc.c (gnat_tree_code_type, gnat_tree_code_length,
41987 gnat_tree_code_name): Delete.
41988 (tree_code_type, tree_code_length, tree_code_name): Define.
41989 (gnat_init): Don't try to copy into the various tree_code
41990 arrays.
41991
63adb4ff
RH
419922002-03-11 Richard Henderson <rth@redhat.com>
41993
41994 * Makefile.in (.NOTPARALLEL): Add fake tag.
41995
43ff4547
GB
419962002-03-07 Geert Bosch <bosch@gnat.com>
41997
82a4b025
NB
41998 * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
41999 s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
42000 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
43ff4547
GB
42001 switch-m.adb, switch-m.ads : New files.
42002
07fc65c4
GB
420032002-03-07 Geert Bosch <bosch@gnat.com>
42004
42005 * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
42006 4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
42007 4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
42008 4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
42009 5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
42010 5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
42011 5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
42012 5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
42013 5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
42014 5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
42015 5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
42016 5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
42017 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
42018 5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
42019 5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
42020 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
42021 5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
42022 5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
42023 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
42024 5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
42025 7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
42026 Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
42027 a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
42028 a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
42029 a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
42030 a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
42031 a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
42032 a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
42033 a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
42034 adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
42035 atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
42036 bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
42037 csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
42038 einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
42039 eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
42040 exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
42041 exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
42042 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
42043 exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
42044 exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
42045 expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
42046 freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
42047 g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
42048 g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
42049 g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
42050 g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
42051 g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
42052 g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
42053 gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
42054 gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
42055 gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
42056 i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
42057 impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
42058 lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
42059 lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
42060 memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
42061 mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
42062 nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
42063 output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
42064 par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
42065 prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
42066 prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
42067 prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
42068 rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
42069 s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
42070 s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
42071 s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
42072 s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
42073 s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
42074 s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
42075 s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
42076 s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
42077 s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
42078 s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
42079 s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
42080 s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
42081 s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
42082 s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
42083 s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
42084 sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
42085 sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
42086 sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
42087 sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
42088 sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
42089 sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
42090 sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
42091 sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
42092 sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
42093 sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
42094 snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
42095 stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
42096 table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
42097 tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
42098 treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
42099 types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
42100 utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
42101 xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
42102
42103 * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
42104 g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
42105 mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
42106 osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
42107
42108 * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
42109 5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
42110
42111 * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
42112 to mdll-fil.ad[bs] and mdll-util.ad[bs]
42113
42114 * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
42115 from mdllfile.ad[bs] and mdlltool.ad[bs]
42116
ca7558fc
KG
421172002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
42118
42119 * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
42120 lieu of explicit sizeof/sizeof.
42121
63e1b1c4
NB
421222002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
42123
42124 * misc.c (copy_lang_decl): Remove.
42125
f458d1d5
ZW
421262002-02-27 Zack Weinberg <zack@codesourcery.com>
42127
42128 * misc.c: Delete traditional-mode-related code copied from the
42129 C front end but not used, or used only to permit the compiler
42130 to link.
42131
21e09952
RH
421322002-02-07 Richard Henderson <rth@redhat.com>
42133
42134 * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
42135 * adaint.h (__gnat_to_gm_time): Update prototype.
42136
ead39bdf 421372002-01-30 Richard Henderson <rth@redhat.com>
e803a64b
RH
42138
42139 * trans.c (tree_transform) [N_Loop_Statement]: Use
42140 expand_exit_loop_top_cond.
42141
72ac12bf
RH
421422001-12-23 Richard Henderson <rth@redhat.com>
42143
42144 * utils.c (end_subprog_body): Push GC context around
42145 rest_of_compilation for nested functions.
42146
14aacce7
RH
421472001-12-23 Richard Henderson <rth@redhat.com>
42148
42149 * 5nosinte.ads: Get definition of "int" from Interfaces.C.
42150
b3d45d87
FW
421512001-12-23 Florian Weimer <fw@deneb.enyo.de>
42152
ece2d1b8
FW
42153 * gnat-style.texi (Declarations and Types): Remove ancient style
42154 rule which was mandated by code generation issues.
82a4b025 42155
b3d45d87
FW
42156 * gnat-style.texi (header): Add @dircategory, @direntry.
42157 (title page): Remove date.
42158 (general) Add @./@: where approriate, and two spaces after the
42159 full stop at the end of a sentence. Use @samp markup when
42160 referring concrete lexical entities (keywords, attribute names
42161 etc.), and @syntax for ARM grammar elements. Use @r for English
42162 text in comments. Use @emph for emphasis. Change "if-statements"
42163 etc. to "if statements" (without @samp). Break long lines. Make
42164 casing of section names consistent.
42165 (Identifiers): Use @samp markup for variable names.
42166 (Comments): Use @samp markup for comment characters. Line-end
42167 comments may follow any Ada code, not just statements. Fix
42168 misspelling of "Integer" as "integer".
42169 (Loop statements): Do not use variable name "I", use "J".
42170 (Subprogram Declarations): Document alignment.
42171 (Subprogram Bodies, Block statements): Document empty line before
42172 "begin".
42173
7a73ad55
FW
421742001-12-22 Florian Weimer <fw@deneb.enyo.de>
42175
42176 * make.adb (Add_Switch): Make Generic_Position a procedure. The
42177 function approach did not work well because of a side effect (the
42178 function call could reallocate the table which was being indexed
42179 using its result). Fixes ada/4851.
42180
9e94c78f 421812001-12-19 Robert Dewar <dewar@gnat.com>
17c5c8a5
GB
42182
42183 * bindgen.adb: Minor reformatting
82a4b025 42184
17c5c8a5 42185 * cstand.adb: Minor reformatting
82a4b025 42186
17c5c8a5
GB
42187 * fmap.adb: Minor reformatting
42188 Change name from Add for Add_To_File_Map (Add is much too generic)
42189 Change Path_Name_Of to Mapped_Path_Name
42190 Change File_Name_Of to Mapped_File_Name
42191 Fix copyright dates in header
82a4b025 42192
17c5c8a5
GB
42193 * fmap.ads:
42194 Change name from Add for Add_To_File_Map (Add is much too generic)
42195 Change Path_Name_Of to Mapped_Path_Name
42196 Change File_Name_Of to Mapped_File_Name
42197 Fix copyright dates in header
82a4b025 42198
17c5c8a5
GB
42199 * fname-uf.adb: Minor reformatting. New names of stuff in Fmap.
42200 Add use clause for Fmap.
82a4b025 42201
17c5c8a5 42202 * make.adb: Minor reformatting
82a4b025 42203
17c5c8a5
GB
42204 * osint.adb: Minor reformatting. Change of names in Fmap.
42205 Add use clause for Fmap.
82a4b025 42206
17c5c8a5 42207 * prj-env.adb: Minor reformatting
82a4b025 42208
17c5c8a5 42209 * prj-env.ads: Minor reformatting
82a4b025 42210
07fc65c4
GB
42211 * switch.adb: Minor reformatting. Do proper raise of Bad_Switch if
42212 error found (there were odd exceptions to this general rule in
17c5c8a5 42213 -gnatec/-gnatem processing)
82a4b025 42214
9e94c78f 422152001-12-19 Olivier Hainque <hainque@gnat.com>
17c5c8a5 42216
07fc65c4
GB
42217 * raise.c (__gnat_eh_personality): Exception handling personality
42218 routine for Ada. Still in rough state, inspired from the C++ version
17c5c8a5 42219 and still containing a bunch of debugging artifacts.
07fc65c4 42220 (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
17c5c8a5 42221 inspired from the C++ library.
82a4b025 42222
07fc65c4 42223 * raise.c (eh_personality): Add comments. Part of work for the GCC 3
17c5c8a5 42224 exception handling integration.
82a4b025 42225
9e94c78f 422262001-12-19 Arnaud Charlet <charlet@gnat.com>
17c5c8a5
GB
42227
42228 * Makefile.in: Remove use of 5smastop.adb which is obsolete.
42229 (HIE_SOURCES): Add s-secsta.ad{s,b}.
42230 (HIE_OBJS): Add s-fat*.o
07fc65c4 42231 (RAVEN_SOURCES): Remove files that are no longer required. Add
17c5c8a5
GB
42232 interrupt handling files.
42233 (RAVEN_MOD): Removed, no longer needed.
82a4b025 42234
9e94c78f 422352001-12-19 Robert Dewar <dewar@gnat.com>
17c5c8a5
GB
42236
42237 * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
42238 Add 2001 to copyright date
82a4b025 42239
07fc65c4 42240 * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
17c5c8a5 42241 need to force universal inlining for these cases.
82a4b025 42242
9e94c78f 422432001-12-19 Arnaud Charlet <charlet@gnat.com>
17c5c8a5 42244
07fc65c4 42245 * s-taprob.adb: Minor clean ups so that this unit can be used in
17c5c8a5 42246 Ravenscar HI.
82a4b025 42247
17c5c8a5
GB
42248 * exp_ch7.adb: Allow use of secondary stack in HI mode.
42249 Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
82a4b025 42250
9e94c78f 422512001-12-19 Vincent Celier <celier@gnat.com>
17c5c8a5 42252
07fc65c4 42253 * prj-tree.ads (Project_Node_Record): Add comments for components
17c5c8a5 42254 Pkg_Id and Case_Insensitive.
82a4b025 42255
9e94c78f 422562001-12-19 Pascal Obry <obry@gnat.com>
17c5c8a5
GB
42257
42258 * g-socket.adb: Minor reformatting. Found while reading code.
82a4b025 42259
9e94c78f 422602001-12-19 Robert Dewar <dewar@gnat.com>
17c5c8a5
GB
42261
42262 * prj-tree.ads: Minor reformatting
42263
38be19f6
JM
422642001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
42265
42266 * config-lang.in (diff_excludes): Remove.
42267
9e94c78f 422682001-12-17 Ed Schonberg <schonber@gnat.com>
6510f4c9 42269
07fc65c4
GB
42270 * sem_res.adb (Resolve_Selected_Component): do not generate a
42271 discriminant check if the selected component is a component of
6510f4c9
GB
42272 the argument of an initialization procedure.
42273
07fc65c4
GB
42274 * trans.c (tree_transform, case of arithmetic operators): If result
42275 type is private, the gnu_type is the base type of the full view,
6510f4c9 42276 given that the full view itself may be a subtype.
82a4b025 42277
9e94c78f 422782001-12-17 Robert Dewar <dewar@gnat.com>
6510f4c9
GB
42279
42280 * sem_res.adb: Minor reformatting
82a4b025 42281
07fc65c4
GB
42282 * trans.c (tree_transform, case N_Real_Literal): Add missing third
42283 parameter in call to Machine (unknown horrible effects from this
6510f4c9 42284 omission).
82a4b025 42285
6510f4c9
GB
42286 * urealp.h: Add definition of Round_Even for call to Machine
42287 Add third parameter for Machine
82a4b025 42288
9e94c78f 422892001-12-17 Ed Schonberg <schonber@gnat.com>
6510f4c9 42290
07fc65c4 42291 * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
6510f4c9 42292 predefined units in No_Run_Time mode.
82a4b025 42293
9e94c78f 422942001-12-17 Richard Kenner <kenner@gnat.com>
6510f4c9
GB
42295
42296 * misc.c (insn-codes.h): Now include.
82a4b025 42297
9e94c78f 422982001-12-17 Olivier Hainque <hainque@gnat.com>
6510f4c9 42299
07fc65c4 42300 * a-except.adb: Preparation work for future integration of the GCC 3
6510f4c9
GB
42301 exception handling mechanism
42302 (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
42303 to factorize previous code sequences and make them externally callable,
42304 e.g. for the Ada personality routine when the GCC 3 mechanism is used.
42305 (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
42306 Use the new notification routines.
82a4b025 42307
9e94c78f 423082001-12-17 Emmanuel Briot <briot@gnat.com>
6510f4c9
GB
42309
42310 * prj-tree.ads (First_Choice_Of): Document the when others case
82a4b025 42311
9e94c78f 423122001-12-17 Arnaud Charlet <charlet@gnat.com>
6510f4c9 42313
07fc65c4 42314 * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
6510f4c9 42315 HI-E mode, in order to support Ravenscar profile properly.
82a4b025 42316
07fc65c4 42317 * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
6510f4c9 42318 mode on 32 bits targets.
82a4b025 42319
9e94c78f 423202001-12-17 Vincent Celier <celier@gnat.com>
6510f4c9
GB
42321
42322 * fmap.adb: Initial version.
82a4b025 42323
6510f4c9 42324 * fmap.ads: Initial version.
82a4b025 42325
6510f4c9
GB
42326 * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
42327 If search is successfully done, add to mapping.
82a4b025 42328
6510f4c9 42329 * frontend.adb: Initialize the mapping if a -gnatem switch was used.
82a4b025 42330
6510f4c9
GB
42331 * make.adb:
42332 (Gnatmake): Add new local variable Mapping_File_Name.
42333 Create mapping file when using project file(s).
42334 Delete mapping file before exiting.
82a4b025 42335
6510f4c9 42336 * opt.ads (Mapping_File_Name): New variable
82a4b025 42337
6510f4c9 42338 * osint.adb (Find_File): Use path name found in mapping, if any.
82a4b025 42339
6510f4c9 42340 * prj-env.adb (Create_Mapping_File): New procedure
82a4b025 42341
6510f4c9 42342 * prj-env.ads (Create_Mapping_File): New procedure.
82a4b025 42343
07fc65c4 42344 * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
6510f4c9 42345 (Mapping_File)
82a4b025 42346
6510f4c9 42347 * usage.adb: Add entry for new switch -gnatem.
82a4b025 42348
6510f4c9 42349 * Makefile.in: Add dependencies for fmap.o.
82a4b025 42350
9e94c78f 423512001-12-17 Ed Schonberg <schonber@gnat.com>
6510f4c9 42352
07fc65c4 42353 * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
6510f4c9
GB
42354 is a package instantiation rewritten as a package body.
42355 (Install_Withed_Unit): Undo previous change, now redundant.
82a4b025 42356
9e94c78f 423572001-12-17 Gary Dismuke <dismukes@gnat.com>
6510f4c9
GB
42358
42359 * layout.adb:
42360 (Compute_Length): Move conversion to Unsigned to callers.
42361 (Get_Max_Size): Convert Len expression to Unsigned after calls to
42362 Compute_Length and Determine_Range.
42363 (Layout_Array_Type): Convert Len expression to Unsigned after calls to
42364 Compute_Length and Determine_Range.
42365 Above changes fix problem with length computation for supernull arrays
07fc65c4 42366 where Max (Len, 0) wasn't getting applied due to the Unsigned
6510f4c9 42367 conversion used by Compute_Length.
82a4b025 42368
9e94c78f 423692001-12-17 Arnaud Charlet <charlet@gnat.com>
6510f4c9
GB
42370
42371 * rtsfind.ads:
42372 (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
42373 System.Secondary_Stack.
42374 (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
42375 in HI-E mode.
42376 Remove unused entity RE_Exception_Data.
82a4b025 42377
6510f4c9 42378 * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
82a4b025 42379
6510f4c9
GB
42380 * rident.ads (No_Secondary_Stack): New restriction.
42381
9e94c78f 423822001-12-17 Joel Brobecker <brobecke@gnat.com>
3a77b68d 42383
07fc65c4 42384 * gnat_rm.texi: Fix minor typos. Found while reading the section
3a77b68d
GB
42385 regarding "Bit_Order Clauses" that was sent to a customer.
42386 Very interesting documentation!
82a4b025 42387
9e94c78f 423882001-12-17 Robert Dewar <dewar@gnat.com>
3a77b68d 42389
07fc65c4
GB
42390 * sem_case.adb (Choice_Image): Avoid creating improper character
42391 literal names by using the routine Set_Character_Literal_Name. This
3a77b68d 42392 fixes bombs in certain error message cases.
82a4b025 42393
9e94c78f 423942001-12-17 Arnaud Charlet <charlet@gnat.com>
3a77b68d
GB
42395
42396 * a-reatim.adb: Minor reformatting.
82a4b025 42397
9e94c78f 423982001-12-17 Ed Schonberg <schonber@gnat.com>
3a77b68d 42399
07fc65c4
GB
42400 * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
42401 case where the formal is an extension of another formal in the current
3a77b68d 42402 unit or in a parent generic unit.
82a4b025 42403
9e94c78f 424042001-12-17 Arnaud Charlet <charlet@gnat.com>
3a77b68d 42405
07fc65c4 42406 * s-tposen.adb: Update comments. Minor reformatting.
3a77b68d 42407 Minor code clean up.
82a4b025 42408
3a77b68d 42409 * s-tarest.adb: Update comments. Minor code reorganization.
82a4b025 42410
9e94c78f 424112001-12-17 Gary Dismukes <dismukes@gnat.com>
3a77b68d 42412
07fc65c4 42413 * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
3a77b68d 42414 when Java_VM.
82a4b025 42415
9e94c78f 424162001-12-17 Robert Dewa <dewar@gnat.com>
3a77b68d
GB
42417
42418 * exp_attr.adb: Minor reformatting
82a4b025 42419
9e94c78f 424202001-12-17 Ed Schonberg <schonber@gnat.com>
3a77b68d 42421
07fc65c4 42422 * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
3a77b68d
GB
42423 derivations nested within a child unit: verify that the parent
42424 type is declared in an outer scope.
82a4b025 42425
9e94c78f 424262001-12-17 Robert Dewar <dewar@gnat.com>
3a77b68d
GB
42427
42428 * sem_ch12.adb: Minor reformatting
82a4b025 42429
9e94c78f 424302001-12-17 Ed Schonberg <schonber@gnat.com>
3a77b68d 42431
07fc65c4
GB
42432 * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
42433 warning if current unit is a predefined one, from which bodies may
3a77b68d 42434 have been deleted.
82a4b025 42435
9e94c78f 424362001-12-17 Robert Dewar <dewar@gnat.com>
3a77b68d
GB
42437
42438 * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
42439 Fix header format. Add 2001 to copyright date.
82a4b025 42440
07fc65c4 42441 * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
3a77b68d
GB
42442 which caused CE during compilation if checks were enabled.
42443
9e94c78f 424442001-12-17 Vincent Celier <celier@gnat.com>
79503fdd
GB
42445
42446 * make.adb:
42447 (Switches_Of): New function
42448 (Test_If_Relative_Path): New procedure
42449 (Add_Switches): Use new function Switches_Of
42450 (Collect_Arguments_And_Compile): Use new function Switches_Of.
42451 When using a project file, test if there are any relative
42452 search path. Fail if there are any.
07fc65c4
GB
42453 (Gnatmake): Only add switches for the primary directory when not using
42454 a project file. When using a project file, change directory to the
42455 object directory of the main project file. When using a project file,
42456 test if there are any relative search path. Fail if there are any.
42457 When using a project file, fail if specified executable is relative
42458 path with directory information, and prepend executable, if not
42459 specified as an absolute path, with the exec directory. Make sure
79503fdd 42460 that only one -o switch is transmitted to the linker.
82a4b025 42461
79503fdd 42462 * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
82a4b025 42463
79503fdd
GB
42464 * prj-nmsc.adb:
42465 (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
42466 when using a non standard naming scheme.
42467 (Check_Ada_Naming_Scheme): Make sure that error messages
42468 do not raise exceptions.
42469 (Is_Illegal_Append): Return True if there is no dot in the suffix.
42470 (Language_Independent_Check): Check the exec directory.
82a4b025 42471
79503fdd 42472 * prj.adb (Project_Empty): Add new component Exec_Directory
82a4b025 42473
79503fdd
GB
42474 * prj.ads:
42475 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
42476 (Project_Data): Add component Exec_Directory
82a4b025 42477
79503fdd 42478 * snames.adb: Updated to match snames.ads revision 1.215
82a4b025 42479
79503fdd 42480 * snames.ads: Added Exec_Dir
82a4b025 42481
9e94c78f 424822001-12-17 Robert Dewar <dewar@gnat.com>
79503fdd
GB
42483
42484 * make.adb: Minor reformatting
82a4b025 42485
79503fdd 42486 * prj-nmsc.adb: Minor reformatting
82a4b025 42487
79503fdd 42488 * snames.adb: Updated to match snames.ads
82a4b025 42489
79503fdd
GB
42490 * snames.ads: Alphebetize entries for project file
42491
9e94c78f 424922001-12-17 Ed Schonberg <schonber@gnat.com>
79503fdd 42493
07fc65c4 42494 * trans.c (process_freeze_entity): Do nothing if the entity is a
79503fdd 42495 subprogram that was already elaborated.
82a4b025 42496
9e94c78f 424972001-12-17 Richard Kenner <kenner@gnat.com>
82a4b025 42498
07fc65c4 42499 * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
79503fdd
GB
42500 and Esize if object is referenced via pointer.
42501
9e94c78f 425022001-12-17 Ed Schonberg <schonber@gnat.com>
855ff2e1 42503
07fc65c4 42504 * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
855ff2e1 42505 is discrete before analyzing choices.
82a4b025 42506
9e94c78f 425072001-12-17 Joel Brobecker <brobecke@gnat.com>
855ff2e1 42508
07fc65c4
GB
42509 * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
42510 containing the name of the Ada Main Program. This string is mainly
855ff2e1
GB
42511 intended for the debugger.
42512 (Gen_Output_File_C): Do the equivalent change when generating a C file.
82a4b025 42513
9e94c78f 425142001-12-17 Robert Dewar <dewar@gnat.com>
855ff2e1
GB
42515
42516 * ali.adb: Set new Dummy_Entry field in dependency entry
82a4b025 42517
855ff2e1 42518 * ali.ads: Add Dummy_Entry field to source dependency table
82a4b025 42519
855ff2e1 42520 * bcheck.adb (Check_Consistency): Ignore dummy D lines
82a4b025 42521
855ff2e1 42522 * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
82a4b025 42523
855ff2e1 42524 * lib-writ.ads: Document dummy D lines for missing files.
82a4b025 42525
855ff2e1
GB
42526 * types.ads: (Dummy_Time_Stamp): New value for non-existant files
42527
9e94c78f 425282001-12-17 Robert Dewar <dewar@gnat.com>
c1c22e7a
GB
42529
42530 * ali.adb: Type reference does not reset current file.
82a4b025 42531
c1c22e7a 42532 * ali.adb: Recognize and scan renaming reference
82a4b025 42533
c1c22e7a 42534 * ali.ads: Add spec for storing renaming references.
82a4b025 42535
c1c22e7a 42536 * lib-xref.ads: Add documentation for handling of renaming references
82a4b025 42537
c1c22e7a 42538 * lib-xref.adb: Implement output of renaming reference.
82a4b025 42539
c1c22e7a
GB
42540 * checks.adb:
42541 (Determine_Range): Document local variables
42542 (Determine_Range): Make sure Hbound is initialized. It looks as though
42543 there could be a real problem here with an uninitialized reference
42544 to Hbound, but no actual example of failure has been found.
82a4b025 42545
9e94c78f 425462001-12-17 Laurent Pautet <pautet@gnat.com>
c1c22e7a
GB
42547
42548 * g-socket.ads:
42549 Fix comment of Shutdown_Socket and Close_Socket. These functions
42550 should not fail silently because if they are called twice, this
42551 probably means that there is a race condition in the user program.
42552 Anyway, this behaviour is consistent with the rest of this unit.
42553 When an error occurs, an exception is raised with the error message
42554 as exception message.
42555
9e94c78f 425562001-12-17 Robert Dewar <dewar@gnat.com>
7eb7bb07 42557
07fc65c4 42558 * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
7eb7bb07 42559 that it happens before modification of Sloc values for -gnatD.
82a4b025 42560
07fc65c4 42561 * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
7eb7bb07 42562 so that it happens before modification of Sloc values for -gnatD.
82a4b025 42563
7eb7bb07
RD
42564 * switch.adb: Minor reformatting
42565
b6434700
RH
425662001-12-15 Richard Henderson <rth@redhat.com>
42567
42568 * sem_ch7.adb: Wrap comment.
42569
44d6a706
JM
425702001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
42571
42572 * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
42573 5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
42574 5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
42575 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
42576 5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
42577 7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
42578 a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
42579 a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
42580 cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
42581 exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
42582 exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
42583 g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
42584 gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
42585 make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
42586 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
42587 repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
42588 s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
42589 s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
42590 s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
42591 s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
42592 sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
42593 sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
42594 sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
42595 sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
42596 spelling errors.
42597
9e94c78f 425982001-12-14 Vincent Celier <celier@gnat.com>
226ada7a 42599
07fc65c4 42600 * osint.adb(Create_Debug_File): When an object file is specified,
226ada7a 42601 put the .dg file in the same directory as the object file.
82a4b025 42602
9e94c78f 426032001-12-14 Robert Dewar <dewar@gnat.com>
226ada7a
GB
42604
42605 * osint.adb: Minor reformatting
82a4b025 42606
07fc65c4 42607 * lib-xref.adb (Output_Instantiation): New procedure to generate
226ada7a 42608 instantiation references.
82a4b025 42609
226ada7a 42610 * lib-xref.ads: Add documentation of handling of generic references.
82a4b025 42611
07fc65c4 42612 * ali.adb (Read_Instantiation_Ref): New procedure to read
226ada7a 42613 instantiation references
82a4b025 42614
226ada7a 42615 * ali.ads: Add spec for storing instantiation references
82a4b025 42616
226ada7a 42617 * bindusg.adb: Minor reformatting
82a4b025 42618
226ada7a 42619 * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
82a4b025 42620
226ada7a 42621 * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
82a4b025 42622
226ada7a 42623 * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
82a4b025 42624
226ada7a 42625 * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
82a4b025 42626
226ada7a
GB
42627 * csets.ads:
42628 Fix header format
42629 Add 2001 to copyright date
42630 Add entry for Latin-5 (Cyrillic ISO-8859-5)
82a4b025 42631
9e94c78f 426322001-12-14 Matt Gingell <gingell@gnat.com>
226ada7a 42633
07fc65c4 42634 * adaint.c: mktemp is a macro on Lynx and can not be used as an
226ada7a 42635 expression.
82a4b025 42636
9e94c78f 426372001-12-14 Richard Kenner <kenner@gnat.com>
226ada7a 42638
07fc65c4 42639 * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
226ada7a 42640 if operand is CONSTRUCTOR.
82a4b025 42641
9e94c78f 426422001-12-14 Ed Schonberg <schonber@gnat.com>
226ada7a 42643
07fc65c4
GB
42644 * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
42645 before emiting check on right-hand side, so that exception information
226ada7a
GB
42646 is correct.
42647
9e94c78f 426482001-12-14 Richard Kenner <kenner@gnat.com>
82a4b025 42649
07fc65c4 42650 * utils.c (create_var_decl): Throw away initializing expression
226ada7a 42651 if just annotating types and non-constant.
82a4b025 42652
9e94c78f 426532001-12-14 Vincent Celier <celier@gnat.com>
226ada7a
GB
42654
42655 * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
42656 Default_Ada_...
82a4b025 42657
07fc65c4 42658 * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
226ada7a
GB
42659 Remove functions.
42660 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
82a4b025 42661
07fc65c4 42662 * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
226ada7a
GB
42663 Remove functions.
42664 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
42665
9b94bf9e
JM
426662001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
42667
42668 * ChangeLog: Remove piece of diff output.
42669
9e94c78f 426702001-12-14 Geert Bosch <bosch@gnat.com>
449d2be3
GB
42671
42672 * config-lang.in: Update copyright notice
42673
42674 * layout.adb: Remove commented out code.
42675
42676 * mdllfile.ads: Update copyright notice. Fix header format.
42677
42678 * sem_case.ads: Likewise.
42679
42680 * sem_ch3.adb: Minor reformatting.
42681
9e94c78f 426822001-12-12 Geert Bosch <bosch@gnat.com>
e5bd5cb4
GB
42683
42684 * freeze.ads: Update copyright date.
42685
42686 * g-comlin.ads: Minor reformatting.
42687
42688 * gnat-style.texi: Fix typo.
42689
9e94c78f 426902001-12-12 Geert Bosch <bosch@gnat.com>
b468d8ec
GB
42691
42692 * einfo.h: Regenerate.
42693
9e94c78f 426942001-12-12 Ed Schonberg <schonber@gnat.com>
ed7da216 42695
07fc65c4 42696 * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
ed7da216 42697 on known node types, rather than untyped fields. Further cleanups.
82a4b025 42698
9e94c78f 426992001-12-12 Robert Dewar <dewar@gnat.com>
ed7da216
GB
42700
42701 * sem_ch12.adb:
42702 (Save_Entity_Descendant): Minor comment update.
42703 (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
07fc65c4 42704 of an N_Attribute_Reference node. As per note below, this does not
ed7da216 42705 eliminate need for Associated_Node in attribute ref nodes.
07fc65c4 42706 (Associated_Node): Documentation explicitly mentions attribute
ed7da216 42707 reference nodes, since this field is used in such nodes.
82a4b025 42708
ed7da216
GB
42709 * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
42710
9e94c78f 427112001-12-12 Robert Dewar <dewar@gnat.com>
de76a39c
GB
42712
42713 * s-stalib.adb: Add more comments on with statements being needed
82a4b025 42714
de76a39c 42715 * par-ch12.adb: Minor reformatting
82a4b025 42716
de76a39c 42717 * prj-dect.ads: Fix copyright header
82a4b025 42718
07fc65c4 42719 * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
de76a39c 42720 inputs fit in 32 bits, but the result still overflows.
82a4b025 42721
de76a39c 42722 * s-fatgen.ads: Minor comment improvement
82a4b025 42723
9e94c78f 427242001-12-12 Ed Schonberg <schonber@gnat.com>
de76a39c 42725
07fc65c4
GB
42726 * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
42727 formal derived type, look for an inherited component from the full
de76a39c 42728 view of the parent, if any.
82a4b025 42729
9e94c78f 427302001-12-12 Robert Dewar <dewar@gnat.com>
de76a39c
GB
42731
42732 * checks.ads (Apply_Alignment_Check): New procedure.
82a4b025 42733
07fc65c4
GB
42734 * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
42735 ensure that the alignment of objects with address clauses is
de76a39c
GB
42736 appropriate, and raise PE if not.
42737
07fc65c4 42738 * exp_util.ads (Must_Be_Aligned): Removed, replaced by
de76a39c 42739 Exp_Pakd.Known_Aligned_Enough
82a4b025 42740
de76a39c
GB
42741 * mdllfile.ads: Minor reformatting
42742
42743 * mlib-fil.ads: Minor reformatting
82a4b025 42744
9e94c78f 427452001-12-12 Ed Schonberg <schonber@gnat.com>
de76a39c 42746
07fc65c4
GB
42747 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
42748 fix to any component reference if enclosing record has non-standard
de76a39c 42749 representation.
82a4b025 42750
9e94c78f 427512001-12-12 Vincent Celier <celier@gnat.com>
de76a39c 42752
07fc65c4 42753 * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
de76a39c 42754 Iteration
82a4b025 42755
9e94c78f 427562001-12-12 Ed Schonberg <schonber@gnat.com>
de76a39c 42757
07fc65c4 42758 * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
de76a39c 42759 sem_attr.
82a4b025 42760
9e94c78f 427612001-12-12 Robert Dewar <dewar@gnat.com>
de76a39c
GB
42762
42763 * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
82a4b025 42764
9e94c78f 427652001-12-12 Emmanuel Briot <briot@gnat.com>
de76a39c
GB
42766
42767 * g-regexp.adb: Remove all debug code, since it isn't required anymore,
42768 and it adds dependencies to system.io.
82a4b025 42769
9e94c78f 427702001-12-12 Pascal Obry <obry@gnat.com>
de76a39c 42771
07fc65c4 42772 * g-dirope.adb (Expand_Path.Var): Correctly detect end of
de76a39c
GB
42773 variable name.
42774
9e94c78f 427752001-12-11 Ed Schonberg <schonber@gnat.com>
0b09835f
ES
42776
42777 * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
07fc65c4
GB
42778 that is the parent of other generics, the instance body replaces the
42779 instance node. Retrieve the instance of the spec, which is the one
0b09835f
ES
42780 that is visible in clients and within the body.
42781
9e94c78f 427822001-12-11 Vincent Celier <celier@gnat.com>
598c3446
GB
42783
42784 * gnatmain.adb: Initial version.
82a4b025 42785
598c3446 42786 * gnatmain.ads: Initial version.
82a4b025 42787
598c3446 42788 * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
82a4b025 42789
598c3446 42790 * snames.adb: Updated to match snames.ads.
82a4b025 42791
598c3446 42792 * snames.ads: Added Gnatstub.
82a4b025 42793
9e94c78f 427942001-12-11 Vincent Celier <celier@gnat.com>
598c3446 42795
07fc65c4 42796 * prj-attr.adb (Initialization_Data): Change name from
598c3446 42797 Initialisation_Data.
82a4b025 42798
9e94c78f 427992001-12-11 Emmanuel Briot <briot@gnat.com>
598c3446
GB
42800
42801 * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
42802 + and * applied to backslashed expressions like \r.
82a4b025 42803
9e94c78f 428042001-12-11 Vasiliy Fofanov <fofanov@gnat.com>
598c3446 42805
07fc65c4 42806 * g-os_lib.ads: String_List type added, Argument_List type is now
598c3446 42807 subtype of String_List.
82a4b025 42808
9e94c78f 428092001-12-11 Robert Dewar <dewar@gnat.com>
598c3446
GB
42810
42811 * g-os_lib.ads: Change copyright to FSF
42812 Add comments for String_List type
82a4b025 42813
9e94c78f 428142001-12-11 Vincent Celier <celier@gnat.com>
598c3446 42815
07fc65c4 42816 * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
598c3446
GB
42817 string to the buffer).
42818
9e94c78f 428192001-12-11 Ed Schonberg <schonber@gnat.com>
7fb754a1
GB
42820
42821 * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
42822 sem_attr.
82a4b025 42823
7fb754a1 42824 * sem_attr.adb: Simplify previous fix for Address.
07fc65c4
GB
42825 (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
42826 to avoid anomalies where the bound of the type appears to raise
7fb754a1
GB
42827 constraint error.
42828
9e94c78f 428292001-12-11 Robert Dewar <dewar@gnat.com>
7fb754a1 42830
07fc65c4 42831 * lib-xref.adb (Output_Refs): Make sure pointers are always properly
7fb754a1 42832 handled.
82a4b025 42833
9e94c78f 428342001-12-11 Ed Schonber <schonber@gnat.com>
7fb754a1 42835
07fc65c4 42836 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
7fb754a1 42837 renamed unit before checking for recursive instantiations.
82a4b025 42838
9e94c78f 428392001-12-11 Emmanuel Briot <briot@gnat.com>
7fb754a1
GB
42840
42841 * prj.ads: Add comments for some of the fields.
42842
9e94c78f 428432001-12-11 Robert Dewar <dewar@gnat.com>
0873bafc 42844
07fc65c4 42845 * lib-xref.adb (Output_Refs): Don't output type references outside
0873bafc 42846 the main unit if they are not otherwise referenced.
82a4b025 42847
9e94c78f 428482001-12-11 Ed Schonberg <schonber@gnat.com>
0873bafc 42849
07fc65c4 42850 * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
0873bafc 42851 code and diagnose additional illegal uses
82a4b025 42852
07fc65c4 42853 * sem_util.adb (Is_Object_Reference): An indexed component is an
0873bafc 42854 object only if the prefix is.
82a4b025 42855
9e94c78f 428562001-12-11 Vincent Celier <celier@gnat.com>
0873bafc
GB
42857
42858 * g-diopit.adb: Initial version.
82a4b025 42859
0873bafc 42860 * g-diopit.ads: Initial version.
82a4b025 42861
0873bafc
GB
42862 * g-dirope.adb:
42863 (Expand_Path): Avoid use of Unbounded_String
42864 (Find, Wildcard_Iterator): Moved to child package Iteration
82a4b025 42865
0873bafc 42866 * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
82a4b025 42867
9e94c78f 428682001-12-11 Robert Dewar <dewar@gnat.com>
0873bafc
GB
42869
42870 * sem_attr.adb: Minor reformatting
42871
9e94c78f 428722001-12-11 Ed Schonberg <schonber@gnat.com>
d087cd96
GB
42873
42874 * sem_ch3.adb: Clarify some ???.
82a4b025 42875
9e94c78f 428762001-12-11 Robert Dewar <dewar@gnat.com>
d087cd96 42877
07fc65c4 42878 * exp_util.adb (Must_Be_Aligned): Removed, replaced by
d087cd96 42879 Exp_Pakd.Known_Aligned_Enough
82a4b025 42880
07fc65c4 42881 * sem_ch13.adb (Check_Address_Alignment): Removed, extended
d087cd96
GB
42882 version is moved to Exp_Ch13.
42883
9e94c78f 428842001-12-11 Robert Dewar <dewar@gnat.com>
d087cd96
GB
42885
42886 * einfo.ads: Minor reformatting
82a4b025 42887
d087cd96 42888 * exp_ch5.adb: Add comment for previous.change
82a4b025 42889
d087cd96 42890 * ali.adb: New interface for extended typeref stuff.
82a4b025 42891
d087cd96 42892 * ali.ads: New interface for typeref stuff.
82a4b025 42893
d087cd96 42894 * checks.adb (Apply_Alignment_Check): New procedure.
82a4b025 42895
d087cd96 42896 * debug.adb: Add -gnatdM for modified ALI output
82a4b025 42897
d087cd96 42898 * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
82a4b025 42899
07fc65c4
GB
42900 * lib-xref.adb: Extend generation of <..> notation to cover
42901 subtype/object types. Note that this is a complete rewrite,
42902 getting rid of the very nasty quadratic algorithm previously
d087cd96 42903 used for derived type output.
82a4b025 42904
07fc65c4
GB
42905 * lib-xref.ads: Extend description of <..> notation to cover
42906 subtype/object types. Uses {..} for these other cases.
d087cd96 42907 Also use (..) for pointer types.
82a4b025 42908
d087cd96 42909 * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
82a4b025 42910
07fc65c4 42911 * exp_pakd.adb: Minor reformatting. Note that prevous RH should say:
d087cd96
GB
42912 (Known_Aligned_Enough): Replaces Must_Be_Aligned.
42913
9e94c78f 429142001-12-11 Vincent Celier <celier@gnat.com>
290986ed
GB
42915
42916 * gnatcmd.adb:
42917 Changed /COMPILE_ONLY to /ACTIONS=COMPILE
42918 Changed /BIND_ONLY to /ACTIONS=BIND
42919 Changed /LINK_ONLY to /ACTIONS=LINK
82a4b025 42920
290986ed
GB
429212001-12-11 Ed Schonberg <schonber@gnat.com>
42922
42923 * sem_ch8.adb (Find_Selected_Component): improved search for a
42924 candidate package in case of error.
82a4b025 42925
290986ed
GB
42926 * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
42927 chain back on scope stack before reinstalling use clauses.
82a4b025 42928
290986ed
GB
42929 * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
42930 is enabled, do not kill the code for the condition, to preserve
42931 warning.
42932
9e94c78f 429332001-12-11 Robert Dewar <dewar@gnat.com>
84157f51 42934
07fc65c4 42935 * checks.adb (Insert_Valid_Check): Apply validity check to expression
84157f51
GB
42936 of conversion, not to result of conversion.
42937
9e94c78f 429382001-12-11 Ed Schonberg <schonber@gnat.com>
82a4b025 42939
07fc65c4
GB
42940 * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
42941 before freezing parent. If the declarations are mutually recursive,
42942 an access to the current record type may be frozen before the
84157f51
GB
42943 derivation is complete.
42944
9e94c78f 429452001-12-05 Vincent Celier <celier@gnat.com>
7ffa903f 42946
07fc65c4 42947 * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
7ffa903f 42948 -c /COMPILE_ONLY, -l /LINK_ONLY
82a4b025 42949
7ffa903f
VC
42950 * opt.ads:
42951 (Bind_Only): New Flag
42952 (Link_Only): New flag
82a4b025 42953
07fc65c4 42954 * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
7ffa903f 42955 and -l (Link_Only)
82a4b025 42956
7ffa903f 42957 * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
82a4b025 42958
7ffa903f
VC
42959 * make.adb:
42960 (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
42961 (Gnatmake): Set the step flags. Only perform a step if the
42962 corresponding step flag is True.
42963 (Scan_Make_Arg): Reset the bind and link step flags when -u
42964 or -gnatc has been specified.
42965
9e94c78f 429662001-12-05 Ed Schonberg <schonber@gnat.com>
f91b40db 42967
07fc65c4 42968 * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
f91b40db 42969 get bounds from right operand.
82a4b025 42970
f91b40db 42971 * sem_eval.adb: Minor reformatting
82a4b025 42972
07fc65c4 42973 * exp_util.adb (Make_Literal_Range): use bound of literal rather
f91b40db 42974 than Index'First, its lower bound may be different from 1.
82a4b025 42975
07fc65c4 42976 * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
f91b40db 42977 and C48009J
82a4b025 42978
9e94c78f 429792001-12-05 Vincent Celier <celier@gnat.com>
f91b40db
GB
42980
42981 * prj-nmsc.adb Minor reformatting
82a4b025 42982
07fc65c4 42983 * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
f91b40db 42984 set and libraries are not supported.
82a4b025 42985
9e94c78f 429862001-12-05 Ed Schonberg <schonber@gnat.com>
f91b40db 42987
07fc65c4
GB
42988 * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
42989 private view explicitly, so the back-end can treat as a global
f91b40db
GB
42990 when appropriate.
42991
9e94c78f 429922001-12-05 Ed Schonberg <schonber@gnat.com>
45d04cbb
GB
42993
42994 * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
42995 unit, always replace instance node with new body, for ASIS use.
42996
9e94c78f 429972001-12-05 Vincent Celier <celier@gnat.com>
82a4b025 42998
07fc65c4
GB
42999 * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
43000 libraries are not supported and both attributes Library_Name and
45d04cbb 43001 Library_Dir are specified.
82a4b025 43002
07fc65c4 43003 * prj-proc.adb (Expression): Set location of Result to location of
45d04cbb 43004 first term.
82a4b025 43005
45d04cbb
GB
43006 * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
43007 (prj-nmsc is now importing MLib.Tgt)
82a4b025 43008
45d04cbb
GB
43009 * prj-proc.adb: Put the change indicated above that was forgotten.
43010
9e94c78f 430112001-12-05 Robert Dewar <dewar@gnat.com>
84436014
RD
43012
43013 * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
43014
9e94c78f 430152001-12-05 Ed Schonberg <schonber@gnat.com>
7ae0dcd8
ES
43016
43017 * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
43018 constraint, introduce explicit subtype declaration and derive from it.
82a4b025 43019
7ae0dcd8
ES
43020 * sem_ch3.adb: Minor reformatting
43021
9e94c78f 430222001-12-05 Robert Dewar <dewar@gnat.com>
c9a4817d 43023
07fc65c4 43024 * checks.adb (Determine_Range): Increase cache size for checks.
c9a4817d 43025 Minor reformatting
82a4b025 43026
c9a4817d
RD
43027 * exp_ch6.adb: Minor reformatting
43028 (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
43029 a parameter whose root type is System.Address, since treating such
43030 subprograms as pure in the code generator is almost surely a mistake
43031 that will lead to unexpected results.
82a4b025 43032
07fc65c4 43033 * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
c9a4817d 43034 change handling of conversions.
82a4b025 43035
c9a4817d
RD
43036 * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
43037
9e94c78f 430382001-12-05 Ed Schonberg <schonber@gnat.com>
2514b839 43039
07fc65c4
GB
43040 * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
43041 aggregate with static wrong size, attach generated Raise node to
2514b839
ES
43042 declaration.
43043
9e94c78f 430442001-12-05 Robert Dewar <dewar@gnat.com>
457b6274 43045
07fc65c4 43046 * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
457b6274
RD
43047 Fixes compilation abandoned bomb in B24009B.
43048
9e94c78f 430492001-12-05 Ed Schonberg <schonber@gnat.com>
19349925
ES
43050
43051 * sem_ch12.adb:
43052 Document use of Associated_Node on Selected_Components.
43053 (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
43054 to clarify use of untyped descendant fields.
43055
9e94c78f 430562001-12-05 Robert Dewar <dewar@gnat.com>
6663c393
RD
43057
43058 * prj-dect.ads: Add ??? comment
43059 Add 2001 to copyright notice (was not done in after all)
82a4b025 43060
6663c393 43061 * prj-part.adb: Minor reformatting. Reword one awkward error message.
82a4b025 43062
6663c393 43063 * prj.ads: Minor reformatting throughout, and add some ??? comments
82a4b025 43064
6663c393
RD
43065 * snames.ads: Minor reformatting
43066
9e94c78f 430672001-12-05 Geert Bosch <bosch@gnat.com>
d7b2a6af
GB
43068
43069 * snames.adb: Autoupdate
43070
9e94c78f 430712001-12-05 Vincent Celier <celier@gnat.com>
fbc9a404
VC
43072
43073 * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
82a4b025 43074
fbc9a404 43075 * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
82a4b025 43076
fbc9a404 43077 * prj-env.adb: Minor comment changes (modifying -> extends).
82a4b025 43078
fbc9a404 43079 * prj-nmsc.adb: Minor comment changes (modifying -> extends).
82a4b025 43080
07fc65c4 43081 * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
fbc9a404 43082 Tok_Extends.
82a4b025 43083
fbc9a404 43084 * prj.adb (Initialize): Change Modifying to Extends.
82a4b025 43085
fbc9a404 43086 * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
82a4b025 43087
fbc9a404 43088 * prj.ads: Minor comment change (Modifying -> extending).
82a4b025 43089
fbc9a404
VC
43090 * snames.ads: Change modifying to extends.
43091
9e94c78f 430922001-12-05 Robert Dewar <dewar@gnat.com>
7cff0b1b 43093
07fc65c4 43094 * sem_warn.adb: Remove stuff for conditionals, we are not going to
7cff0b1b 43095 do this after all.
82a4b025 43096
07fc65c4 43097 * sem_warn.ads: Remove stuff for conditionals, we are not going to
7cff0b1b
RD
43098 do this after all. Add 2001 to copyright notice
43099
9e94c78f 431002001-12-04 Geert Bosch <bosch@gnat.com>
4f56ebb7
GB
43101
43102 * einfo.h, sinfo.h, treeprs.ads: Regenerate.
43103
9e94c78f 431042001-12-04 Robert Dewar <dewar@gnat.com>
053defdf 43105
07fc65c4
GB
43106 * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
43107 location if we already have errors. Stops some cases of cascaded
053defdf 43108 errors.
82a4b025 43109
053defdf
RD
43110 * errout.adb: Improve comment.
43111
9e94c78f 431122001-12-04 Robert Dewar <dewar@gnat.com>
f311e166
RD
43113
43114 * sem_ch12.adb:
43115 (Analyze_Formal_Type_Definition): Defend against Error.
43116 (Analyze_Formal_Subprogram): Defend against Error.
82a4b025 43117
07fc65c4 43118 * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
f311e166
RD
43119 remove following semicolon if present. Removes cascaded error.
43120
9e94c78f 431212001-12-04 Douglas B. Rupp <rupp@gnat.com>
d61bd65a
DR
43122
43123 * bindgen.adb:
43124 (Gen_Exception_Table_Ada): Write "begin" and then return if Num
43125 exceptions equals 0.
43126 (Gen_Exception_Table_C): Return if Num exceptions equals 0.
43127 Fixes PIWG E tests (which have to be run with -gnatL).
43128
9e94c78f 431292001-12-04 Robert Dewar <dewar@gnat.com>
4ba603e2
RD
43130
43131 * einfo.ads: Minor reformatting
43132
9e94c78f 431332001-12-04 Ed Schonberg <schonber@gnat.com>
57568d91 43134
07fc65c4
GB
43135 * einfo.ads: Block_Node points to the identifier of the block, not to
43136 the block node itself, to preserve the link when the block is
43137 rewritten, e.g. within an if-statement with a static condition.
82a4b025 43138
07fc65c4 43139 * inline.adb (Cleanup_Scopes): recover block statement from block
57568d91 43140 entity using new meaning of Block_Node.
82a4b025 43141
07fc65c4 43142 * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
57568d91
ES
43143 identifier of block node, rather than to node itself.
43144
9e94c78f 431452001-12-04 Gary Dismukes <dismukes@gnat.com>
82a4b025 43146
0815d36a
GD
43147 * layout.adb:
43148 (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
43149 (Discrimify): Go back to setting the Etypes of the selected component
07fc65c4 43150 because the Vname component does not exist at this point and will
0815d36a
GD
43151 fail name resolution. Also set Analyzed.
43152 Remove with and use of Sem_Res.
43153
9e94c78f 431542001-12-04 Arnaud Charlet <charlet@gnat.com>
edc0f304
AC
43155
43156 * Makefile.in: (HIE_SOURCES): add s-fat*.
43157
9e94c78f 431582001-12-04 Robert Dewar <dewar@gnat.com>
32213142
RD
43159
43160 * sem_attr.adb:
43161 (Compile_Time_Known_Attribute): New procedure.
43162 (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
43163 proper range check.
43164
9e94c78f 431652001-12-04 Ed Schonberg <schonber@gnat.com>
c0def2ad 43166
07fc65c4 43167 * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
c0def2ad
ES
43168 processing discriminants to diagnose illegal default values.
43169
9e94c78f 431702001-12-04 Ed Schonberg <schonber@gnat.com>
ee0a48c5 43171
07fc65c4
GB
43172 * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
43173 access discriminant within a type extension that constrains its
ee0a48c5
ES
43174 parent discriminants.
43175
9e94c78f 431762001-12-04 Ed Schonberg <schonber@gnat.com>
dd5875a6 43177
07fc65c4 43178 * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
dd5875a6 43179 is malformed, use instance of Any_Id to allow analysis to proceed.
82a4b025 43180
07fc65c4 43181 * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
dd5875a6
ES
43182 type definition is illegal.
43183 (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
43184 misplaced.
43185
9e94c78f 431862001-12-04 Ed Schonberg <schonber@gnat.com>
c2a41e57 43187
07fc65c4 43188 * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
c2a41e57
ES
43189 constants.
43190
9e94c78f 431912001-12-04 Robert Dewar <dewar@gnat.com>
0ae84753
RD
43192
43193 * errout.adb: Minor reformatting
43194
9e94c78f 431952001-12-04 Robert Dewar <dewar@gnat.com>
63db260e
RD
43196
43197 * exp_util.adb: Minor reformatting from last change
82a4b025 43198
07fc65c4
GB
43199 * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
43200 which is a rewriting of an expression, traverse the original
63db260e
RD
43201 expression to remove warnings that may have been posted on it.
43202
9e94c78f 432032001-12-04 Ed Schonberg <schonber@gnat.com>
c6d289f4 43204
07fc65c4 43205 * exp_util.adb (Must_Be_Aligned): Return false for a component of a
c6d289f4
ES
43206 record that has other packed components.
43207
9e94c78f 432082001-12-04 Douglass B. Rupp <rupp@gnat.com>
5917e80d
DR
43209
43210 * adaint.c: Minor cleanups.
43211
9e94c78f 432122001-12-04 Douglass B. Rupp <rupp@gnat.com>
2c70f9dd
DR
43213
43214 * adaint.c: Do not use utime.h on vxworks.
43215
9e94c78f 432162001-12-04 Arnaud Charlet <charlet@gnat.com>
e59b3387 43217
07fc65c4 43218 * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
e59b3387
AC
43219 more confusion than it solves.
43220
9e94c78f 432212001-12-04 Geert bosch <bosch@gnat.com>
e288604a
GB
43222
43223 * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
43224
5ac21013
GB
432252001-12-04 Geert Bosch <bosch@gnat.com>
43226
07fc65c4 43227 * Makefile.in (update-sources): New target.
5ac21013
GB
43228 For use by gcc_release script.
43229
9e94c78f 432302001-12-04 Ed Schonberg <schonber@gnat.com>
7dd5bd5e 43231
07fc65c4 43232 * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
7dd5bd5e
ES
43233 a configuration pragma, it is now legal wherever a pragma can appear.
43234
a078a589
ZW
432352001-12-04 Zack Weinberg <zack@codesourcery.com>
43236
43237 * Makefile.in: Don't set ALL. Delete @cross_defines@,
43238 @cross_overrides@, @build_overrides@ stanzas. INTERNAL_CFLAGS
43239 is now @CROSS@ -DIN_GCC; update comment.
43240
9e94c78f 432412001-12-04 Robert Dewar <dewar@gnat.com>
0839863c
GB
43242
43243 * einfo.adb (Has_Pragma_Pure_Function): New flag.
43244 Fix problem that stopped ceinfo from working
82a4b025 43245
0839863c 43246 * einfo.ads (Has_Pragma_Pure_Function): New flag.
82a4b025 43247
0839863c
GB
43248 * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
43249
9e94c78f 432502001-12-04 Douglas B. Rupp <rupp@gnat.com>
9678de49
DR
43251
43252 * gnatchop.adb:
43253 (File_Time_Stamp): New procedure.
43254 (Preserve_Mode): New boolean.
43255 (Write_Unit): Pass time stamp.
43256 Implement -p switch (preserve time stamps).
82a4b025 43257
9678de49 43258 * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
82a4b025 43259
9678de49 43260 * gnatchop.adb: Do usage info for -p switch
82a4b025 43261
9678de49 43262 * adaint.h (__gnat_set_file_time_name): New function
82a4b025 43263
9678de49 43264 * adaint.c (__gnat_set_file_time_name): Implement
82a4b025 43265
9678de49
DR
43266 * adaint.h: Fix typo
43267
9e94c78f 432682001-12-03 Robert Dewar <dewar@gnat.com>
3b9a13c4 43269
667e5c5d 43270 * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
b4f94ac1 43271 have Associated_Node.
3b9a13c4 43272
9e94c78f 432732001-12-03 Robert Dewar <dewar@gnat.com>
767b404e
RD
43274
43275 * prj-proc.adb: Minor reformatting
667e5c5d 43276
767b404e
RD
43277 * make.adb: Minor reformatting
43278
9e94c78f 432792001-12-03 Geert Bosch <bosch@gnat.com>
11ac71ba 43280
667e5c5d 43281 * make.adb: Minor reformatting.
11ac71ba 43282
ef3d4d6e 432832001-12-03 Robert Dewar <dewar@gnat.com>
b1446533
RD
43284
43285 * sem_ch12.adb: Minor reformatting
43286
9e94c78f 432872001-12-03 Ed Schonberg <schonber@gnat.com>
d6d32b24 43288
667e5c5d
AJ
43289 * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
43290 push Standard on the stack before analyzing the instance body,
d6d32b24 43291 in order to have a clean visibility environment.
667e5c5d
AJ
43292
43293 * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
d6d32b24 43294
9e94c78f 432952001-12-03 Ed Schonberg <schonber@gnat.com>
13f08f03 43296
667e5c5d 43297 * sem_ch12.adb (Instantiate_Package_Body): Protect against double
13f08f03
ES
43298 instantiation of a body that contains an inlined body.
43299
9e94c78f 433002001-12-03 Ed Schonberg <schonber@gnat.com>
3bd6c100
ES
43301
43302 * sem_ch12.adb:
43303 (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
43304 to prevent freezing within formal packages.
43305 (Freeze_Subprogram_Body): If body comes from another instance that
43306 appeared before its own body, place freeze node at end of current
43307 declarative part, to prevent a back-end crash.
43308 (Inline_Instance_Body): Handle properly a package instance within
43309 a subprogram instance that is a child unit.
43310
58d07d8f
GS
433112001-12-01 Graham Stott <grahams@redhat.com>
43312
43313 * Makefile.in (misc.o): Add missing $(srcdir) prefix
43314 and add optabs.h dependency.
43315
43316 * misc.c: Include optabs.h
43317 (gnat_tree_code_type): Make static and const.
43318 (gnat_tree_code_length): Likewise.
43319 (gnat_tree_code_name): Likewise.
43320 (update_setjmp_buf): Obtain operands mode from insn_data.
43321
c87222f0
RH
433222001-11-29 Richard Henderson <rth@redhat.com>
43323
43324 * init.c: Remove obsolete dwarf2 frame.h section.
43325
d3945f0a
JM
433262001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
43327
43328 * Make-lang.in (ada.generated-manpages): New dummy target.
43329
9e94c78f 433302001-11-29 Ed Schonberg <schonber@gnat.com>
9f639397 43331
667e5c5d
AJ
43332 * g-os_lib.adb (Add_To_Command): use explicit loop to move string
43333 into Command, an array conversion is illegal here. Uncovered by
9f639397
ES
43334 ACATS B460005.
43335
9e94c78f 433362001-11-28 Geert Bosch <bosch@gnat.com>
c835e5c6
GB
43337
43338 * init.c: Minor whitespace changes.
43339
9e94c78f 433402001-11-28 Doug Rupp <rupp@gnat.com>
49bb4548 43341
667e5c5d 43342 * init.c: (__gnat_install_handler,VMS): Increase size of alternate
49bb4548
DR
43343 signal stack.
43344
ea2417e5
ZW
433452001-11-28 Zack Weinberg <zack@codesourcery.com>
43346
43347 * misc.c (gnat_expand_constant): Move declaration above
43348 definition of lang_hooks.
43349 (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
43350 (gnat_init): lang_expand_constant no longer exists.
43351
43352 (internal_error_function): Remove #ifdef HAVE_VPRINTF. We
43353 always have vprintf.
43354 (gnat_init): Always call set_internal_error_function.
43355
f8e0aa73
AJ
433562001-11-27 Andreas Jaeger <aj@suse.de>
43357
43358 * Makefile.in (stamp-tool_src_dir): Use symbolic link.
43359
d99b0e79
LG
433602001-11-27 Laurent Guerby <guerby@acm.org>
43361
43362 * Makefile.in: Regenerate Ada dependencies.
43363
3f0496e5
RH
433642001-11-26 Richard Henderson <rth@redhat.com>
43365
43366 * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
43367 gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
43368 gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
43369
92fa4733
LG
433702001-11-25 Laurent Guerby <guerby@acm.org>
43371
43372 * sysdep.c (rts_get_*): Fix style.
43373
07626501
LG
433742001-11-19 Laurent Guerby <guerby@acm.org>
43375
43376 * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
43377 since it is of no apparent use and cause warnings.
43378
22703ccc
NB
433792001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
43380
43381 * misc.c (gnat_decode_option, gnat_init_options): Make definitions
43382 static too.
43383 (gnat_init): Don't return NULL.
43384 (finish_parse): Remove.
43385
b0df4321
LG
433862001-11-17 Laurent Guerby <guerby@acm.org>
43387
43388 * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
43389 * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
43390 * io-aux.c: Provide K&R prototypes to all functions, reformat code.
43391 * lang-spec.h: Add missing struct field to silence warnings.
43392 * sysdep.c (rts_get_*): Provide K&R prototype.
43393 * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
43394 * traceback.c (Unlock_Task, Lock_Task): Likewise.
43395 * tracebak.c (__gnat_backtrace): Remove unused variable.
43396 * utils.c (end_subprog_body): Move to K&R style.
43397
d215024f
RK
43398Thu Nov 15 18:16:17 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
43399
43400 * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
43401
f5e99456
NB
434022001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
43403
43404 * misc.c (gnat_init): Change prototype. Include the
43405 functionality of the old init_parse and init_decl_processing.
43406 (gnat_init_decl_processing): New prototype.
43407 (init_parse): Remove.
43408 * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
43409
5d69f816
NB
434102001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
43411
43412 * misc.c (gnat_print_decl, gnat_print_type): Renamed.
43413 (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
43414 (print_lang_statistics, lang_print_xnode, print_lang_identifier,
43415 set_yydebug): Remove.
43416
3ac88239
NB
434172001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
43418
43419 * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
43420 (struct lang_hooks): Constify.
43421 (language_string, lang_identify): Remove.
43422 * utils.c (init_decl_processing): Update.
43423
d23c55c2
NB
434242001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
43425
43426 * misc.c: Include langhooks-def.h.
43427 * Makefile.in: Update.
43428
9e94c78f 434292001-10-30 Robert Dewar <dewar@gnat.com>
04a1b79c
RD
43430
43431 * style.adb:
43432 (Check_Identifier): Rewrite circuit to be compatible with use of letters
43433 in the upper half of ASCII.
43434 (Check_Identifier): Minor reformatting
43435
9e94c78f 434362001-10-30 Geert Bosch <bosch@gnat.com>
81fa2d39 43437
f8e0aa73 43438 * (Associated_Node, Set_Associated_Node): Do not check for
81fa2d39
GB
43439 Freeze_Entity.
43440
9e94c78f 434412001-10-30 Robert Dewar <dewar@gnat.com>
ffc5527f
RD
43442
43443 * a-reatim.ads: Minor reformatting
43444
9e94c78f 434452001-10-30 Robert Dewar <dewar@gnat.com>
865335eb 43446
f8e0aa73 43447 * gnatdll.adb: Minor reformatting throughout. Many ??? added for
865335eb
RD
43448 undocumented declarations.
43449
9e94c78f 434502001-10-30 Pascal Obry <obry@gnat.com>
5e257178 43451
f8e0aa73 43452 * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
5e257178
PO
43453 to the binder and linker.
43454 Minor style fix.
f8e0aa73 43455
5e257178
PO
43456 * mdll.ads: Fix layout. Update copyright notice.
43457
43458 * mdll.adb: Fix layout. Update copyright notice.
43459
9e94c78f 434602001-10-30 Robert Dewar <dewar@gnat.com>
1753e0ad
RD
43461
43462 * usage.adb: Minor fix to output for -gnaty.
43463
9e94c78f 434642001-10-30 Ed Schonberg <schonber@gnat.com>
84bfdde0 43465
f8e0aa73
AJ
43466 * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
43467 to accommodate all its possible values.
84bfdde0 43468
f8e0aa73 43469 * a-reatim.adb (Split): Special-case handling of Time_Span_First
84bfdde0
ES
43470 and of small absolute values of T.
43471
9e94c78f 434722001-10-30 Richard Kenner <kenner@gnat.com>
c296e5fc 43473
f8e0aa73
AJ
43474 * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
43475 set_mem_attributes since not needed and wrong if RESULT if a REG;
c296e5fc
RK
43476 fixes ACATS failures.
43477
9e94c78f 434782001-10-30 Geert Bosch <bosch@gnat.com>
07c809df
GB
43479
43480 * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
43481 s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
43482
9e94c78f 434832001-10-30 Robert Dewar <dewar@gnat.com>
f8e0aa73 43484
54d22416 43485 * bindusg.adb: Undocument -f switch.
f8e0aa73 43486
54d22416 43487 * gnatcmd.adb: Remove /FULL_ELABORATION.
f8e0aa73
AJ
43488
43489 * opt.ads (Force_RM_Elaboration_Order): Document that this is
54d22416 43490 obsolescent.
f8e0aa73 43491
54d22416 43492 * gnatbind.adb: Output new warning for use of obsolescent -f switch.
f8e0aa73 43493
54d22416
RD
43494 * gnatbind.adb: Minor update of warning msg.
43495
9e94c78f 434962001-10-30 Vincent Celier <celier@gnat.com>
af5cf6f8 43497
f8e0aa73 43498 * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
af5cf6f8 43499 for project file switches (-P (/PROJECT_FILE=),
f8e0aa73 43500 -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
af5cf6f8
VC
43501 or MEDIUM or HIGH)
43502
9e94c78f 435032001-10-30 Geert Bosch <bosch@gnat.com>
984bc4c3
GB
43504
43505 * decl.c: Minor whitespace fixes.
43506
9e94c78f 435072001-10-30 Richard Kenner <kenner@gnat.com>
5dece937
RK
43508
43509 * utils2.c (build_allocator): Test for SIZE overflow in array case too
43510
9e94c78f 435112001-10-30 Geert Bosch <bosch@gnat.com>
de4bf6cb 43512
f8e0aa73 43513 * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
de4bf6cb 43514 Found due to GCC 3.0 warning of using uninitialized value.
f8e0aa73 43515
de4bf6cb
GB
43516 * layout.adb:
43517 (Get_Max_Size): Use variant record for tracking value/expression.
43518 Makes logic clearer and prevents warnings for uninitialized variables.
43519 (Layout_Array_Type): Use variant record for tracking value/expression.
43520 Makes logic clearer and prevents warnings for uninitialized variables.
43521
9e94c78f 435222001-10-30 Robert Dewar <dewar@gnat.com>
f5e44987
RD
43523
43524 * lib.adb: Minor reformatting
43525
43526 * s-taprop.ads: Minor reformatting
43527
45659035 435282001-10-29 Laurent Guerby <guerby@acm.org>
f8e0aa73 43529
45659035
GB
43530 * init.c:
43531 (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
43532 const.
43533 (_gnat_error_handler): Make MSG const.
43534
9e94c78f 435352001-10-29 Richard Kenner <kenner@gnat.com>
45659035
GB
43536
43537 * sysdep.c: Fix localtime_r problem on LynxOS.
43538 Also remove #elif to avoid warnings.
f8e0aa73
AJ
43539
43540 * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
45659035 43541 used by this.
f8e0aa73 43542
45659035
GB
43543 * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
43544
638e383e
JM
435452001-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
43546
43547 * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
43548 exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
43549 g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
43550 g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
43551 layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
43552 s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
43553 sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
43554 sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
43555 sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
43556 types.ads, urealp.adb: Fix spelling errors.
43557
9e94c78f 435582001-10-27 Laurent Guerby <guerby@acm.org>
97f6baa0
LG
43559
43560 * trans.c (gigi): Fix non determinism leading to bootstrap
43561 comparison failures for debugging information.
43562
46b58b8c
FW
435632001-10-26 Florian Weimer <fw@deneb.enyo.de>
43564
43565 * gnat_rm.texi: Use @./@: where appropriate.
43566
9e94c78f 435672001-10-26 Robert Dewar <dewar@gnat.com>
30151c7b
RD
43568
43569 * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
43570
9e94c78f 435712001-10-26 Richard Kenner <kenner@gnat.com>
c0b1738d
RK
43572
43573 * gmem.c (__gnat_gmem_read_next): Properly check for EOF
43574
9e94c78f 435752001-10-26 Richard Kenner <kenner@gnat.com>
5b09c153 43576
f8e0aa73 43577 * decl.c (validate_size): Modify message for bad size to avoid
5b09c153
RK
43578 implication that compiler is modifying the size.
43579
9e94c78f 435802001-10-26 Robert Dewar <dewar@gnat.com>
4d553668
RD
43581
43582 * prj-util.adb: Minor reformatting. Fix bad header format.
43583
9e94c78f 435842001-10-26 Robert Dewar <dewar@gnat.com>
3e542a58
RD
43585
43586 * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
f8e0aa73 43587
3e542a58 43588 * sinfo.ads: Clarify use of Associated_Node (documentation only).
f8e0aa73
AJ
43589
43590 * sem_ch12.adb: Change Node4 to Associated_Node. Change
43591 Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
3e542a58
RD
43592 much more narrowly in places where needed. These are cleanups.
43593
9e94c78f 435942001-10-26 Joel Brobecker <brobecke@gnat.com>
0bf08bfe
JB
43595
43596 * 5zosinte.ads (null_pthread): new constant.
f8e0aa73 43597
0bf08bfe
JB
43598 * 5ztaprop.adb:
43599 (Initialize_TCB): Initialize thread ID to null, to be able to verify
43600 later that this field has been set.
43601 (Finalize_TCB): ditto.
43602 (Suspend_Task): Verify that the thread ID is not null before using it.
43603 (Resume_Task): ditto.
f8e0aa73 43604
0bf08bfe
JB
43605 * s-tasdeb.adb:
43606 (Resume_All_Tasks): Lock the tasks list before using it.
43607 (Suspend_All_Tasks): ditto.
43608
9e94c78f 436092001-10-26 Richard Kenner <kenner@gnat.com>
7a3a8c06 43610
f8e0aa73 43611 * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
7a3a8c06
RK
43612 Make constant variant of designated type for Is_Access_Constant.
43613 Call update_pointer_to with main variant.
f8e0aa73
AJ
43614
43615 * trans.c (process_freeze_entity, process_type):
7a3a8c06 43616 Call update_pointer_to on main variant.
f8e0aa73 43617
7a3a8c06
RK
43618 * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
43619 If main variant, update all other variants.
f8e0aa73
AJ
43620
43621 * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
7a3a8c06
RK
43622 TREE_STATIC.
43623
9e94c78f 436242001-10-26 Robert Dewar <dewar@gnat.com>
a160babb
RD
43625
43626 * prj-util.adb: Minor reformatting
43627
9e94c78f 436282001-10-26 Robert Dewar <dewar@gnat.com>
b403bd17
RD
43629
43630 * prj-util.adb: Minor reformatting
43631
9e94c78f 436322001-10-26 Robert Dewar <dewar@gnat.com>
5fc3b4c7
RD
43633
43634 * prj-attr.adb: Minor reformatting throughout
43635
9e94c78f 436362001-10-26 Robert Dewar <dewar@gnat.com>
8c736034
RD
43637
43638 * prj-attr.ads: Minor reformatting
43639 Add ??? comment (this whole spec has almost no comments)
43640
9e94c78f 436412001-10-26 Vincent Celier <celier@gnat.com>
47d5b6ed 43642
f8e0aa73 43643 * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
b4f94ac1 43644 ("//") that precede the drive letter on Interix.
47d5b6ed 43645
9e94c78f 436462001-10-26 Geert Bosch <bosch@gnat.com>
41af791f
GB
43647
43648 * gnat_rm.texi: Add GNAT Reference Manual.
43649
9e94c78f 436502001-10-25 Robert Dewar <dewar@gnat.com>
ed4a1468 43651
f8e0aa73 43652 * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
b4f94ac1 43653 is Error. Similar change for other renaming cases.
ed4a1468 43654
9e94c78f 436552001-10-25 Robert Dewar <dewar@gnat.com>
24377ae4
RD
43656
43657 * s-atacco.ads: Add pragma Inline_Always for functions.
43658 Fix header format. Add copyright 2001
43659
9e94c78f 436602001-10-25 Ed Schonberg <schonber@gnat.com>
fef3204e 43661
f8e0aa73 43662 * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
b4f94ac1 43663 return Error rather than Empty so that analysis can proceed.
fef3204e 43664
9e94c78f 436652001-10-25 Ed Schonberg <schonber@gnat.com>
dfc69d80 43666
f8e0aa73 43667 * sem_util.adb (Enter_Name): better handling of cascaded error
b4f94ac1 43668 messages when a unit appears in its own context.
dfc69d80 43669
9e94c78f 436702001-10-25 Ed Schonberg <schonber@gnat.com>
5a15af62 43671
f8e0aa73 43672 * sem_util.adb (Defining_Entity): in case of error, attach created
b4f94ac1 43673 entity to specification, so that semantic analysis can proceed.
5a15af62 43674
9e94c78f 436752001-10-25 Robert Dewar <dewar@gnat.com>
2b881d53 43676
f8e0aa73 43677 * sem_util.adb
b4f94ac1 43678 (Defining_Entity): Deal with Error.
2b881d53
RD
43679 (Process_End_Label): Deal with bad end label for.
43680
9e94c78f 436812001-10-25 Ed Schonberg <schonber@gnat.com>
578053f2 43682
f8e0aa73 43683 * sem_elab.adb (Check_A_Call): refine message when call is in an
578053f2
ES
43684 instance but callee is not declared in the generic unit.
43685
9e94c78f 436862001-10-25 Ed Schonberg <schonber@gnat.com>
f8e0aa73
AJ
43687
43688 * sem_elab.adb (Check_A_Call): check for renaming before finding the
0597ce0b
ES
43689 enclosing unit, which may already be different from the calling unit.
43690
9e94c78f 436912001-10-25 Geert Bosch <bosch@gnat.com>
3de6e6da
GB
43692
43693 * 4gintnam.ads: fix header format.
43694
9e94c78f 436952001-10-25 Ed Schonberg <schonber@gnat.com>
6f311316 43696
f8e0aa73 43697 * sem_res.adb (Resolve_Call): if the call is actually an indexing
b4f94ac1
ZW
43698 operation on the result of a parameterless call, perform elaboration
43699 check after the node has been properly rewritten.
f8e0aa73
AJ
43700
43701 * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
b4f94ac1
ZW
43702 inlined within the generic tree, the defining identifier is not a
43703 compilation_unit.
6f311316 43704
9e94c78f 437052001-10-25 Ed Schonberg <schonber@gnat.com>
17be0cdf 43706
f8e0aa73 43707 * sem_res.adb (Resolve): special-case resolution of Null in an
b4f94ac1 43708 instance or an inlined body to avoid view conflicts.
f8e0aa73
AJ
43709
43710 * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
b4f94ac1 43711 compatibility by retrieving the access type of the generic copy.
17be0cdf 43712
9e94c78f 437132001-10-25 Robert Dewar <dewar@gnat.com>
ce9e9122
RD
43714
43715 * sem_ch3.adb:
43716 (Analyze_Number_Declaration): Handle error expression.
43717 (Signed_Integer_Type_Declaration): Handle error bound.
43718 (Analyze_Subtype_Indication): Handle error range.
f8e0aa73 43719
ce9e9122
RD
43720 * sem_util.adb (Get_Index_Bounds): Check for Error.
43721
9e94c78f 437222001-10-25 Robert Dewar <dewar@gnat.com>
e12fbc9e 43723
f8e0aa73 43724 * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
e12fbc9e
RD
43725 in no run time mode.
43726
9e94c78f 437272001-10-25 Pascal Obry <obry@gnat.com>
52b80488 43728
f8e0aa73 43729 * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
b4f94ac1 43730 mode case for ALLOC case.
f8e0aa73
AJ
43731
43732 * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
b4f94ac1 43733 all platforms. Improvement of last change.
52b80488 43734
9e94c78f 437352001-10-25 Robert Dewar <dewar@gnat.com>
316ad9c5
RD
43736
43737 * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
43738
1a7e4df4
GB
437392001-10-25 Geert Bosch <bosch@gnat.com>
43740
43741 * osint.adb (Is_Relative): Remove duplicate.
43742
9e94c78f 437432001-10-25 Pascal Obry <obry@gnat.com>
90a9fff2 43744
f8e0aa73 43745 * osint.adb (Read_Default_Search_Dirs): correctly detect relative
b4f94ac1 43746 pathnames in UNIX and DOS style with drive letter.
90a9fff2 43747 (Is_Relative): new routine.
f8e0aa73 43748
90a9fff2 43749 * osint.adb: Minor reformatting
f8e0aa73
AJ
43750
43751 * osint.adb (Is_Relative): implementation using
b4f94ac1 43752 GNAT.OS_Lib.Is_Absolute_Path. Better fix.
90a9fff2 43753
9e94c78f 437542001-10-25 Pascal Obry <obry@gnat.com>
5c1ba4cc 43755
f8e0aa73 43756 * g-dirope.adb (Basename): correctly compute offset between the
b4f94ac1 43757 original Path and the translated one.
f8e0aa73 43758
5c1ba4cc
PO
43759 * g-dirope.adb: (Base_Name): add some comments.
43760
9e94c78f 437612001-10-25 Robert Dewar <dewar@gnat.com>
a7fb206d 43762
f8e0aa73 43763 * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
b4f94ac1 43764 in HIE mode, avoids compilation abandoned message
f8e0aa73 43765
a7fb206d 43766 * exp_imgv.adb: Correct typo in previous change
f8e0aa73 43767
a7fb206d
RD
43768 * exp_imgv.adb: Correct typo in previous change (not my day!)
43769
9e94c78f 437702001-10-25 Robert Dewar <dewar@gnat.com>
e6a7e62e
RD
43771
43772 * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
43773
9e94c78f 437742001-10-25 Pascal Obry <obry@gnat.com>
75c09e7d 43775
f8e0aa73 43776 * g-awk.ads: Move all pragma inlines next to the routine
0d2b8e0b 43777 declarations. This is more uniform with other GNAT spec.
75c09e7d 43778
0d2b8e0b 437792001-10-22 Geert Bosch <bosch@gnat.com>
d2740a69
GB
43780
43781 * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
43782
0d2b8e0b 437832001-10-19 Geert Bosch <bosch@gnat.com>
d7ac9bdd
GB
43784
43785 * Makefile.in (tools, gnattools): Remove gnatmem.
43786
17ed6335
RH
437872001-10-17 Richard Henderson <rth@redhat.com>
43788
43789 * Makefile.in (misc.o): Depend on langhooks.h.
43790 * misc.c: Include it.
43791 (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
43792 (LANG_HOOKS_DECODE_OPTION): New.
43793 (lang_hooks): Use LANG_HOOKS_INITIALIZER.
43794
f2436274
FW
437952001-10-16 Florian Weimer <fw@deneb.enyo.de>
43796
43797 * trans.c (tree_transform): Adjust to recent change in
43798 expand_asm_operands to implement named asm operands.
43799
b14127e6
ES
438002001-10-11 Ed Schonberg <schonber@gnat.com>
43801
f8e0aa73 43802 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
b14127e6
ES
43803 renaming of discriminant for mutable record type.
43804
e70ee92a
RD
438052001-10-11 Robert Dewar <dewar@gnat.com>
43806
43807 * validsw.adb: Properly save -gnatVn status.
43808
9e94c78f 438092001-10-11 Robert Dewar <dewar@gnat.com>
f8e0aa73 43810
9a5621d7
RD
43811 * usage.adb: Add lines for V switch.
43812
f8e0aa73 43813 * gnatcmd.adb (COMPILE): Revise translations for -gnatV
9a5621d7
RD
43814 (/VALIDITY_CHECKING).
43815
9e94c78f 438162001-10-11 Ed Schonberg <schonber@gnat.com>
45667f04 43817
f8e0aa73 43818 * sem_type.adb (Add_One_Interp): an operator for a type declared in
45667f04
ES
43819 an extension of System is known to be visible.
43820
9e94c78f 438212001-10-11 Ed Schonberg <schonber@gnat.com>
c3de5c4c 43822
f8e0aa73 43823 * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
c3de5c4c
ES
43824 properly. Fixes regression on ACATS C34005G.
43825
9e94c78f 438262001-10-11 Robert Dewar <dewar@gnat.com>
4fa964a6 43827
f8e0aa73 43828 * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
4fa964a6
RD
43829 loop in generic instance, since this is likely not very useful.
43830
9e94c78f 438312001-10-11 Robert Dewar <dewar@gnat.com>
0868e09c 43832
f8e0aa73 43833 * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
0868e09c 43834 the error message for high integrity mode.
f8e0aa73
AJ
43835
43836 * rtsfind.adb (RTE): Give message if we try to find an entity that
0868e09c 43837 is not available in high integrity mode.
f8e0aa73 43838
0868e09c
RD
43839 * rtsfind.ads:
43840 (OK_To_Use_In_HIE_Mode): New array.
43841 (RTE): May return Empty in high integrity mode.
f8e0aa73
AJ
43842
43843 * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
43844 OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
43845
43846 * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
43847 unit if not inlined always and in no runtime mode. Fixes problem
0868e09c 43848 caused by new Rtsfind changes.
f8e0aa73
AJ
43849
43850 * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
0868e09c 43851 body is deleted.
f8e0aa73
AJ
43852
43853 * rtsfind.adb (RTE): Make sure we do not try to load unit after
0868e09c
RD
43854 giving message for entity not available in high integrity mode.
43855
9e94c78f 438562001-10-11 Pascal Obry <obry@gnat.com>
f8e0aa73 43857
934abf9c
PO
43858 * impunit.adb: Add GNAT.CRC32.
43859
9e94c78f 438602001-10-11 Ed Schonberg <schonber@gnat.com>
3c72bea4 43861
f8e0aa73
AJ
43862 * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
43863 properly the case where one universal operand in a non-static
3c72bea4
ES
43864 exponentiation of a real literal.
43865
9e94c78f 438662001-10-11 Ed Schonberg <schonber@gnat.com>
44d8d2bb 43867
f8e0aa73
AJ
43868 * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
43869 clause, return the gobal finalization list, for lack of anthing else.
44d8d2bb 43870
9e94c78f 438712001-10-11 Ed Schonberg <schonber@gnat.com>
9e2b9627 43872
f8e0aa73
AJ
43873 * exp_ch7.adb (Make_Transient_Block): if statement is within
43874 exception handler, always use new transient scope to place Clean
9e2b9627
ES
43875 procedure.
43876
9e94c78f 438772001-10-11 Pascal Obry <obry@gnat.com>
cfac6e9f
PO
43878
43879 * Makefile.in:
43880 (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
43881 (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
43882 (GNATLS_RTL_OBJS): add g-crc32.o
43883 (GNATMAKE_RTL_OBJS): add g-crc32.o
f8e0aa73 43884
cfac6e9f
PO
43885 * ali-util.adb:
43886 (CRC_Match): new function.
f8e0aa73 43887 (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
cfac6e9f
PO
43888 instead of the previous simple checksum algorithm.
43889 (Time_Stamp_Mismatch): use CRC_Match for comparison.
43890 (Set_Source_Table): idem.
f8e0aa73 43891
cfac6e9f 43892 * ali-util.ads:
f8e0aa73 43893 (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
cfac6e9f
PO
43894 instead of simple checksum.
43895 (CRC_Match): new function.
43896 (CRC_Error): new constant.
f8e0aa73
AJ
43897
43898 * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
43899 a CRC now and not a simple checksum. A CRC uses lower-case hex
cfac6e9f 43900 letters, fixes ambiguity in parsing.
f8e0aa73
AJ
43901
43902 * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
cfac6e9f 43903 is what this variable will store.
f8e0aa73 43904
cfac6e9f 43905 * bcheck.adb: Change reference to chechsum in comments by CRC.
f8e0aa73
AJ
43906 (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
43907 rename All_Checksum_Match to All_CRC_Match. Change due to API
43908 renaming since now GNAT does not use a simple checksum but a
cfac6e9f 43909 CRC using GNAT.CRC32.
f8e0aa73
AJ
43910
43911 * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
cfac6e9f 43912 now and not anymore a simple checksum.
f8e0aa73
AJ
43913
43914 * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
cfac6e9f 43915 places.
f8e0aa73 43916
cfac6e9f 43917 * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
f8e0aa73 43918
cfac6e9f
PO
43919 * scans.adb:
43920 (Restore_Scan_State): rename Checksum to CRC.
43921 (Save_Scan_State): idem.
f8e0aa73 43922
cfac6e9f
PO
43923 * scans.ads:
43924 With GNAT.CRC32.
43925 (Checksum): rename to CRC.
43926 (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
f8e0aa73
AJ
43927
43928 * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
cfac6e9f 43929 GNAT.CRC32). Update copyright notice.
f8e0aa73
AJ
43930
43931 * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
cfac6e9f 43932 GNAT.CRC32). Update copyright notice.
f8e0aa73 43933
cfac6e9f
PO
43934 * scn.adb:
43935 (Accumulate_Checksum): removed.
43936 (Update): new procedure. Add a wide-character into the CRC.
f8e0aa73 43937
cfac6e9f
PO
43938 * sinput-l.adb:
43939 (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
f8e0aa73 43940 (Load_File): fix initialization of S (change Source_Checksum to
cfac6e9f 43941 Source_CRC)
f8e0aa73
AJ
43942
43943 * sinput-p.adb (Load_Project_File): rename Source_Checksum to
cfac6e9f 43944 Source_CRC in S initialization.
f8e0aa73 43945
cfac6e9f 43946 * sinput.adb (Source_Checksum): renamed to Source_CRC.
f8e0aa73 43947
cfac6e9f
PO
43948 * sinput.ads (Source_Checksum): renamed to Source_CRC.
43949 Update comments for the CRC.
f8e0aa73 43950
cfac6e9f 43951 * types.adb (Hex): Use lowercase for the letter part.
f8e0aa73
AJ
43952
43953 * types.ads (Get_Hex_String): Returns the hexadecimal representation
43954 for a word. This is currently used only for CRC. In previous version,
43955 the checksum was using a representation with all letter being
43956 upper-case. With the new implementation (using CRC) we do not remove
43957 the 32th bit of the CRC, so we can have an upper-case starting letter
43958 in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
43959 It is ambigous since the CRC was optional and could be followed by
43960 options like EB, EE. So now this routines uses lower-case letter for
43961 the hexadecimal representation. Strange enough only lower case letters
cfac6e9f 43962 where checked in Scan_ALI (even if this was not a possible case).
f8e0aa73 43963
cfac6e9f 43964 * gnatvsn.ads (Library_Version): changed to 3.15a.
f8e0aa73
AJ
43965
43966 * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
cfac6e9f 43967 for the compiler.
f8e0aa73
AJ
43968
43969 * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
cfac6e9f 43970 for the compiler.
f8e0aa73 43971
cfac6e9f
PO
43972 * ali-util.adb: Redo previous change to avoid using word CRC everywhere
43973 Add 2001 to copyright notice
43974 (Accumulate_Checksum): Modify to use System.CRC32.
f8e0aa73
AJ
43975
43976 * ali-util.ads: Redo changes of previous revision to continue to use
cfac6e9f 43977 the word Checksum. Add 2001 to copyright notice.
f8e0aa73 43978
cfac6e9f
PO
43979 * ali.adb: Undo some of previous changes, not needed.
43980 Keep the change for lower case letters in the checksum.
f8e0aa73 43981
cfac6e9f
PO
43982 * ali.ads: Undo previous change not needed.
43983
43984 * bcheck.adb: Undo most of previous change, not needed.
43985 But do use Checksums_Match for checksum comparison.
f8e0aa73 43986
cfac6e9f
PO
43987 * gnatls.adb: Undo most of previous change, not needed.
43988 But do use Checksums_Match for comparing checksums.
f8e0aa73 43989
cfac6e9f 43990 * lib-load.adb: Undo previous change, not needed.
f8e0aa73 43991
cfac6e9f 43992 * lib-writ.adb: Undo previous change, not needed.
f8e0aa73
AJ
43993
43994 * lib-writ.ads: Document that checksums use lower case,
cfac6e9f 43995 not upper case letters.
f8e0aa73 43996
cfac6e9f 43997 * scans.adb: Undo previous change, not needed
f8e0aa73 43998
cfac6e9f 43999 * scans.ads: Undo previous change, not needed.
f8e0aa73 44000
cfac6e9f 44001 * scn-nlit.adb: Undo previous changes, not needed.
f8e0aa73 44002
cfac6e9f 44003 * scn-slit.adb: Undo previous change, not needed. Fix header format.
f8e0aa73 44004
cfac6e9f
PO
44005 * scn.adb:
44006 (Accumulate_Checksum): Use System.CRC32.
44007 (Initialize_Checksum): New procedure.
44008 Remove other changes of previous revision.
f8e0aa73 44009
cfac6e9f 44010 * sinput-p.adb: Undo previous change, not needed.
f8e0aa73 44011
cfac6e9f
PO
44012 * sinput.adb: Undo previous change, not needed.
44013
44014 * sinput-l.adb: Undo previous change, not needed.
f8e0aa73
AJ
44015
44016 * sinput.ads: Undo previous change, not needed. Keep only comment
cfac6e9f 44017 on new checksum algorithm
f8e0aa73 44018
cfac6e9f
PO
44019 * Makefile.in: Add s-crc32 as needed, remove g-crc32.
44020 Also remove a-tags and a-stream from GNAT sources.
f8e0aa73 44021
cfac6e9f 44022 * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
f8e0aa73 44023
cfac6e9f
PO
44024 * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
44025
4d6d06a5
GB
440262001-10-11 Geert Bosch <bosch@gnat.com>
44027
44028 * einfo.h: Regenerate.
44029
44030 * nmake.ads: Regenerate.
44031
44032 * nmake.adb: Regenerate.
44033
44034 * sinfo.h: Regenerate.
44035
44036 * treeprs.adb: Regenerate.
44037
c97412e2
GB
440382001-10-10 Geert Bosch <bosch@gnat.com>
44039
44040 * gnat-style.texi: New file describing coding guidelines for Ada.
f8e0aa73 44041
9e94c78f 440422001-10-10 Ed Schonberg <schonber@gnat.com>
b83018ca 44043
f8e0aa73 44044 * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
b83018ca
ES
44045 is Flag174.
44046
e834fe1f
GB
440472001-10-10 Geert Bosch <bosch@gnat.com>
44048
44049 * snames.ads: Add new names for project facility.
44050
44051 * snames.adb: Update to reflect snames.ads changes.
44052
44053 * snames.h: Update to reflect snames.ads changes.
44054
9e94c78f 440552001-10-10 Vincent Celier <celier@gnat.com>
b30668b7
VC
44056
44057 * make.adb:
44058 (Add_Switches): reflect the changes for the switches attributes
44059 Default_Switches indexed by the programming language,
44060 Switches indexed by the file name.
44061 (Collect_Arguments_And_Compile): Idem.
44062 Reflect the attribute name changes.
f8e0aa73 44063
b30668b7
VC
44064 * prj-attr.adb:
44065 (Initialisation_Data): Change the names of some packages and
44066 attributes.
44067 (Initialize): process case insensitive associative arrays.
f8e0aa73 44068
b30668b7
VC
44069 * prj-attr.ads:
44070 (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
f8e0aa73 44071
b30668b7
VC
44072 * prj-dect.adb:
44073 (Parse_Attribute_Declaration): For case insensitive associative
44074 arrays, set the index string to lower case.
f8e0aa73 44075
b30668b7
VC
44076 * prj-env.adb:
44077 Reflect the changes of the project attributes.
f8e0aa73 44078
b30668b7
VC
44079 * prj-nmsc.adb:
44080 Replace Check_Naming_Scheme by Ada_Check and
44081 Language_Independent_Check.
f8e0aa73 44082
b30668b7
VC
44083 * prj-nmsc.ads:
44084 Replaced Check_Naming_Scheme by 2 procedures:
44085 Ada_Check and Language_Independent_Check.
f8e0aa73 44086
b30668b7
VC
44087 * prj-proc.adb:
44088 (Process_Declarative_Items): For case-insensitive associative
44089 arrays, set the index string to lower case.
44090 (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
44091 Prj.Nmsc.Check_Naming_Scheme.
f8e0aa73 44092
b30668b7
VC
44093 * prj-tree.adb:
44094 (Case_Insensitive): New function
44095 (Set_Case_Insensitive): New procedure
f8e0aa73 44096
b30668b7
VC
44097 * prj-tree.ads:
44098 (Case_Insensitive): New function
44099 (Set_Case_Insensitive): New procedure
44100 (Project_Node_Record): New flag Case_Insensitive.
f8e0aa73 44101
b30668b7
VC
44102 * prj-util.adb:
44103 (Value_Of): new function to get the string value of a single
44104 string variable or attribute.
f8e0aa73 44105
b30668b7
VC
44106 * prj-util.ads:
44107 (Value_Of): new function to get the string value of a single
44108 string variable or attribute.
f8e0aa73 44109
b30668b7
VC
44110 * prj.adb:
44111 (Ada_Default_Spec_Suffix): New function
44112 (Ada_Default_Impl_Suffix): New function
44113 Change definitions of several constants to reflect
44114 new components of record types.
f8e0aa73 44115
b30668b7
VC
44116 * prj.ads:
44117 (Naming_Data): Change several components to reflect new
44118 elements of naming schemes.
44119 (Project_Data): New flags Sources_Present and
44120 Language_Independent_Checked.
44121 (Ada_Default_Spec_Suffix): New function.
44122 (Ada_Default_Impl_Suffix): New function.
f8e0aa73 44123
b30668b7
VC
44124 * snames.ads:
44125 Modification of predefined names for project manager: added
44126 Implementation, Specification_Exceptions, Implementation_Exceptions,
44127 Specification_Suffix, Implementation_Suffix, Separate_Suffix,
44128 Default_Switches, _Languages, Builder, Cross_Reference,
44129 Finder. Removed Body_Part, Specification_Append, Body_Append,
44130 Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
44131 Gnatlink.
f8e0aa73 44132
b30668b7
VC
44133 * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
44134 Add comments.
f8e0aa73 44135
b30668b7
VC
44136 * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
44137 not that it is Nil_Variable_Value.
f8e0aa73 44138
b30668b7
VC
44139 * prj.ads: Add ??? for uncommented declarations
44140
9e94c78f 441412001-10-10 Ed Schonberg <schonber@gnat.com>
662e57b4 44142
f8e0aa73
AJ
44143 * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
44144 constant, do not indicate possible modification, so that gigi can
662e57b4
ES
44145 treat it as a bona fide constant.
44146
9e94c78f 441472001-10-10 Robert Dewar <dewar@gnat.com>
72e4357f
RD
44148
44149 * sem_prag.adb: Add processing for pragma External.
f8e0aa73 44150
72e4357f 44151 * snames.ads: Add entry for pragma External.
f8e0aa73 44152
72e4357f 44153 * par-prag.adb: Add pragma External.
f8e0aa73 44154
72e4357f
RD
44155 * snames.adb: Updated to match snames.ads.
44156
9e94c78f 441572001-10-10 Ed Schonberg <schonber@gnat.com>
7bc1c7df
ES
44158
44159 * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
44160 a dynamic task if the allocator appears in an indexed assignment
44161 or selected component assignment.
f8e0aa73
AJ
44162
44163 * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
44164 For a dynamic task in an assignment statement, use target of
7bc1c7df
ES
44165 assignment to generate meaningful name.
44166
9e94c78f 441672001-10-10 Ed Schonberg <schonber@gnat.com>
c84700e7 44168
f8e0aa73 44169 * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
c84700e7
ES
44170 a generic package.
44171
44172 * einfo.ads: Body_Entity is also defined for generic package.
44173 Documentation change only
f8e0aa73
AJ
44174
44175 * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
44176 others_choice for a discriminated component initialization,
44177 convert discriminant references into the corresponding discriminals.
44178
44179 * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
44180 only if original type is private and expression has to be wrapped
c84700e7 44181 in a conversion.
f8e0aa73
AJ
44182
44183 * checks.adb:
44184 (Apply_Constraint_Check): Do not perform length check
c84700e7 44185 if expression is an aggregate with only an others_choice.
f8e0aa73 44186 (Length_N_Cond): two references to the same in_parameter
c84700e7
ES
44187 (typically the discriminal in an init_proc) denote the same value.
44188 Two useful optimization uncovered by bugfixes above.
44189
9e94c78f 441902001-10-10 Robert Dewar <dewar@gnat.com>
d8d80dcd 44191
f8e0aa73 44192 * xeinfo.adb: Change int to char in translation of enumeration types.
d8d80dcd
RD
44193 This fixes a problem in the C representation of component alignment.
44194 Add 2001 to copyright notice
44195
9e94c78f 441962001-10-10 Richard Kenner <kenner@gnat.com>
a8fee948 44197
f8e0aa73 44198 * decl.c: (validate_size): Do check size of object of integral type
a8fee948
RK
44199 if it is a packed array type.
44200
9e94c78f 442012001-10-10 Richard Kenner <kenner@gnat.com>
c2d7fe59 44202
f8e0aa73 44203 * decl.c: (gnat_to_gnu_entity, case object): Also materialize
c2d7fe59
RK
44204 VAR_DECL for constant if not Is_Public but -O0.
44205
fb75e100
RK
442062001-10-10 Richard Kenner <kenner@gnat.com>
44207
44208 * misc.c (struct lang_hooks): Add new initializer to match GCC change.
44209
1724557a
GB
442102001-10-10 Geert Bosch <bosch@gnat.com>
44211
f8e0aa73 44212 * xnmake.adb (XNmake): Fix handling of -s/-b options. No longer
1724557a
GB
44213 use '/' as switch character, allowing for absolute file names.
44214
9f2f9eb6
JM
442152001-10-09 Joseph S. Myers <jsm28@cam.ac.uk>
44216
44217 * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
44218 FSF address.
44219
8fecf41d
GB
442202001-10-08 Geert Bosch <bosch@gnat.com>
44221
44222 * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
44223 Automatically build utilities when files need to be regenerated.
44224
589f1edf
GB
442252001-10-08 Geert Bosch <bosch@gnat.com>
44226
44227 * xsnames.adb: New utility for updating snames.ads and snames.adb
44228
67f28219
ZW
442292001-10-08 Zack Weinberg <zack@codesourcery.com>
44230
44231 * Make-lang.in (ADAFLAGS): Add -W -Wall.
44232 (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
44233 (gnat1): Also depend on attribs.o.
44234 (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
44235 * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
44236 (ADAC): Set to @ADAC@ in stage1, $(CC) later.
44237 (ADAFLAGS): Add -W -Wall.
44238 (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
44239 take out CFLAGS.
44240
44241 (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
44242 s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
44243 s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
44244 Use $(ADAC), not $(CC), as compilation command.
44245
44246 (gnattools): Depend directly on tools to build, don't use
44247 recursive make.
44248 (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
44249
44250 * einfo.h, sinfo.h: New files (autogenerated).
44251
295ef2bb
RH
442522001-10-08 Richard Henderson <rth@redhat.com>
44253
44254 * comperr.adb (Abort_In_Progress): New.
44255 (Compiler_Abort): Use it to prevent recursion.
44256
9e94c78f 442572001-10-08 Robert Dewar <dewar@gnat.com>
5c736541
RD
44258
44259 * atree.adb: Set Error_Posted in Error node, helps error recovery.
67f28219
ZW
44260
44261 * par-endh.adb (Output_End_Expected): We should also not test
5c736541 44262 Error_Posted on the Error node, since now it is always set.
67f28219
ZW
44263
44264 * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
5c736541 44265 to help error recovery. Part of general work on 9407-004.
67f28219 44266
5c736541 44267 * par.adb: Add ??? for misuse of error
67f28219 44268
5c736541
RD
44269 * sem_res.adb:
44270 (Resolve): Defend against Error, fixes 9407-003.
44271 (Resolve_Discrete_Subtype_Indication): Defend against Error.
67f28219
ZW
44272
44273 * sinfo.ads (N_Error): Now has Etype field (which will be set
5c736541
RD
44274 to Any_Type to help error recovery).
44275
9e94c78f 442762001-10-08 Richard Kenner <kenner@gnat.com>
a153ae15
RK
44277
44278 * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
44279 Consistently set MEM attributes from expression; fixes
44280 bootstrap failure on x86.
44281
9e94c78f 442822001-10-08 Geert Bosch <bosch@gnat.com>
743f3c7b
GB
44283
44284 * 5oosinte.adb: Add 2001 to copyright notice.
44285
9e94c78f 442862001-10-08 Geert Bosch <bosch@gnat.com>
210c4ef4
GB
44287
44288 * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
44289
44290 * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
44291
cc712abf
JM
442922001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
44293
44294 * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
44295
9e94c78f 442962001-10-05 Geert Bosch <bosch@gnat.com>
4c4abc0f
GB
44297
44298 * adaint.h: Small formatting fix.
44299
7f50e2e3
GB
443002001-10-04 Geert Bosch <bosch@gnat.com>
44301
44302 * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
44303 Arg is int, not FILE *, in dummy version of functions.
67f28219 44304
7f50e2e3
GB
44305 * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
44306 Arg is int, not FILE *.
44307
5d1a9698
GB
443082001-10-04 Geert Bosch <bosch@gnat.com>
44309
44310 * 3lsoccon.ads: Added file, missed with initial check ins.
67f28219 44311
5d1a9698
GB
44312 * 4lintnam.ads: Fix header format.
44313 Change Linux to GNU/Linux.
67f28219 44314
5d1a9698
GB
44315 * 5iosinte.adb: Change Linux to GNU/Linux.
44316
44317 * 5iosinte.ads: Change Linux to GNU/Linux.
67f28219 44318
5d1a9698 44319 * 5itaprop.adb: Change Linux to GNU/Linux.
67f28219 44320
5d1a9698
GB
44321 * 5itaspri.ads: Change Linux to GNU/Linux.
44322 Update copyright notice.
67f28219 44323
5d1a9698 44324 * 5lintman.adb: Change Linux to GNU/Linux.
67f28219 44325
5d1a9698 44326 * 5lml-tgt.adb: Change Linux to GNU/Linux.
67f28219 44327
5d1a9698 44328 * 5losinte.ads: Change Linux to GNU/Linux.
67f28219 44329
5d1a9698 44330 * 5lsystem.ads: Change Linux to GNU/Linux.
67f28219 44331
5d1a9698 44332 * 5qosinte.adb: Change Linux to GNU/Linux.
67f28219 44333
5d1a9698 44334 * 5qosinte.ads: Change Linux to GNU/Linux.
67f28219 44335
5d1a9698 44336 * 5qparame.ads: Change Linux to GNU/Linux.
67f28219 44337
5d1a9698 44338 * 5qtaprop.adb: Change Linux to GNU/Linux.
67f28219 44339
5d1a9698
GB
44340 * 5qtaspri.ads: Change Linux to GNU/Linux.
44341 Add 2001 to copyright notice.
67f28219 44342
5d1a9698
GB
44343 * 5vintman.ads: Change Linux to GNU/Linux.
44344 Fix header format. Add 2001 to copyright notice.
67f28219 44345
5d1a9698 44346 * g-soccon.ads: Change Linux to GNU/Linux.
67f28219 44347
5d1a9698
GB
44348 * g-trasym.ads: Change Linux to GNU/Linux.
44349 Add 2001 to copyright notice.
67f28219 44350
5d1a9698 44351 * memtrack.adb: Change Linux to GNU/Linux.
67f28219 44352
5d1a9698
GB
44353 * s-intman.ads: Change Linux to GNU/Linux.
44354 Add 2001 to copyright notice. Fix header format.
67f28219 44355
5d1a9698 44356 * s-stache.adb: Change Linux to GNU/Linux.
67f28219 44357
5d1a9698 44358 * adaint.c: Change Linux to GNU/Linux.
67f28219 44359
5d1a9698 44360 * cio.c: Change Linux to GNU/Linux.
67f28219 44361
5d1a9698 44362 * cstreams.c: Change Linux to GNU/Linux.
67f28219 44363
5d1a9698 44364 * init.c: Change Linux to GNU/Linux.
67f28219 44365
5d1a9698 44366 * gmem.c: Change Linux to GNU/Linux.
67f28219 44367
5d1a9698
GB
44368 * tracebak.c: Change Linux to GNU/Linux.
44369
44370
c25ca2d7
GB
443712001-10-02 Geert Bosch <bosch@gnat.com>
44372
44373 * misc.c (insert_default_attributes): Add dummy version.
This page took 6.63068 seconds and 5 git commands to generate.